.........8

--- echo \" \\ hi` ---

(Token
  id: Id.Backtick_Other
  length: 5
  col: 0
  line: 
    (SourceLine
      line_num: 1
      content: "echo \\\" \\\\ hi`"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Backtick_DoubleQuote
  length: 2
  col: 5
  line: 
    (SourceLine
      line_num: 1
      content: "echo \\\" \\\\ hi`"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Backtick_Other
  length: 1
  col: 7
  line: 
    (SourceLine
      line_num: 1
      content: "echo \\\" \\\\ hi`"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Backtick_Quoted
  length: 2
  col: 8
  line: 
    (SourceLine
      line_num: 1
      content: "echo \\\" \\\\ hi`"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Backtick_Other
  length: 3
  col: 10
  line: 
    (SourceLine
      line_num: 1
      content: "echo \\\" \\\\ hi`"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Backtick_Right
  length: 1
  col: 13
  line: 
    (SourceLine
      line_num: 1
      content: "echo \\\" \\\\ hi`"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Eof_Real
  length: 0
  col: 14
  line: 
    (SourceLine
      line_num: 1
      content: "echo \\\" \\\\ hi`"
      src: (source.MainFile path:"<lex_test.py>")
    )
)

--- ` ---

(Token
  id: Id.Backtick_Right
  length: 1
  col: 0
  line: (SourceLine line_num:1 content:"`" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Eof_Real
  length: 0
  col: 1
  line: (SourceLine line_num:1 content:"`" src:(source.MainFile path:"<lex_test.py>"))
)

---  ---

(Token
  id: Id.Eof_Real
  length: 0
  col: 0
  line: (SourceLine line_num:0 content:"" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Lit_Chars
  length: 7
  col: 0
  line: 
    (SourceLine
      line_num: 1
      content: "foo bar\\n \\x00 \\000 \\u0065"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Char_OneChar
  length: 2
  col: 7
  line: 
    (SourceLine
      line_num: 1
      content: "foo bar\\n \\x00 \\000 \\u0065"
      src: (source.MainFile path:"<lex_test.py>")
    )
)

--- @[ ] ---

(Token
  id: Id.Expr_Reserved
  length: 2
  col: 0
  line: (SourceLine line_num:1 content:"@[ ]" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Ignored_Space
  length: 1
  col: 2
  line: (SourceLine line_num:1 content:"@[ ]" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Op_RBracket
  length: 1
  col: 3
  line: (SourceLine line_num:1 content:"@[ ]" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Eof_Real
  length: 0
  col: 4
  line: (SourceLine line_num:1 content:"@[ ]" src:(source.MainFile path:"<lex_test.py>"))
)

--- hello %s\n ---

(Token
  id: Id.Lit_Chars
  length: 6
  col: 0
  line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Format_Percent
  length: 1
  col: 6
  line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Lit_Chars
  length: 1
  col: 7
  line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Char_OneChar
  length: 2
  col: 8
  line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Eof_Real
  length: 0
  col: 10
  line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"<lex_test.py>"))
)

--- %% percent %%\377 ---

(Token
  id: Id.Format_EscapedPercent
  length: 2
  col: 0
  line: 
    (SourceLine
      line_num: 1
      content: "%% percent %%\\377"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Lit_Chars
  length: 9
  col: 2
  line: 
    (SourceLine
      line_num: 1
      content: "%% percent %%\\377"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Format_EscapedPercent
  length: 2
  col: 11
  line: 
    (SourceLine
      line_num: 1
      content: "%% percent %%\\377"
      src: (source.MainFile .............
----------------------------------------------------------------------
Ran 22 tests in 0.009s

OK
path:"<lex_test.py>")
    )
)
(Token
  id: Id.Char_Octal3
  length: 4
  col: 13
  line: 
    (SourceLine
      line_num: 1
      content: "%% percent %%\\377"
      src: (source.MainFile path:"<lex_test.py>")
    )
)
(Token
  id: Id.Eof_Real
  length: 0
  col: 17
  line: 
    (SourceLine
      line_num: 1
      content: "%% percent %%\\377"
      src: (source.MainFile path:"<lex_test.py>")
    )
)

--- -3.3f ---

(Token
  id: Id.Format_Flag
  length: 1
  col: 0
  line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Format_Num
  length: 1
  col: 1
  line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Format_Dot
  length: 1
  col: 2
  line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Format_Num
  length: 1
  col: 3
  line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Format_Type
  length: 1
  col: 4
  line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Eof_Real
  length: 0
  col: 5
  line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"<lex_test.py>"))
)

--- 03d ---

(Token
  id: Id.Format_Zero
  length: 1
  col: 0
  line: (SourceLine line_num:1 content:03d src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Format_Num
  length: 1
  col: 1
  line: (SourceLine line_num:1 content:03d src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Format_Type
  length: 1
  col: 2
  line: (SourceLine line_num:1 content:03d src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Eof_Real
  length: 0
  col: 3
  line: (SourceLine line_num:1 content:03d src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Left_SingleQuote
  length: 1
  col: 0
  line: (SourceLine line_num:1 content:"'hi'" src:(source.MainFile path:"<lex_test.py>"))
)
(Token
  id: Id.Lit_Tilde
  length: 1
  col: 0
  line: (SourceLine line_num:1 content:"~root" src:(source.MainFile path:"<lex_test.py>"))
)
[(341, 'a'), (342, '..'), (341, 'z')]
[(340, '100'), (342, '..'), (340, '300')]
[(340, '-300'), (342, '..'), (340, '-100'), (342, '..'), (340, '1')]
[(340, '1'), (343, '.'), (340, '3')]
[(341, 'a'), (341, 'a')]
[(58, 'newline '), (161, '\\n'), (58, ' NUL '), (161, '\\0'), (58, ' octal '), (166, '\\0377'), (58, ' hex '), (163, '\\x00')]
[(58, 'unicode '), (167, '\\u0065'), (58, ' '), (169, '\\U00000065')]
[(50, '\\'), (58, 'd '), (161, '\\e'), (58, ' '), (161, '\\f'), (58, ' '), (50, '\\'), (58, 'g')]
[(97, '['), (97, '!'), (97, 'abc]')]
[(97, '${'), (97, '!'), (97, 'indirect}')]
[(97, '$'), (97, '!'), (97, 'x')]
[(97, '!'), (97, '(foo|bar)')]
[(97, 'echo hi')]
[(97, 'echo '), (94, '!!'), (97, ' '), (94, '!*'), (97, ' '), (94, '!^'), (97, ' '), (94, '!$')]
[(97, 'echo '), (97, '\\!'), (97, '!')]
[(97, 'echo '), (95, '!3'), (97, '...')]
[(97, 'echo '), (95, '!-5'), (97, '...')]
[(97, 'echo '), (96, '!x/foo.py '), (97, 'bar')]
---
[(97, 'echo '), (97, "'!!'"), (97, ' $'), (97, "'!!'"), (97, ' ')]
[(97, 'echo '), (97, "'!! ")]
[(97, 'echo '), (97, "\\'"), (97, ' '), (94, '!!'), (97, ' ')]
[(338, 'foo')]
[(334, '\\h'), (338, ' '), (334, '\\w'), (338, ' '), (334, '\\$')]
P '[^\\\\\\0]+'