<Comment># comment with </Comment><Alert Level 1>ALERT</Alert Level 1><br/>
<Normal Text></Normal Text><br/>
<Comment>''' multiline</Comment><br/>
<Comment>    comment</Comment><br/>
<Comment>    </Comment><Alert Level 3>###</Alert Level 3><br/>
<Comment>    '''</Comment><br/>
<Normal Text></Normal Text><br/>
<Operator>//</Operator><Normal Text> alert check, no word delimiter check at start of word, bug </Normal Text><Int>397719</Int><br/>
<Comment>#</Comment><Alert Level 2>TODO</Alert Level 2><br/>
<Normal Text></Normal Text><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Int>100_000</Int><br/>
<Normal Text>b </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>856_264.65</Float><br/>
<Normal Text>c </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Hex>0x420_F52</Hex><br/>
<Normal Text></Normal Text><br/>
<Definition Keyword>def</Definition Keyword><Normal Text> func(x):</Normal Text><br/>
<Normal Text>    </Normal Text><Comment>""" EXTENDED API docs """</Comment><br/>
<Normal Text>    </Normal Text><Flow Control Keyword>if</Flow Control Keyword><Normal Text> x </Normal Text><Operator>==</Operator><Normal Text> </Normal Text><Int>42</Int><Normal Text>:</Normal Text><br/>
<Normal Text>        func()</Normal Text><br/>
<Normal Text>        c1 </Normal Text><Operator>=</Operator><Normal Text> {}</Normal Text><br/>
<Normal Text>        c2 </Normal Text><Operator>=</Operator><Normal Text> {</Normal Text><br/>
<Normal Text>            </Normal Text><Float>2.4</Float><Normal Text>,</Normal Text><br/>
<Normal Text>            </Normal Text><Hex>0x42</Hex><Normal Text>,</Normal Text><br/>
<Normal Text>            }</Normal Text><br/>
<Normal Text>        a1 </Normal Text><Operator>=</Operator><Normal Text> []</Normal Text><br/>
<Normal Text>        a2 </Normal Text><Operator>=</Operator><Normal Text> [</Normal Text><br/>
<Normal Text>            </Normal Text><String>"a"</String><Normal Text>, </Normal Text><Int>0</Int><Error>32</Error><Normal Text>, (</Normal Text><br/>
<Normal Text>                )]</Normal Text><br/>
<Normal Text>    </Normal Text><Flow Control Keyword>else</Flow Control Keyword><Normal Text>:</Normal Text><br/>
<Normal Text>        </Normal Text><Builtin Function>print</Builtin Function><Normal Text>(</Normal Text><String>"""multi</String><br/>
<String>            line</String><br/>
<String>            string"""</String><Normal Text>)</Normal Text><br/>
<Normal Text>        </Normal Text><Builtin Function>print</Builtin Function><Normal Text>(</Normal Text><String>"single </String><String Char>\</String Char><br/>
<String>                continued line "</String><Normal Text>)</Normal Text><br/>
<Normal Text>        </Normal Text><Builtin Function>print</Builtin Function><Normal Text>(</Normal Text><String>'single line'</String><Normal Text>)</Normal Text><br/>
<Normal Text>    </Normal Text><Flow Control Keyword>return</Flow Control Keyword><Normal Text> </Normal Text><Builtin Function>float</Builtin Function><Normal Text>(</Normal Text><Builtin Function>len</Builtin Function><Normal Text>(a2))</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Normal Text></Normal Text><br/>
<Definition Keyword>def</Definition Keyword><Normal Text> test_f_literals():</Normal Text><br/>
<Normal Text>    </Normal Text><F-String>f'xy'</F-String><br/>
<Normal Text>    </Normal Text><F-String>f'x</F-String><String Substitution>{</String Substitution><Normal Text>bar</Normal Text><String Substitution>}</String Substitution><F-String>y'</F-String><br/>
<Normal Text>    </Normal Text><F-String>f'x</F-String><String Substitution>{</String Substitution><Normal Text>bar[</Normal Text><String>"baz"</String><Normal Text>]</Normal Text><String Substitution>}</String Substitution><F-String>y'</F-String><br/>
<Normal Text>    </Normal Text><F-String>f'x</F-String><String Substitution>{</String Substitution><Normal Text>bar[</Normal Text><String>"baz"</String><Normal Text>]</Normal Text><String Substitution>}</String Substitution><F-String>y</F-String><String Char>\n</String Char><F-String>'</F-String><br/>
<Normal Text></Normal Text><br/>
<Normal Text>    </Normal Text><F-String>f'x</F-String><String Substitution>{</String Substitution><Normal Text>bar[</Normal Text><String>"baz"</String><Normal Text>]</Normal Text><String Substitution>!r}</String Substitution><F-String>y</F-String><String Char>\n</String Char><F-String>'</F-String><br/>
<Normal Text>    </Normal Text><F-String>f'x</F-String><String Substitution>{</String Substitution><Normal Text>bar[</Normal Text><String>"baz"</String><Normal Text>]</Normal Text><String Substitution>:.2}</String Substitution><F-String>y</F-String><String Char>\n</String Char><F-String>'</F-String><br/>
<Normal Text></Normal Text><br/>
<Normal Text>    </Normal Text><F-String>f'</F-String><String Char>{{</String Char><F-String>x</F-String><String Substitution>{</String Substitution><Normal Text>bar[</Normal Text><String>"baz"</String><Normal Text>]</Normal Text><String Substitution>:.2}</String Substitution><String Char>}}</String Char><Error>}</Error><F-String> </F-String><String Char>}}</String Char><F-String> </F-String><String Char>{{</String Char><F-String> </F-String><String Substitution>{</String Substitution><Normal Text>x</Normal Text><String Substitution>!a}</String Substitution><F-String>'</F-String><br/>
<Normal Text></Normal Text><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>"Escapes in String </String><String Char>\U12345678</String Char><String> </String><String Char>\xAB</String Char><String> </String><String Char>\"</String Char><String>"</String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>u'''</String><String Char>\'</String Char><String>''</String><br/>
<String>'''</String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>u'''</String><String Char>\'</String Char><String>'''</String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><B-String>b'\u1234a</B-String><String Char>\xff</String Char><Error>é</Error><String Char>\12</String Char><B-String>k</B-String><String Char>\n</String Char><B-String>\g</B-String><String Char>\</String Char><br/>
<B-String>s</B-String><String Char>\</String Char><br/>
<String Char>\"</String Char><B-String>\ '</B-String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Raw B-String>rb'\u1234a</Raw B-String><Error>é</Error><Raw B-String>\n\g\</Raw B-String><br/>
<Raw B-String>'</Raw B-String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><B-String>b""""""</B-String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><B-String>b"""</B-String><String Char>\"</String Char><B-String>"""</B-String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>'a'</String><Normal Text> \</Normal Text><br/>
<Normal Text>    </Normal Text><String>u'</String><String Char>\x12</String Char><String>'</String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><B-String>b"t\e's</B-String><String Char>\t</String Char><B-String>"</B-String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Raw B-String>rb"t\e's\t"</Raw B-String><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Raw String>r"\\"</Raw String><Normal Text> \</Normal Text><br/>
<Raw B-String>rb'\\'</Raw B-String><Normal Text> \</Normal Text><br/>
<Raw F-String>rf"""\\"""</Raw F-String><Normal Text> \</Normal Text><br/>
<Raw String>ur'''\\'''</Raw String><br/>
<Normal Text></Normal Text><br/>
<Comment>"Escapes in Doc/Comment String </Comment><String Char>\u1234</String Char><Comment> </Comment><String Char>\xAb</String Char><Comment> </Comment><String Char>\"\\</String Char><Comment>"</Comment><br/>
<Comment>''' Doc/Comment String </Comment><String Char>\N{123}</String Char><Comment> </Comment><String Char>\'</String Char><Comment>'''</Comment><br/>
<Comment>""" Doc/Comment String </Comment><String Char>\17</String Char><Comment> </Comment><String Char>\x1f</String Char><Comment> </Comment><String Char>\n</String Char><Comment> </Comment><String Char>\"</String Char><Comment> </Comment><String Char>\\</String Char><Comment>"""</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment># Decimal, Hex, Binary, Octal</Comment><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Int>1_2_34L</Int><br/>
<Normal Text>b </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Int>0_0_00_0</Int><br/>
<Normal Text>c </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Hex>0xA_3f_43D</Hex><br/>
<Normal Text>d </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Binary>0b0_0_1_01</Binary><br/>
<Normal Text>e </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Octal>0o71_2_34</Octal><br/>
<Comment># Float</Comment><br/>
<Normal Text>d </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>1.1E+3</Float><br/>
<Normal Text>e </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>1.E+3</Float><br/>
<Normal Text>f </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>.1E+3</Float><br/>
<Normal Text>g </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>1E+3</Float><br/>
<Normal Text>h </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>1.1</Float><br/>
<Normal Text>i </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>1.</Float><br/>
<Normal Text>j </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>.1</Float><br/>
<Normal Text>k </Normal Text><Operator>=</Operator><Normal Text>  </Normal Text><Int>1</Int><br/>
<Normal Text>l </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Float>1_0.e+3_22</Float><Normal Text> </Normal Text><Operator>+</Operator><Normal Text> </Normal Text><Float>.2_1e2</Float><Normal Text> </Normal Text><Operator>+</Operator><Normal Text> </Normal Text><Float>11_1.</Float><br/>
<Comment># Complex</Comment><br/>
<Normal Text>m </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Complex>1.1E+3j</Complex><br/>
<Normal Text>n </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Complex>1.E+3j</Complex><br/>
<Normal Text>o </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Complex>.1E+3j</Complex><br/>
<Normal Text>p </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Complex>1E+3j</Complex><br/>
<Normal Text>q </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Complex>1.1j</Complex><br/>
<Normal Text>r </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Complex>1.j</Complex><br/>
<Normal Text>s </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Complex>.1j</Complex><br/>
<Normal Text>t </Normal Text><Operator>=</Operator><Normal Text>  </Normal Text><Complex>1j</Complex><br/>
<Normal Text>u </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Complex>1_0.e+3_22j</Complex><Normal Text> </Normal Text><Operator>+</Operator><Normal Text> </Normal Text><Complex>.2_1e2j</Complex><Normal Text> </Normal Text><Operator>+</Operator><Normal Text> </Normal Text><Complex>11_1.j</Complex><br/>
<Normal Text></Normal Text><br/>
<Comment># Invalid numbers</Comment><br/>
<Normal Text>aaa.</Normal Text><Error>123</Error><br/>
<Normal Text>aaa123</Normal Text><br/>
<Float>.0</Float><Error>x123</Error><br/>
<Normal Text></Normal Text><br/>
<Comment># match and case keywords</Comment><br/>
<Normal Text>foo(</Normal Text><br/>
<Normal Text>    </Normal Text><Comment># no keyword</Comment><br/>
<Normal Text>    match </Normal Text><Flow Control Keyword>if</Flow Control Keyword><Normal Text> xx </Normal Text><Flow Control Keyword>else</Flow Control Keyword><Normal Text> yyy</Normal Text><br/>
<Normal Text>)</Normal Text><br/>
<Normal Text>match </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><Int>3</Int><br/>
<Normal Text>match.foo()</Normal Text><br/>
<Flow Control Keyword>match</Flow Control Keyword><Normal Text> command.split():</Normal Text><br/>
<Normal Text>    </Normal Text><Flow Control Keyword>case</Flow Control Keyword><Normal Text> [</Normal Text><String>"quit"</String><Normal Text>]:</Normal Text><br/>
<Normal Text>        </Normal Text><Builtin Function>print</Builtin Function><Normal Text>(</Normal Text><String>"Goodbye!"</String><Normal Text>)</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Normal Text>match(command.split())</Normal Text><br/>
<Flow Control Keyword>match</Flow Control Keyword><Normal Text>(command.split()):</Normal Text><br/>
<Normal Text>    </Normal Text><Flow Control Keyword>case</Flow Control Keyword><Normal Text> [</Normal Text><String>"quit"</String><Normal Text>]:</Normal Text><br/>
<Normal Text>        </Normal Text><Builtin Function>print</Builtin Function><Normal Text>(</Normal Text><String>"Goodbye!"</String><Normal Text>)</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Definition Keyword>def</Definition Keyword><Normal Text> func1():</Normal Text><br/>
<Normal Text>    </Normal Text><Flow Control Keyword>yield</Flow Control Keyword><Normal Text> </Normal Text><Int>1</Int><br/>
<Normal Text>    </Normal Text><Flow Control Keyword>yield</Flow Control Keyword><Normal Text>  </Normal Text><Flow Control Keyword>from</Flow Control Keyword><Normal Text> [func(), </Normal Text><Int>1</Int><Normal Text>, </Normal Text><Int>2</Int><Normal Text>, </Normal Text><String>"3"</String><Normal Text>]</Normal Text><br/>
<Normal Text>    </Normal Text><Comment># invalid, "from" no longer part of "yield from"</Comment><br/>
<Normal Text>    </Normal Text><Flow Control Keyword>yield</Flow Control Keyword><Normal Text>, </Normal Text><Import>from</Import><Normal Text> </Normal Text><Int>1</Int><br/>
<Normal Text></Normal Text><br/>
<Flow Control Keyword>async</Flow Control Keyword><Normal Text> </Normal Text><Definition Keyword>def</Definition Keyword><Normal Text> func2():</Normal Text><br/>
<Normal Text>    </Normal Text><Flow Control Keyword>await</Flow Control Keyword><Normal Text> asyncio.sleep(</Normal Text><Int>1</Int><Normal Text>)</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Flow Control Keyword>assert</Flow Control Keyword><Normal Text> cond, </Normal Text><Operator>\</Operator><br/>
<Normal Text>    </Normal Text><String>"bla bla"</String><br/>
<Normal Text></Normal Text><br/>
<Comment>"</Comment><String Char>\\\\\\\\\\</String Char><Comment>ENSURE THAT THIS AND THE FOLLOWING LINES ARE AT THE </Comment><Region Marker>END</Region Marker><Comment> OF THE FILE</Comment><String Char>\\\\\\\\\\</String Char><Comment> </Comment><String Char>\</String Char><br/>
<Comment>"</Comment><br/>
<Normal Text>a </Normal Text><Operator>=</Operator><Normal Text> </Normal Text><String>'otherwise all succeeding lines will be</String><br/>
<Error>stuck on the Error attribute'</Error><br/>
<Error>br"Strings delimited by single quotes (' or ")</Error><br/>
<Error>can NOT be defined across multiple lines</Error><br/>
<Error>unless escaped with \</Error><br/>
<Error>"</Error><br/>
