private @Nullable FList<TextRange> improveCamelHumps(int patternIndex,
                                           int nameIndex,
                                           int maxFragment,
                                           int minFragment,
                                           @NotNull ErrorState errorState) {
      for (int i = minFragment; i < maxFragment; i++) {
        if (isUppercasePatternVsLowercaseNameChar(patternIndex + i, nameIndex + i, errorState)) {
          FList<TextRange> ranges = findUppercaseMatchFurther(patternIndex + i, nameIndex + i, errorState.deriveFrom(patternIndex + i));
          if (ranges != null) {
            int errors = errorState.countErrors(patternIndex, patternIndex + i);
            if (errors == i) return null;
            return prependRange(ranges, new Range(nameIndex, nameIndex + i, errors));
          }
        }
      }
      return null;
    }
private @Nullable FList<TextRange> improveCamelHumps(int patternIndex,
                                           int nameIndex,
                                           int maxFragment,
                                           int minFragment,
                                           @NotNull ErrorState errorState)