boolean (@NotNull String name, int nameIndex, int patternIndex) { if (nameIndex >= name.length()) return false; boolean ignoreCase = myOptions != NameUtil.MatchingCaseSensitivity.ALL; char patternChar = myPattern[patternIndex]; if (!charEquals(patternChar, patternIndex, name.charAt(nameIndex), ignoreCase)) return false; if (myOptions == NameUtil.MatchingCaseSensitivity.FIRST_LETTER && (patternIndex == 0 || patternIndex == 1 && isWildcard(0)) && hasCase(patternChar) && Character.isUpperCase(patternChar) != Character.isUpperCase(name.charAt(0))) { return false; } return true; }