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