private boolean hasMatchAt(@NotNull String name, int start) {
    int end = myPattern.length() + start;
    if (end > name.length()) return false;
    int i;
    for (i = start; i < end; i++) {
      char c = name.charAt(i);
      if (c < BASE_CODE_POINT || c >= BASE_CODE_POINT + DATA.length()) return false;
      int code = DATA.charAt(c - BASE_CODE_POINT) - BASE_CHAR;
      if (code < 0 || ENCODING_ARRAY[code].indexOf(myPattern.charAt(i - start)) == -1) return false;
    }
    return true;
  }
private boolean hasMatchAt(@NotNull String name, int start)