vscode/extensions/perl/syntaxes/Perl.plist
2015-11-13 14:39:38 +01:00

3690 lines
82 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>comment</key>
<string>
TODO: Include RegExp syntax
</string>
<key>fileTypes</key>
<array>
<string>pl</string>
<string>pm</string>
<string>pod</string>
<string>t</string>
<string>PL</string>
<string>psgi</string>
</array>
<key>firstLineMatch</key>
<string>^#!.*\bperl\b</string>
<key>keyEquivalent</key>
<string>^~P</string>
<key>name</key>
<string>Perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#line_comment</string>
</dict>
<dict>
<key>begin</key>
<string>^=</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.perl</string>
</dict>
</dict>
<key>end</key>
<string>^=cut</string>
<key>name</key>
<string>comment.block.documentation.perl</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>applyEndPatternLast</key>
<integer>1</integer>
<key>begin</key>
<string>\b(?=qr\s*[^\s\w])</string>
<key>comment</key>
<string>string.regexp.compile.perl</string>
<key>end</key>
<string>((([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|$))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.compile.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>keyword.control.regexp-option.perl</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(qr)\s*\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>string.regexp.compile.nested_braces.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_braces_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(qr)\s*\[</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>name</key>
<string>string.regexp.compile.nested_brackets.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_brackets_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(qr)\s*&lt;</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>&gt;</string>
<key>name</key>
<string>string.regexp.compile.nested_ltgt.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_ltgt_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(qr)\s*\(</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>name</key>
<string>string.regexp.compile.nested_parens.perl</string>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>This is to prevent thinks like qr/foo$/ to treat $/ as a variable</string>
<key>match</key>
<string>\$(?=[^\s\w\\'\{\[\(\&lt;])</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_parens_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(qr)\s*'</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>name</key>
<string>string.regexp.compile.single-quote.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(qr)\s*([^\s\w'\{\[\(\&lt;])</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\2</string>
<key>name</key>
<string>string.regexp.compile.simple-delimiter.perl</string>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>This is to prevent thinks like qr/foo$/ to treat $/ as a variable</string>
<key>match</key>
<string>\$(?=[^\s\w'\{\[\(\&lt;])</string>
<key>name</key>
<string>keyword.control.anchor.perl</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_parens_interpolated</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>applyEndPatternLast</key>
<integer>1</integer>
<key>begin</key>
<string>\b(?=m\s*[^\sa-zA-Z0-9])</string>
<key>comment</key>
<string>string.regexp.find-m.perl</string>
<key>end</key>
<string>((([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|$))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.find-m.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>keyword.control.regexp-option.perl</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(m)\s*\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>string.regexp.find-m.nested_braces.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_braces_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(m)\s*\[</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>name</key>
<string>string.regexp.find-m.nested_brackets.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_brackets_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(m)\s*&lt;</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>&gt;</string>
<key>name</key>
<string>string.regexp.find-m.nested_ltgt.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_ltgt_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(m)\s*\(</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>name</key>
<string>string.regexp.find-m.nested_parens.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_parens_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(m)\s*'</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>name</key>
<string>string.regexp.find-m.single-quote.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(m)\s*([^\sa-zA-Z0-9'\{\[\(\&lt;])</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\2</string>
<key>name</key>
<string>string.regexp.find-m.simple-delimiter.perl</string>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>This is to prevent thinks like qr/foo$/ to treat $/ as a variable</string>
<key>match</key>
<string>\$(?=[^\sa-zA-Z0-9'\{\[\(\&lt;])</string>
<key>name</key>
<string>keyword.control.anchor.perl</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>begin</key>
<string>\[</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.character-class.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.character-class.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>constant.other.character-class.set.perl</string>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>This is to prevent thinks like qr/foo$/ to treat $/ as a variable</string>
<key>match</key>
<string>\$(?=[^\s\w'\{\[\(\&lt;])</string>
<key>name</key>
<string>keyword.control.anchor.perl</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#nested_parens_interpolated</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>applyEndPatternLast</key>
<integer>1</integer>
<key>begin</key>
<string>\b(?=(?&lt;!\&amp;)(s)(\s+\S|\s*[;\,\#\{\}\(\)\[&lt;]|$))</string>
<key>comment</key>
<string>string.regexp.replace.perl</string>
<key>end</key>
<string>((([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)\]&gt;]|$))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.replace.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>keyword.control.regexp-option.perl</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(s)\s*\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>string.regexp.nested_braces.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_braces</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(s)\s*\[</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>name</key>
<string>string.regexp.nested_brackets.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_brackets</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(s)\s*&lt;</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>&gt;</string>
<key>name</key>
<string>string.regexp.nested_ltgt.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_ltgt</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(s)\s*\(</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>name</key>
<string>string.regexp.nested_parens.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_parens</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>string.regexp.format.nested_braces.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_braces_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\[</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>name</key>
<string>string.regexp.format.nested_brackets.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_brackets_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>&lt;</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>&gt;</string>
<key>name</key>
<string>string.regexp.format.nested_ltgt.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_ltgt_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\(</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>name</key>
<string>string.regexp.format.nested_parens.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_parens_interpolated</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>name</key>
<string>string.regexp.format.single_quote.perl</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\['\\]</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([^\s\w\[({&lt;;])</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>\1</string>
<key>name</key>
<string>string.regexp.format.simple_delimiter.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>\s+</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\b(?=s([^\sa-zA-Z0-9\[({&lt;]).*\1([egimosxradlupc]*)([\}\)\;\,]|\s+))</string>
<key>comment</key>
<string>string.regexp.replaceXXX</string>
<key>end</key>
<string>((([egimosxradlupc]*)))(?=([\}\)\;\,]|\s+|$))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.replace.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>keyword.control.regexp-option.perl</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(s\s*)([^\sa-zA-Z0-9\[({&lt;])</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>(?=\2)</string>
<key>name</key>
<string>string.regexp.replaceXXX.simple_delimiter.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>name</key>
<string>string.regexp.replaceXXX.format.single_quote.perl</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\['\\]</string>
<key>name</key>
<string>constant.character.escape.perl.perl</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([^\sa-zA-Z0-9\[({&lt;])</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>\1</string>
<key>name</key>
<string>string.regexp.replaceXXX.format.simple_delimiter.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\b(?=(?&lt;!\\)s\s*([^\s\w\[({&lt;&gt;]))</string>
<key>comment</key>
<string>string.regexp.replace.extended</string>
<key>end</key>
<string>\2((([egimosradlupc]*x[egimosradlupc]*)))\b</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.replace.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>keyword.control.regexp-option.perl</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(s)\s*(.)</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
</dict>
<key>end</key>
<string>(?=\2)</string>
<key>name</key>
<string>string.regexp.replace.extended.simple_delimiter.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>'(?=[egimosradlupc]*x[egimosradlupc]*)\b</string>
<key>name</key>
<string>string.regexp.replace.extended.simple_delimiter.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(.)</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>end</key>
<string>\1(?=[egimosradlupc]*x[egimosradlupc]*)\b</string>
<key>name</key>
<string>string.regexp.replace.extended.simple_delimiter.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;=\(|\{|~|&amp;)\s*((\/))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.find.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>contentName</key>
<string>string.regexp.find.perl</string>
<key>end</key>
<string>((\1([egimosxradlupc]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|$))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.find.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>keyword.control.regexp-option.perl</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>This is to prevent thinks like /foo$/ to treat $/ as a variable</string>
<key>match</key>
<string>\$(?=\/)</string>
<key>name</key>
<string>keyword.control.anchor.perl</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.other.key.perl</string>
</dict>
</dict>
<key>match</key>
<string>\b(\w+)\s*(?==&gt;)</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;={)\s*\w+\s*(?=})</string>
<key>name</key>
<string>constant.other.bareword.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.type.class.perl</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(package)\s+([^\s;]+)</string>
<key>name</key>
<string>meta.class.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.sub.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>storage.type.method.perl</string>
</dict>
</dict>
<key>match</key>
<string>\b(sub)(?:\s+([-a-zA-Z0-9_]+))?\s*(?:\([\$\@\*;]*\))?[^\w\{]</string>
<key>name</key>
<string>meta.function.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>variable.parameter.function.perl</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(BEGIN|UNITCHECK|CHECK|INIT|END|DESTROY)\b</string>
<key>name</key>
<string>meta.function.perl</string>
</dict>
<dict>
<key>begin</key>
<string>^(?=(\t| {4}))</string>
<key>end</key>
<string>(?=[^\t\s])</string>
<key>name</key>
<string>meta.leading-tabs</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.odd-tab</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.even-tab</string>
</dict>
</dict>
<key>match</key>
<string>(\t| {4})(\t| {4})?</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
</dict>
<key>match</key>
<string>\b(tr|y)\s*([^A-Za-z0-9\s])(.*?)(?&lt;!\\)(\\{2})*(\2)(.*?)(?&lt;!\\)(\\{2})*(\2)</string>
<key>name</key>
<string>string.regexp.replace.perl</string>
</dict>
<dict>
<key>match</key>
<string>\b(__FILE__|__LINE__|__PACKAGE__|__SUB__|__DATA__|__END__)\b</string>
<key>name</key>
<string>constant.language.perl</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;!-&gt;)\b(continue|die|do|else|elsif|exit|for|foreach|goto|if|last|next|redo|return|select|unless|until|wait|while|switch|case|require|use|eval)\b</string>
<key>name</key>
<string>keyword.control.perl</string>
</dict>
<dict>
<key>match</key>
<string>\b(my|our|local)\b</string>
<key>name</key>
<string>storage.modifier.perl</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;!\w)\-[rwx0RWXOezsfdlpSbctugkTBMAC]\b</string>
<key>name</key>
<string>keyword.operator.filetest.perl</string>
</dict>
<dict>
<key>match</key>
<string>\b(and|or|xor|as|not)\b</string>
<key>name</key>
<string>keyword.operator.logical.perl</string>
</dict>
<dict>
<key>match</key>
<string>(&lt;=&gt;|=&gt;|-&gt;)</string>
<key>name</key>
<string>keyword.operator.comparison.perl</string>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *"HTML"))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.doublequote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.html.embedded.perl</string>
<key>end</key>
<string>(^HTML$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *"XML"))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.doublequote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.xml.embedded.perl</string>
<key>end</key>
<string>(^XML$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>text.xml</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *"CSS"))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.doublequote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.css.embedded.perl</string>
<key>end</key>
<string>(^CSS$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>source.css</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *"JAVASCRIPT"))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.doublequote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.js.embedded.perl</string>
<key>end</key>
<string>(^JAVASCRIPT$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>source.js</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *"SQL"))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.doublequote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>source.sql.embedded.perl</string>
<key>end</key>
<string>(^SQL$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>source.sql</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *"POSTSCRIPT"))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.doublequote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.postscript.embedded.perl</string>
<key>end</key>
<string>(^POSTSCRIPT$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>source.postscript</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *"([^"]*)"))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.doublequote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>string.unquoted.heredoc.doublequote.perl</string>
<key>end</key>
<string>(^\4$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *'HTML'))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.quote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.html.embedded.perl</string>
<key>end</key>
<string>(^HTML$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *'XML'))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.quote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.xml.embedded.perl</string>
<key>end</key>
<string>(^XML$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.xml</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *'CSS'))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.quote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.css.embedded.perl</string>
<key>end</key>
<string>(^CSS$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.css</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *'JAVASCRIPT'))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.quote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.js.embedded.perl</string>
<key>end</key>
<string>(^JAVASCRIPT$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.js</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *'SQL'))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.quote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>source.sql.embedded.perl</string>
<key>end</key>
<string>(^SQL$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.sql</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *'POSTSCRIPT'))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.quote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>source.postscript.embedded.perl</string>
<key>end</key>
<string>(^POSTSCRIPT$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.postscript</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *'([^']*)'))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.quote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>string.unquoted.heredoc.quote.perl</string>
<key>end</key>
<string>(^\4$)</string>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *\\((?![=\d\$\( ])[^;,'"`\s\)]*)))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.quote.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>string.unquoted.heredoc.quote.perl</string>
<key>end</key>
<string>(^\4$)</string>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *`([^`]*)`))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.backtick.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>string.unquoted.heredoc.backtick.perl</string>
<key>end</key>
<string>(^\4$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *HTML\b))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.html.embedded.perl</string>
<key>end</key>
<string>(^HTML$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *XML\b))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>text.xml.embedded.perl</string>
<key>end</key>
<string>(^XML$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>text.xml</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *JAVASCRIPT\b))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>source.js.embedded.perl</string>
<key>end</key>
<string>(^JAVASCRIPT$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>source.js</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *SQL\b))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>source.sql.embedded.perl</string>
<key>end</key>
<string>(^SQL$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>source.sql</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *POSTSCRIPT\b))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>4</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>source.postscript.embedded.perl</string>
<key>end</key>
<string>(^POSTSCRIPT$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>source.postscript</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(((&lt;&lt;) *((?![=\d\$\( ])[^;,'"`\s\)]*)))(.*)\n?</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.unquoted.heredoc.perl</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heredoc.perl</string>
</dict>
<key>5</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
</dict>
<key>contentName</key>
<string>string.unquoted.heredoc.perl</string>
<key>end</key>
<string>(^\4$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqq\s*([^\(\{\[\&lt;\w\s])</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\1</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.qq.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqx\s*([^'\(\{\[\&lt;\w\s])</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\1</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.qx.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqx\s*'</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.qx.single-quote.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;!-&gt;)\bqw?\s*([^\(\{\[\&lt;\w\s])</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\1</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.q.perl</string>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.perl</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\['\\]</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>`</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>`</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;!-&gt;)\bqq\s*\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.qq-paren.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_parens_interpolated</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqq\s*\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.qq-brace.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_braces_interpolated</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqq\s*\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.qq-bracket.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_brackets_interpolated</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqq\s*\&lt;</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\&gt;</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.qq-ltgt.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_ltgt_interpolated</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;!-&gt;)\bqx\s*\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.qx-paren.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_parens_interpolated</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqx\s*\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.qx-brace.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_braces_interpolated</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqx\s*\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.qx-bracket.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_brackets_interpolated</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqx\s*\&lt;</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\&gt;</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.qx-ltgt.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_ltgt_interpolated</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;!-&gt;)\bqw?\s*\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.q-paren.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nested_parens</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqw?\s*\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.q-brace.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nested_braces</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqw?\s*\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.q-bracket.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nested_brackets</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bqw?\s*\&lt;</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>\&gt;</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.q-ltgt.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nested_ltgt</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^__\w+__</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.program-block.perl</string>
</dict>
<dict>
<key>begin</key>
<string>\b(format)\s+(\w+)\s*=</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.format.perl</string>
</dict>
</dict>
<key>end</key>
<string>^\.\s*$</string>
<key>name</key>
<string>meta.format.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#line_comment</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.perl</string>
</dict>
</dict>
<key>match</key>
<string>\b(x)\s*(\d+)\b</string>
</dict>
<dict>
<key>match</key>
<string>\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\b</string>
<key>name</key>
<string>support.function.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.begin.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.end.perl</string>
</dict>
</dict>
<key>comment</key>
<string>Match empty brackets for ↩ snippet</string>
<key>match</key>
<string>(\{)(\})</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.begin.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.end.perl</string>
</dict>
</dict>
<key>comment</key>
<string>Match empty parenthesis for ↩ snippet</string>
<key>match</key>
<string>(\()(\))</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>escaped_char</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\\d+</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
<dict>
<key>match</key>
<string>\\c[^\s\\]</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
<dict>
<key>match</key>
<string>\\g(?:\{(?:\w*|-\d+)\}|\d+)</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
<dict>
<key>match</key>
<string>\\k(?:\{\w*\}|&lt;\w*&gt;|'\w*')</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
<dict>
<key>match</key>
<string>\\N\{[^\}]*\}</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
<dict>
<key>match</key>
<string>\\o\{\d*\}</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
<dict>
<key>match</key>
<string>\\(?:p|P)(?:\{\w*\}|P)</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
<dict>
<key>match</key>
<string>\\x(?:[0-9a-zA-Z]{2}|\{\w*\})?</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
</array>
</dict>
<key>line_comment</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^[ \t]+)?(?=#)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.whitespace.comment.leading.perl</string>
</dict>
</dict>
<key>end</key>
<string>(?!\G)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>#</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.perl</string>
</dict>
</dict>
<key>end</key>
<string>\n</string>
<key>name</key>
<string>comment.line.number-sign.perl</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>nested_braces</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.perl</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_braces</string>
</dict>
</array>
</dict>
<key>nested_braces_interpolated</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.perl</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_braces_interpolated</string>
</dict>
</array>
</dict>
<key>nested_brackets</key>
<dict>
<key>begin</key>
<string>\[</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_brackets</string>
</dict>
</array>
</dict>
<key>nested_brackets_interpolated</key>
<dict>
<key>begin</key>
<string>\[</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.perl</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_brackets_interpolated</string>
</dict>
</array>
</dict>
<key>nested_ltgt</key>
<dict>
<key>begin</key>
<string>&lt;</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.perl</string>
</dict>
</dict>
<key>end</key>
<string>&gt;</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nested_ltgt</string>
</dict>
</array>
</dict>
<key>nested_ltgt_interpolated</key>
<dict>
<key>begin</key>
<string>&lt;</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.perl</string>
</dict>
</dict>
<key>end</key>
<string>&gt;</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_ltgt_interpolated</string>
</dict>
</array>
</dict>
<key>nested_parens</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.perl</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nested_parens</string>
</dict>
</array>
</dict>
<key>nested_parens_interpolated</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.perl</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>This is to prevent thinks like qr/foo$/ to treat $/ as a variable</string>
<key>match</key>
<string>\$(?=[^\s\w'\{\[\(\&lt;])</string>
<key>name</key>
<string>keyword.control.anchor.perl</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#nested_parens_interpolated</string>
</dict>
</array>
</dict>
<key>variable</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>(\$)&amp;(?![A-Za-z0-9_])</string>
<key>name</key>
<string>variable.other.regexp.match.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>(\$)`(?![A-Za-z0-9_])</string>
<key>name</key>
<string>variable.other.regexp.pre-match.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>(\$)'(?![A-Za-z0-9_])</string>
<key>name</key>
<string>variable.other.regexp.post-match.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>(\$)\+(?![A-Za-z0-9_])</string>
<key>name</key>
<string>variable.other.regexp.last-paren-match.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>(\$)"(?![A-Za-z0-9_])</string>
<key>name</key>
<string>variable.other.readwrite.list-separator.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>(\$)0(?![A-Za-z0-9_])</string>
<key>name</key>
<string>variable.other.predefined.program-name.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>(\$)[_ab\*\.\/\|,\\;#%=\-~^:?!\$&lt;&gt;\(\)\[\]@](?![A-Za-z0-9_])</string>
<key>name</key>
<string>variable.other.predefined.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>(\$)[0-9]+(?![A-Za-z0-9_])</string>
<key>name</key>
<string>variable.other.subpattern.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>([\$\@\%](#)?)([a-zA-Zx7f-xff\$]|::)([a-zA-Z0-9_x7f-xff\$]|::)*\b</string>
<key>name</key>
<string>variable.other.readwrite.global.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>(\$\{)(?:[a-zA-Zx7f-xff\$]|::)(?:[a-zA-Z0-9_x7f-xff\$]|::)*(\})</string>
<key>name</key>
<string>variable.other.readwrite.global.perl</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
<key>match</key>
<string>([\$\@\%](#)?)[0-9_]\b</string>
<key>name</key>
<string>variable.other.readwrite.global.special.perl</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.perl</string>
<key>uuid</key>
<string>EDBFE125-6B1C-11D9-9189-000D93589AF6</string>
</dict>
</plist>