default int backWithBraceMatching(int index, @NotNull IElementType opening, @NotNull IElementType closing) {
    if (getTokenType(index) == closing) {
      int nesting = 1;
      while (nesting > 0 && index > 0) {
        index--;
        IElementType type = getTokenType(index);
        if (type == closing) {
          nesting++;
        }
        else if (type == opening) {
          nesting--;
        }
      }
    }
    return index - 1;
  }
default int backWithBraceMatching(int index, @NotNull IElementType opening, @NotNull IElementType closing)