private int indexOfWordStart(@NotNull String name, int patternIndex, int startFrom, boolean isAsciiName) {
    final char p = myPattern[patternIndex];
    if (startFrom >= name.length() ||
        myHasHumps && isLowerCase[patternIndex] && !(patternIndex > 0 && isWordSeparator[patternIndex - 1])) {
      return -1;
    }
    int i = startFrom;
    boolean isSpecialSymbol = !Character.isLetterOrDigit(p);
    while (true) {
      i = indexOfIgnoreCase(name, i, p, patternIndex, isAsciiName);
      if (i < 0) return -1;

      if (isSpecialSymbol || NameUtilCore.isWordStart(name, i)) return i;

      i++;
    }
  }
private int indexOfWordStart(@NotNull String name, int patternIndex, int startFrom, boolean isAsciiName)