................... --- echo \" \\ hi` --- (token id:Backtick_Other val:'echo ' span_id:0) (token id:Backtick_Quoted val:'\\"' span_id:1) (token id:Backtick_Other val:' ' span_id:2) (token id:Backtick_Quoted val:'\\\\' span_id:3) (token id:Backtick_Other val:' hi' span_id:4) (token id:Backtick_Right val:'`' span_id:5) (token id:Eof_Real val:'' span_id:6) --- ` --- (token id:Backtick_Right val:'`' span_id:0) (token id:Eof_Real val:'' span_id:1) --- --- (token id:Eof_Real val:'' span_id:0) (token id:Char_Literals val:'foo bar' span_id:0) (token id:Char_OneChar val:'\\n' span_id:1) --- @[ ] --- (token id:Left_AtBracket val:'@[' span_id:0) (token id:Ignored_Space val:' ' span_id:1) (token id:Op_RBracket val:']' span_id:2) (token id:Eof_Real val:'' span_id:3) --- hello %s\n --- (token id:Char_Literals val:'hello ' span_id:0) (token id:Format_Percent val:'%' span_id:1) (token id:Char_Literals val:s span_id:2) (token id:Char_OneChar val:'\\n' span_id:3) (token id:Eof_Real val:'' span_id:4) --- %% percent %%\377 --- (token id:Format_EscapedPercent val:'%%' span_id:0) (token id:Char_Literals val:' percent ' span_id:1) (token id:Format_EscapedPercent val:'%%' span_id:2) (token id:Char_Octal3 val:'\\377' span_id:3) (token id:Eof_Real val:'' span_id:4) --- -3.3f --- (token id:Format_Flag val:- span_id:0) (token id:Format_Num val:3 span_id:1) (token id:Format_Dot val:. span_id:2) (token id:Format_Num val:3 span_id:3) (token id:Format_Type val:f span_id:4) (token id:Eof_Real val:'' span_id:5) --- 03d --- (token id:Format_Flag val:0 span_id:0) (token id:Format_Num val:3 span_id:1) (token id:Format_Type val:d span_id:2) (token id:Eof_Real val:'' span_id:3) (token id:Left_SingleQuoteRaw val:"'" span_id:0) [(, 'a'), (, '..'), (, 'z')] [(, '100'), (, '..'), (, '300')] [(, '-300'), (, '..'), (, '-100'), (, '..'), (, '1')] [(, '1'), (, '.'), (, '3')] [(, 'a'), (, 'a')] [(, 'newline '), (, '\\n'), (, ' NUL '), (, '\\0'), (, ' octal '), (, '\\0377'), (, ' hex '), (, '\\x00')] [(, 'unicode '), (, '\\u0065'), (, ' '), (, '\\U00000065')] [(, '\\'), (, 'd '), (, '\\e'), (, ' '), (, '\\f'), (, ' '), (, '\\'), (, 'g')] [(, '['), (, '!'), (, 'abc]')] [(, '${'), (, '!'), (, 'indirect}')] [(, '$'), (, '!'), (, 'x')] [(, '!'), (, '(foo|bar)')] [(, 'echo hi')] [(, 'echo '), (, '!!'), (, ' '), (, '!*'), (, ' '), (, '!^'), (, ' '), (, '!$')] [(, 'echo '), (, '\\!'), (, '!')] [(, 'echo '), (, '!3'), (, '...')] [(, 'echo '), (, '!-5'), (, '...')] [(, 'echo '), (, '!x/foo.py '), (, 'bar')] --- [(, 'echo '), (, "'!!'"), (, ' $'), (, "'!!'"), (, ' ')] [(, 'echo '), (, "'!! ")] [(, 'echo '), (, "\\'"), (, ' '), (, '!!'), (, ' ')] [(, 'foo')] [(, '\\h'), (, ' '), (, '\\w'), (, ' '), (, '\\$')] P '[^\\\\\\0]+'