[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]
null
false
true
(?>
(?: [1-9][0-9]* | 0 ) (?: \. [0-9]* )? |
\. [0-9]+
)
(?> [eE] [+-]? [0-9]+ )?
(?<! \%{js:identifier-char} | \. )
(?=
\%{_decimal}
(?! \%{js:identifier-part} | \. )
)
\%{_decimal}
(?>
(?: [1-9][0-9]* | 0 )
)
(?<! \%{js:identifier-char} | \. )
(?=
\%{_decimal-integer} n
(?! \%{js:identifier-part} | \. )
)
\%{_decimal-integer}n
(?> 0 [bB] [01]+ )
(?<! \%{js:identifier-char} | \. )
(?=
\%{_binary-integer} n?
(?! \%{js:identifier-part} | \. )
)
\%{_binary-integer}n?
(?> 0 [oO] [0-7]+ )
(?<! \%{js:identifier-char} | \. )
(?=
\%{_octal-integer} n?
(?! \%{js:identifier-part} | \. )
)
\%{_octal-integer}n?
(?> 0 [xX] [0-9a-fA-F]+ )
(?<! \%{js:identifier-char} | \. )
(?=
\%{_hex-integer} n?
(?! \%{js:identifier-part} | \. )
)
\%{_hex-integer}n?
(?> 0 [0-7]+ )
(?<! \%{js:identifier-char} | \. )
(?=
\%{_legacy-octal-integer}
(?! \%{js:identifier-part} | \. )
)
\%{_legacy-octal-integer}
\\
(
0 [0-7]{1,2} | # 0-padded number, not \0 (null character)
[1-3] [0-7]{0,2} | # max \377
[4-7] [0-7]{0,1}
)
(
\%{js:unicode-escape} |
\\
(
x[0-9a-fA-F]{2} | # hexadecimal escape
[^1-9xu] # single character escape
)
)
["']
\%{0@start}
["']
\%{0@start}
\[
]
\%{js:before-next-token}
\%{js:before-next-token}
,
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
\[
]
(?: \%[ constructor \%] )
(?=\%{_special-property-names})
\%{_special-property-names}
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
\%{js:before-next-token}
:
\%{js:before-next-token}
{
}
\%{js:before-next-token}
\%{js:before-next-token}
,
\%{js:before-next-token}
\\c[a-zA-Z]
\\ [pP] \{ ( [a-zA-Z_]+ = )? [a-zA-Z0-9_]+ \}
\(\? < ( \%{js:identifier} ) >
\\k < ( \%{js:identifier} ) >
\[
]
/
/([gimsuy]*)
(?<=`)
(?=`|\$\{)
(?<=})
(?=`|\$\{)
\$\{
}
`
`
`
`