@Override
    @NotNull
    public Kind getKind() {
      return switch (getUnescapedText()) {
        case "." -> Kind.ANY;
        case "\\d" -> Kind.DIGIT;
        case "\\D" -> Kind.NON_DIGIT;
        case "\\w" -> Kind.WORD;
        case "\\W" -> Kind.NON_WORD;
        case "\\s" -> Kind.SPACE;
        case "\\S" -> Kind.NON_SPACE;
        case "\\h" -> Kind.HORIZONTAL_SPACE;
        case "\\H" -> Kind.NON_HORIZONTAL_SPACE;
        case "\\v" -> Kind.VERTICAL_SPACE;
        case "\\V" -> Kind.NON_VERTICAL_SPACE;
        case "\\i" -> Kind.XML_NAME_START;
        case "\\I" -> Kind.NON_XML_NAME_START;
        case "\\c" -> Kind.XML_NAME_PART;
        case "\\C" -> Kind.NON_XML_NAME_PART;
        case "\\X" -> Kind.UNICODE_GRAPHEME;
        case "\\R" -> Kind.UNICODE_LINEBREAK;
        default -> throw new AssertionError("unknown character class '" + getUnescapedText() + "'");
      };
    }
@Override
    @NotNull
    public Kind getKind()