................... ---------------------------------------------------------------------- Ran 19 tests in 0.002s OK --- 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_SingleQuote val:"'" span_id:0) [(, '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]+'