<indentfold># comment with ALERT

</indentfold><beginfold id='1'>'''</beginfold id='1'> multiline
    comment
    ###
<indentfold>    <endfold id='1'>'''</endfold id='1'>

// alert check, no word delimiter check at start of word, bug 397719
#TODO

a = 100_000
b = 856_264.65
c = 0x420_F52

def func<beginfold id='2'>(</beginfold id='2'>x<endfold id='2'>)</endfold id='2'>:
    <beginfold id='3'>"""</beginfold id='3'> EXTENDED API docs <endfold id='3'>"""</endfold id='3'>
    if x == 42:
        func<beginfold id='2'>(</beginfold id='2'><endfold id='2'>)</endfold id='2'>
        c1 = <beginfold id='4'>{</beginfold id='4'><endfold id='4'>}</endfold id='4'>
</indentfold>        c2 = <beginfold id='4'>{</beginfold id='4'>
            2.4,
            0x42,
<indentfold>            <endfold id='4'>}</endfold id='4'>
        a1 = <beginfold id='5'>[</beginfold id='5'><endfold id='5'>]</endfold id='5'>
</indentfold>        a2 = <beginfold id='5'>[</beginfold id='5'>
            "a", 032, <beginfold id='2'>(</beginfold id='2'>
<indentfold>                <endfold id='2'>)</endfold id='2'><endfold id='5'>]</endfold id='5'>
    else:
</indentfold>        print<beginfold id='2'>(</beginfold id='2'><beginfold id='3'>"""</beginfold id='3'>multi
            line
<indentfold>            string<endfold id='3'>"""</endfold id='3'><endfold id='2'>)</endfold id='2'>
        print<beginfold id='2'>(</beginfold id='2'>"single \
                continued line "<endfold id='2'>)</endfold id='2'>
        print<beginfold id='2'>(</beginfold id='2'>'single line'<endfold id='2'>)</endfold id='2'>
    return float<beginfold id='2'>(</beginfold id='2'>len<beginfold id='2'>(</beginfold id='2'>a2<endfold id='2'>)</endfold id='2'><endfold id='2'>)</endfold id='2'>


def test_f_literals<beginfold id='2'>(</beginfold id='2'><endfold id='2'>)</endfold id='2'>:
    f'xy'
    f'x{bar}y'
    f'x{bar<beginfold id='5'>[</beginfold id='5'>"baz"<endfold id='5'>]</endfold id='5'>}y'
    f'x{bar<beginfold id='5'>[</beginfold id='5'>"baz"<endfold id='5'>]</endfold id='5'>}y\n'

    f'x{bar<beginfold id='5'>[</beginfold id='5'>"baz"<endfold id='5'>]</endfold id='5'>!r}y\n'
    f'x{bar<beginfold id='5'>[</beginfold id='5'>"baz"<endfold id='5'>]</endfold id='5'>:.2}y\n'

    f'{{x{bar<beginfold id='5'>[</beginfold id='5'>"baz"<endfold id='5'>]</endfold id='5'>:.2}}}} }} {{ {x!a}'

a = "Escapes in String \U12345678 \xAB \""
</indentfold>a = <beginfold id='1'>u'''</beginfold id='1'>\'''
<indentfold><endfold id='1'>'''</endfold id='1'>
a = <beginfold id='1'>u'''</beginfold id='1'>\'<endfold id='1'>'''</endfold id='1'>
a = b'\u1234a\xffé\12k\n\g\
s\
\"\ '
a = rb'\u1234aé\n\g\
'
a = <beginfold id='3'>b"""</beginfold id='3'><endfold id='3'>"""</endfold id='3'>
a = <beginfold id='3'>b"""</beginfold id='3'>\"<endfold id='3'>"""</endfold id='3'>
a = 'a' \
    u'\x12'
a = b"t\e's\t"
a = rb"t\e's\t"
a = r"\\" \
rb'\\' \
<beginfold id='3'>rf"""</beginfold id='3'>\\<endfold id='3'>"""</endfold id='3'> \
<beginfold id='1'>ur'''</beginfold id='1'>\\<endfold id='1'>'''</endfold id='1'>

"Escapes in Doc/Comment String \u1234 \xAb \"\\"
<beginfold id='1'>'''</beginfold id='1'> Doc/Comment String \N{123} \'<endfold id='1'>'''</endfold id='1'>
<beginfold id='3'>"""</beginfold id='3'> Doc/Comment String \17 \x1f \n \" \\<endfold id='3'>"""</endfold id='3'>

# Decimal, Hex, Binary, Octal
a = 1_2_34L
b = 0_0_00_0
c = 0xA_3f_43D
d = 0b0_0_1_01
e = 0o71_2_34
# Float
d = 1.1E+3
e = 1.E+3
f = .1E+3
g = 1E+3
h = 1.1
i = 1.
j = .1
k =  1
l = 1_0.e+3_22 + .2_1e2 + 11_1.
# Complex
m = 1.1E+3j
n = 1.E+3j
o = .1E+3j
p = 1E+3j
q = 1.1j
r = 1.j
s = .1j
t =  1j
u = 1_0.e+3_22j + .2_1e2j + 11_1.j

# Invalid numbers
aaa.123
aaa123
.0x123

# match and case keywords
</indentfold>foo<beginfold id='2'>(</beginfold id='2'>
    # no keyword
    match if xx else yyy
<indentfold><endfold id='2'>)</endfold id='2'>
match = 3
match.foo<beginfold id='2'>(</beginfold id='2'><endfold id='2'>)</endfold id='2'>
match command.split<beginfold id='2'>(</beginfold id='2'><endfold id='2'>)</endfold id='2'>:
    case <beginfold id='5'>[</beginfold id='5'>"quit"<endfold id='5'>]</endfold id='5'>:
        print<beginfold id='2'>(</beginfold id='2'>"Goodbye!"<endfold id='2'>)</endfold id='2'>

match<beginfold id='2'>(</beginfold id='2'>command.split<beginfold id='2'>(</beginfold id='2'><endfold id='2'>)</endfold id='2'><endfold id='2'>)</endfold id='2'>
match<beginfold id='2'>(</beginfold id='2'>command.split<beginfold id='2'>(</beginfold id='2'><endfold id='2'>)</endfold id='2'><endfold id='2'>)</endfold id='2'>:
    case <beginfold id='5'>[</beginfold id='5'>"quit"<endfold id='5'>]</endfold id='5'>:
        print<beginfold id='2'>(</beginfold id='2'>"Goodbye!"<endfold id='2'>)</endfold id='2'>

def func1<beginfold id='2'>(</beginfold id='2'><endfold id='2'>)</endfold id='2'>:
    yield 1
    yield  from <beginfold id='5'>[</beginfold id='5'>func<beginfold id='2'>(</beginfold id='2'><endfold id='2'>)</endfold id='2'>, 1, 2, "3"<endfold id='5'>]</endfold id='5'>
    # invalid, "from" no longer part of "yield from"
    yield, from 1

async def func2<beginfold id='2'>(</beginfold id='2'><endfold id='2'>)</endfold id='2'>:
    await asyncio.sleep<beginfold id='2'>(</beginfold id='2'>1<endfold id='2'>)</endfold id='2'>

assert cond, \
    "bla bla"

"\\\\\\\\\\ENSURE THAT THIS AND THE FOLLOWING LINES ARE AT THE <endfold id='6'>END</endfold id='6'> OF THE FILE\\\\\\\\\\ \
"
</indentfold>a = 'otherwise all succeeding lines will be
stuck on the Error attribute'
br"Strings delimited by single quotes (' or ")
can NOT be defined across multiple lines
unless escaped with \
"
