{ "scopeName": "source.js.regexp", "patterns": [ { "include": "#regexp" } ], "repository": { "regex-character-class": { "patterns": [ { "match": "\\\\[wWsSdDtrnvf]|\\.", "name": "constant.character.character-class.regexp" }, { "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})", "name": "constant.character.numeric.regexp" }, { "match": "\\\\c[A-Z]", "name": "constant.character.control.regexp" }, { "match": "\\\\.", "name": "constant.character.escape.backslash.regexp" } ] }, "regexp": { "patterns": [ { "match": "\\\\[bB]|\\^|\\$", "name": "keyword.control.anchor.regexp" }, { "match": "\\\\[1-9]\\d*|\\\\k<[a-zA-Z_$][\\w$]*>", "name": "keyword.other.back-reference.regexp" }, { "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??", "name": "keyword.operator.quantifier.regexp" }, { "match": "\\|", "name": "keyword.operator.or.regexp" }, { "begin": "(\\()(?:(\\?=)|(\\?!)|(\\?<=)|(\\?))?", "beginCaptures": { "0": { "name": "punctuation.definition.group.regexp" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.group.regexp" } }, "name": "meta.group.regexp", "patterns": [ { "include": "#regexp" } ] }, { "begin": "(\\[)(\\^)?", "beginCaptures": { "1": { "name": "punctuation.definition.character-class.regexp" }, "2": { "name": "keyword.operator.negation.regexp" } }, "end": "(\\])", "endCaptures": { "1": { "name": "punctuation.definition.character-class.regexp" } }, "name": "constant.other.character-class.set.regexp", "patterns": [ { "captures": { "1": { "name": "constant.character.numeric.regexp" }, "2": { "name": "constant.character.control.regexp" }, "3": { "name": "constant.character.escape.backslash.regexp" }, "4": { "name": "constant.character.numeric.regexp" }, "5": { "name": "constant.character.control.regexp" }, "6": { "name": "constant.character.escape.backslash.regexp" } }, "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", "name": "constant.other.character-class.range.regexp" }, { "include": "#regex-character-class" } ] }, { "include": "#regex-character-class" } ] } } }