code: private JBBPTokenizerException checkFieldName(final String name, final int position) {
      if (name != null) {
        final String normalized = JBBPUtils.normalizeFieldNameOrPath(name);
        if (normalized.indexOf('.') >= 0) {
          return new JBBPTokenizerException("Field name must not contain '.' char", position);
        }
  
        if (normalized.length() > 0) {
          if (normalized.equals("_")
              || normalized.equals("$$")
              || normalized.startsWith("$")
              || Character.isDigit(normalized.charAt(0))
          ) {
            return new JBBPTokenizerException("'" + name + "' can't be field name", position);
          }
  
          for (int i = 1; i < normalized.length(); i++) {
            final char chr = normalized.charAt(i);
            if (chr != '_' && !Character.isLetterOrDigit(chr)) {
              return new JBBPTokenizerException("Char '" + chr + "' not allowed in name", position);
            }
          }
        }
      }
      return null;
    }
docs: Check a field name
  
  @param name     the name to be checked.
  @param position the token position in the string.
  @return JBBPTokenizerException if the field name has wrong chars or
  presented in disabled name set, null otherwise