Kind () { 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() + "'"); }; }