......
----------------------------------------------------------------------
Ran 6 tests in 0.001s

OK
[]
[(321, '*'), (328, '.'), (327, 'py')]
[(325, '\\*'), (328, '.'), (327, 'py')]
[(319, '['), (327, 'abc'), (320, ']')]
[(326, '\\')]
[(325, '\\x')]
[(325, '\\\\')]
[(319, '['), (319, '['), (328, ':'), (327, 'alpha'), (328, ':'), (320, ']'), (320, ']')]
[(319, '['), (322, '?'), (320, ']')]
===
*.py
regex   : .*\.py
warnings: []
===
*.?
regex   : .*\..
warnings: []
===
<*>
regex   : <.*>
warnings: []
===
\**+
regex   : \*.*\+
warnings: []
===
\**
regex   : \*.*
warnings: []
===
*.[ch]pp
regex   : .*\.[ch]pp
warnings: []
===
abc
regex   : abc
warnings: []
===
\*
regex   : \*
warnings: []
===
c:\foo
regex   : c:foo
warnings: []
===
strange]one
regex   : strange\]one
warnings: ['Got unescaped right bracket']
===
[[:space:]abc]
regex   : [[:space:]abc]
warnings: []
===
[abc]
regex   : [abc]
warnings: []
===
[\a\b\c]
regex   : [\a\b\c]
warnings: []
===
[abc\[]
regex   : [abc\[]
warnings: []
===
[!not]
regex   : [^not]
warnings: []
===
[^also_not]
regex   : [^also_not]
warnings: []
===
[!*?!\[]
regex   : [^*?!\[]
warnings: []
===
[!\]foo]
regex   : [^]foo]
warnings: []
===
not_closed[a-z
regex   : not_closed\[a-z
warnings: ['Malformed character class; treating as literal']
===
[[:spa[ce:]]
regex   : \[\[:spa\[ce:\]\]
warnings: ['Malformed character class; treating as literal']
===
[
regex   : \[
warnings: ['Malformed character class; treating as literal']
===
\
regex   : \\
warnings: ['Got unescaped trailing backslash']
===
]
regex   : \]
warnings: ['Got unescaped right bracket']