{ "name": "Regular Expressions (Perl 6)", "scopeName": "source.regexp.perl6fe", "patterns": [ { "include": "#regexp" } ], "repository": { "re_strings": { "patterns": [ { "name": "string.literal.perl6fe", "begin": "(?\u003c!\\\\)\\'", "end": "(?\u003c=\\\\\\\\)\\'|(?\u003c!\\\\)\\'" }, { "name": "string.literal.perl6fe", "begin": "(?\u003c!\\\\)‘", "end": "(?\u003c=\\\\\\\\)\\’|(?\u003c!\\\\)’", "patterns": [ { "include": "source.perl6fe#q_left_single_right_single_string_content" } ] }, { "name": "string.literal.perl6fe", "begin": "(?\u003c!\\\\)\\\"", "end": "(?\u003c=\\\\\\\\)\\\"|(?\u003c!\\\\)\\\"" } ] }, "regexp": { "patterns": [ { "begin": "(^[ \\t]+)?(?=#)", "end": "(?!\\G)", "patterns": [ { "name": "comment.line.number-sign.perl6fe", "begin": "#", "end": "\\n", "beginCaptures": { "0": { "name": "punctuation.definition.comment.perl6fe" } } } ], "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.perl6fe" } } }, { "include": "#re_strings" }, { "name": "constant.character.escape.class.regexp.perl6fe", "match": "\\\\[dDhHnNsStTvVwW]" }, { "name": "entity.name.section.adverb.perl6fe", "match": ":\\w+" }, { "name": "entity.name.section.boundary.regexp.perl6fe", "match": "\\^\\^|(?\u003c!\\.)\\^(?!\\.)|\\$\\$|\\$(?!\\d|\u003c)|\u003c\u003c|\u003e\u003e" }, { "name": "keyword.other.special-method.match.variable.numbered.perlt6e", "match": "(?\u003c!\\\\)\\$\\d" }, { "name": "meta.match.variable.perl6fe", "match": "(\\$)(\\\u003c)(\\w+)(\\\u003e)\\s*(=)", "captures": { "1": { "name": "variable.other.identifier.sigil.regexp.perl6" }, "2": { "name": "support.class.match.name.delimiter.regexp.perl6fe" }, "3": { "name": "variable.other.identifier.regexp.perl6" }, "4": { "name": "support.class.match.name.delimiter.regexp.perl6fe" }, "5": { "name": "storage.modifier.match.assignment.regexp.perl6fe" } } }, { "name": "meta.interpolation.perl6fe", "begin": "(\\\u003c(?:\\?|\\!)\\{)", "end": "(\\}\\\u003e)", "patterns": [ { "include": "source.perl6fe" } ], "beginCaptures": { "1": { "name": "punctuation.section.embedded.begin.perl6fe" } }, "endCaptures": { "1": { "name": "punctuation.section.embedded.end.perl6fe" } } }, { "name": "keyword.operator.capture.marker.regexp.perl6fe", "match": "\u003c\\(|\\)\u003e" }, { "name": "meta.property.regexp.perl6fe", "begin": "(?!\\\\)\u003c", "end": "\u003e", "patterns": [ { "include": "#re_strings" }, { "name": "meta.assertion.lookaround.perl6fe", "begin": "(\\?|\\!)(before|after)\\s+", "end": "(?=\u003e)", "patterns": [ { "include": "#regexp" } ], "beginCaptures": { "1": { "name": "keyword.operator.negativity.perl6fe" }, "2": { "name": "entity.name.section.assertion.perl6fe" } } }, { "name": "meta.capture.assignment.perl6fe", "match": "(\\w+)(=)", "captures": { "1": { "name": "entity.name.function.capturename.perl6fe" }, "2": { "name": "storage.modifier.capture.assignment.perl6fe" } } }, { "name": "meta.property.name.regexp.perl6fe", "match": "(:)(\\w+)", "captures": { "1": { "name": "punctuation.definition.property.regexp.perl6fe" }, "2": { "name": "variable.other.identifier.property.regexp.perl6fe" } } }, { "name": "keyword.operator.property.regexp.perl6fe", "match": "[+|\u0026\\-^]" }, { "contentName": "constant.character.custom.property.regexp.perl6fe", "begin": "\\[", "end": "\\]", "patterns": [ { "include": "source.perl6fe#hex_escapes" }, { "name": "constant.character.custom.property.regexp.perl6fe", "match": "(?\u003c!\\\\)\\\\\\]" } ], "beginCaptures": { "0": { "name": "keyword.operator.charclass.open.regexp.perl6fe" } }, "endCaptures": { "0": { "name": "keyword.operator.charclass.close.regexp.perl6fe" } } }, { "name": "comment.suppressed.capture.property.regexp.perl6fe", "match": "\\.\\w+\\b" }, { "name": "variable.other.identifier.regexname.perl6fe", "match": "\\b\\w+\\b" }, { "name": "meta.rule.signature.perl6fe", "begin": "(?\u003c=\\w)\\(", "end": "\\)", "patterns": [ { "include": "source.perl6fe" } ] } ], "beginCaptures": { "0": { "name": "punctuation.delimiter.property.regexp.perl6fe" } }, "endCaptures": { "0": { "name": "punctuation.delimiter.property.regexp.perl6fe" } } }, { "name": "variable.other.identifier.whatever.regexp.perl6fe", "match": "(?\u003c=\\.\\.)\\*" }, { "name": "keyword.operator.quantifiers.regexp.perl6fe", "match": "\\+|\\*\\*|\\*|\\?|%|\\.\\.|\\.|(?\u003c=\\.\\.|\\s|\\d)\\^" }, { "name": "support.function.alternation.regexp.perl6fe", "match": "(?\u003c!\\\\)\\|{1,2}" } ] } } }