Tidied up a lot of comments in the test files.

This commit is contained in:
Philip.Hazel 2015-09-16 16:49:48 +00:00
parent 36db5a4d5f
commit be7366f6f0
31 changed files with 3156 additions and 3989 deletions

725
testdata/testinput1 vendored

File diff suppressed because it is too large Load Diff

63
testdata/testinput10 vendored
View File

@ -38,16 +38,21 @@
/a\C\Cb/utf /a\C\Cb/utf
a\x{100}b a\x{100}b
** Failers \= Expect no match
a\x{12257}b a\x{12257}b
# The next 3 patterns have UTF-8 errors
/[Ã]/utf /[Ã]/utf
/Ã/utf /Ã/utf
/ÃÃÃxxx/utf /ÃÃÃxxx/utf
# Now test subjects
/badutf/utf /badutf/utf
\= Expect UTF-8 errors
X\xdf X\xdf
XX\xef XX\xef
XXX\xef\x80 XXX\xef\x80
@ -89,11 +94,13 @@
\xff \xff
/badutf/utf /badutf/utf
\= Expect UTF-8 errors
XX\xfb\x80\x80\x80\x80 XX\xfb\x80\x80\x80\x80
XX\xfd\x80\x80\x80\x80\x80 XX\xfd\x80\x80\x80\x80\x80
XX\xf7\xbf\xbf\xbf XX\xf7\xbf\xbf\xbf
/shortutf/utf /shortutf/utf
\= Expect UTF-8 errors
XX\xdf\=ph XX\xdf\=ph
XX\xef\=ph XX\xef\=ph
XX\xef\x80\=ph XX\xef\x80\=ph
@ -111,6 +118,7 @@
\xfd\x80\x80\x80\x80\=ph \xfd\x80\x80\x80\x80\=ph
/anything/utf /anything/utf
\= Expect UTF-8 errors
X\xc0\x80 X\xc0\x80
XX\xc1\x8f XX\xc1\x8f
XXX\xe0\x9f\x80 XXX\xe0\x9f\x80
@ -119,15 +127,16 @@
\xfc\x83\x80\x80\x80\x80 \xfc\x83\x80\x80\x80\x80
\xfe\x80\x80\x80\x80\x80 \xfe\x80\x80\x80\x80\x80
\xff\x80\x80\x80\x80\x80 \xff\x80\x80\x80\x80\x80
\xf8\x88\x80\x80\x80
\xf9\x87\x80\x80\x80
\xfc\x84\x80\x80\x80\x80
\xfd\x83\x80\x80\x80\x80
\= Expect no match
\xc3\x8f \xc3\x8f
\xe0\xaf\x80 \xe0\xaf\x80
\xe1\x80\x80 \xe1\x80\x80
\xf0\x9f\x80\x80 \xf0\x9f\x80\x80
\xf1\x8f\x80\x80 \xf1\x8f\x80\x80
\xf8\x88\x80\x80\x80
\xf9\x87\x80\x80\x80
\xfc\x84\x80\x80\x80\x80
\xfd\x83\x80\x80\x80\x80
\xf8\x88\x80\x80\x80\=no_utf_check \xf8\x88\x80\x80\x80\=no_utf_check
\xf9\x87\x80\x80\x80\=no_utf_check \xf9\x87\x80\x80\x80\=no_utf_check
\xfc\x84\x80\x80\x80\x80\=no_utf_check \xfc\x84\x80\x80\x80\x80\=no_utf_check
@ -136,31 +145,38 @@
# Similar tests with offsets # Similar tests with offsets
/badutf/utf /badutf/utf
\= Expect UTF-8 errors
X\xdfabcd X\xdfabcd
X\xdfabcd\=offset=1 X\xdfabcd\=offset=1
\= Expect no match
X\xdfabcd\=offset=2 X\xdfabcd\=offset=2
/(?<=x)badutf/utf /(?<=x)badutf/utf
\= Expect UTF-8 errors
X\xdfabcd X\xdfabcd
X\xdfabcd\=offset=1 X\xdfabcd\=offset=1
X\xdfabcd\=offset=2 X\xdfabcd\=offset=2
X\xdfabcd\=offset=3
X\xdfabcd\xdf\=offset=3 X\xdfabcd\xdf\=offset=3
\= Expect no match
X\xdfabcd\=offset=3
/(?<=xx)badutf/utf /(?<=xx)badutf/utf
\= Expect UTF-8 errors
X\xdfabcd X\xdfabcd
X\xdfabcd\=offset=1 X\xdfabcd\=offset=1
X\xdfabcd\=offset=2 X\xdfabcd\=offset=2
X\xdfabcd\=offset=3 X\xdfabcd\=offset=3
/(?<=xxxx)badutf/utf /(?<=xxxx)badutf/utf
\= Expect UTF-8 errors
X\xdfabcd X\xdfabcd
X\xdfabcd\=offset=1 X\xdfabcd\=offset=1
X\xdfabcd\=offset=2 X\xdfabcd\=offset=2
X\xdfabcd\=offset=3 X\xdfabcd\=offset=3
X\xdfabcd\=offset=6
X\xdfabc\xdf\=offset=6 X\xdfabc\xdf\=offset=6
X\xdfabc\xdf\=offset=7 X\xdfabc\xdf\=offset=7
\= Expect no match
X\xdfabcd\=offset=6
/\x{100}/IB,utf /\x{100}/IB,utf
@ -208,7 +224,7 @@
# correctly, but that messes up comparisons). # correctly, but that messes up comparisons).
/a\Cb/utf /a\Cb/utf
*** Failers \= Expect no match
a\x{100}b a\x{100}b
/[^ab\xC0-\xF0]/IB,utf /[^ab\xC0-\xF0]/IB,utf
@ -216,7 +232,7 @@
\x{bf} \x{bf}
\x{100} \x{100}
\x{1000} \x{1000}
*** Failers \= Expect no match
\x{c0} \x{c0}
\x{f0} \x{f0}
@ -243,7 +259,6 @@
\x{100} \x{100}
Z\x{100} Z\x{100}
\x{100}Z \x{100}Z
*** Failers
/[\xff]/IB,utf /[\xff]/IB,utf
>\x{ff}< >\x{ff}<
@ -265,21 +280,23 @@
# This tests the stricter UTF-8 check according to RFC 3629. # This tests the stricter UTF-8 check according to RFC 3629.
/X/utf /X/utf
\= Expect UTF-8 errors
\x{d800} \x{d800}
\x{d800}\=no_utf_check
\x{da00} \x{da00}
\x{da00}\=no_utf_check
\x{dfff} \x{dfff}
\x{dfff}\=no_utf_check
\x{110000} \x{110000}
\x{110000}\=no_utf_check
\x{2000000} \x{2000000}
\x{2000000}\=no_utf_check
\x{7fffffff} \x{7fffffff}
\= Expect no match
\x{d800}\=no_utf_check
\x{da00}\=no_utf_check
\x{dfff}\=no_utf_check
\x{110000}\=no_utf_check
\x{2000000}\=no_utf_check
\x{7fffffff}\=no_utf_check \x{7fffffff}\=no_utf_check
/(*UTF8)\x{1234}/ /(*UTF8)\x{1234}/
abcd\x{1234}pqr abcd\x{1234}pqr
/(*CRLF)(*UTF)(*BSR_UNICODE)a\Rb/I /(*CRLF)(*UTF)(*BSR_UNICODE)a\Rb/I
@ -319,11 +336,14 @@
/a+/utf /a+/utf
a\x{123}aa\=offset=1 a\x{123}aa\=offset=1
a\x{123}aa\=offset=2
a\x{123}aa\=offset=3 a\x{123}aa\=offset=3
a\x{123}aa\=offset=4 a\x{123}aa\=offset=4
a\x{123}aa\=offset=5 \= Expect bad offset value
a\x{123}aa\=offset=6 a\x{123}aa\=offset=6
\= Expect bad UTF-8 offset
a\x{123}aa\=offset=2
\= Expect no match
a\x{123}aa\=offset=5
/\x{1234}+/Ii,utf /\x{1234}+/Ii,utf
@ -424,7 +444,6 @@
Z\x{100} Z\x{100}
\x{100} \x{100}
\x{100}Z \x{100}Z
*** Failers
/[z-\x{100}]/IB,utf /[z-\x{100}]/IB,utf
@ -450,7 +469,7 @@
\x{104} \x{104}
\x{105} \x{105}
\x{109} \x{109}
** Failers \= Expect no match
\x{100} \x{100}
\x{10a} \x{10a}
@ -464,7 +483,7 @@
\x{ff} \x{ff}
\x{100} \x{100}
\x{101} \x{101}
** Failers \= Expect no match
\x{102} \x{102}
Y Y
y y
@ -474,6 +493,6 @@
/\x{3a3}B/IBi,utf /\x{3a3}B/IBi,utf
/abc/utf,replace=Ã /abc/utf,replace=Ã
abc abc
# End of testinput10 # End of testinput10

42
testdata/testinput12 vendored
View File

@ -34,7 +34,7 @@
X\x{11234}Y X\x{11234}Y
X\x{11234}YZ X\x{11234}YZ
X\x{11234}\x{512}YZ X\x{11234}\x{512}YZ
*** Failers \= Expect no match
X\x{11234} X\x{11234}
/a\Cb/utf /a\Cb/utf
@ -43,8 +43,8 @@
/a\C\Cb/utf /a\C\Cb/utf
a\x{12257}b a\x{12257}b
\= Expect no match
a\x{12257}\x{11234}b a\x{12257}\x{11234}b
** Failers
a\x{100}b a\x{100}b
/ab\Cde/utf /ab\Cde/utf
@ -90,19 +90,14 @@
/\x{212ab}/IB,utf /\x{212ab}/IB,utf
# This one is here not because it's different to Perl, but because the way # These two \C tests, copied from the UTF-8 input file, do not have any
# the captured single-byte is displayed. (In Perl it becomes a character, and you # problems in 16 or 32 bits.
# can't tell the difference.)
/X(\C)(.*)/utf /X(\C)(.*)/utf
X\x{1234} X\x{1234}
X\nabc X\nabc
# This one is here because Perl gives out a grumbly error message (quite
# correctly, but that messes up comparisons).
/a\Cb/utf /a\Cb/utf
*** Failers
a\x{100}b a\x{100}b
/[^ab\xC0-\xF0]/IB,utf /[^ab\xC0-\xF0]/IB,utf
@ -110,7 +105,7 @@
\x{bf} \x{bf}
\x{100} \x{100}
\x{1000} \x{1000}
*** Failers \= Expect no match
\x{c0} \x{c0}
\x{f0} \x{f0}
@ -137,7 +132,6 @@
\x{100} \x{100}
Z\x{100} Z\x{100}
\x{100}Z \x{100}Z
*** Failers
/[\xff]/IB,utf /[\xff]/IB,utf
>\x{ff}< >\x{ff}<
@ -157,19 +151,21 @@
/^[\QĀ\E-\QŐ\E/B,utf /^[\QĀ\E-\QŐ\E/B,utf
/X/utf /X/utf
XX\x{d800}
XX\x{d800}\=offset=3
XX\x{d800}\=no_utf_check XX\x{d800}\=no_utf_check
XX\x{da00}
XX\x{da00}\=no_utf_check XX\x{da00}\=no_utf_check
XX\x{dc00}
XX\x{dc00}\=no_utf_check XX\x{dc00}\=no_utf_check
XX\x{de00}
XX\x{de00}\=no_utf_check XX\x{de00}\=no_utf_check
XX\x{dfff}
XX\x{dfff}\=no_utf_check XX\x{dfff}\=no_utf_check
\= Expect UTF error
XX\x{d800}
XX\x{da00}
XX\x{dc00}
XX\x{de00}
XX\x{dfff}
XX\x{110000} XX\x{110000}
XX\x{d800}\x{1234} XX\x{d800}\x{1234}
\= Expect no match
XX\x{d800}\=offset=3
/(?<=.)X/utf /(?<=.)X/utf
XX\x{d800}\=offset=3 XX\x{d800}\=offset=3
@ -233,7 +229,9 @@
a\x{123}aa\=offset=1 a\x{123}aa\=offset=1
a\x{123}aa\=offset=2 a\x{123}aa\=offset=2
a\x{123}aa\=offset=3 a\x{123}aa\=offset=3
\= Expect no match
a\x{123}aa\=offset=4 a\x{123}aa\=offset=4
\= Expect bad offset error
a\x{123}aa\=offset=5 a\x{123}aa\=offset=5
a\x{123}aa\=offset=6 a\x{123}aa\=offset=6
@ -254,11 +252,16 @@
# Check bad offset # Check bad offset
/a/utf /a/utf
\= Expect bad UTF-16 offset, or no match in 32-bit
\x{10000}\=offset=1 \x{10000}\=offset=1
\x{10000}ab\=offset=1 \x{10000}ab\=offset=1
\= Expect 16-bit match, 32-bit no match
\x{10000}ab\=offset=2 \x{10000}ab\=offset=2
\= Expect no match
\x{10000}ab\=offset=3 \x{10000}ab\=offset=3
\= Expect no match in 16-bit, bad offset in 32-bit
\x{10000}ab\=offset=4 \x{10000}ab\=offset=4
\= Expect bad offset
\x{10000}ab\=offset=5 \x{10000}ab\=offset=5
/<2F><><EFBFBD>/utf /<2F><><EFBFBD>/utf
@ -345,7 +348,6 @@
Z\x{100} Z\x{100}
\x{100} \x{100}
\x{100}Z \x{100}Z
*** Failers
/[z-\x{100}]/IB,utf /[z-\x{100}]/IB,utf
@ -371,7 +373,7 @@
\x{104} \x{104}
\x{105} \x{105}
\x{109} \x{109}
** Failers \= Expect no match
\x{100} \x{100}
\x{10a} \x{10a}
@ -385,7 +387,7 @@
\x{ff} \x{ff}
\x{100} \x{100}
\x{101} \x{101}
** Failers \= Expect no match
\x{102} \x{102}
Y Y
y y

21
testdata/testinput17 vendored
View File

@ -18,28 +18,33 @@
/abcd/I /abcd/I
abcd abcd
\= Expect no match
xyz xyz
/(*NO_JIT)abcd/I /(*NO_JIT)abcd/I
abcd abcd
\= Expect no match
xyz xyz
/abcd/ /abcd/
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
\= Expect no match
xyz xyz
/abcd/jitfast /abcd/jitfast
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
\= Expect no match
xyz xyz
/abcd/jit=1 /abcd/jit=1
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
\= Expect no match
xyz xyz
xyz\=ps xyz\=ps
@ -47,13 +52,15 @@
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
xyz
xyz\=ps xyz\=ps
\= Expect no match
xyz
/abcd/jit=2 /abcd/jit=2
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
\= Expect no match
xyz xyz
/abcd/jit=2,jitfast /abcd/jit=2,jitfast
@ -66,35 +73,41 @@
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
\= Expect no match
xyz xyz
/abcd/jit=4 /abcd/jit=4
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
\= Expect no match
xyz xyz
/abcd/jit=5 /abcd/jit=5
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
\= Expect no match
xyz xyz
/abcd/jit=6 /abcd/jit=6
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
\= Expect no match
xyz xyz
/abcd/jit=7 /abcd/jit=7
abcd abcd
ab\=ps ab\=ps
ab\=ph ab\=ph
\= Expect no match
xyz xyz
/abcd/I,jit=2 /abcd/I,jit=2
/(*NO_START_OPT)a(*:m)b/mark /(*NO_START_OPT)a(*:m)b/mark
\= Expect no match
a a
/^12345678abcd/m /^12345678abcd/m
@ -104,6 +117,7 @@
/(a+)*zz/I /(a+)*zz/I
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\=find_limits aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\=find_limits
\= Expect no match
aaaaaaaaaaaaaz\=find_limits aaaaaaaaaaaaaz\=find_limits
!((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)!I !((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)!I
@ -140,7 +154,9 @@
aabbccddee\=jitstack=1 aabbccddee\=jitstack=1
/(a+)*zz/ /(a+)*zz/
\= Expect no match
aaaaaaaaaaaaaz aaaaaaaaaaaaaz
\= Expect limit exceeded
aaaaaaaaaaaaaz\=match_limit=3000 aaaaaaaaaaaaaz\=match_limit=3000
/(*LIMIT_MATCH=3000)(a+)*zz/I /(*LIMIT_MATCH=3000)(a+)*zz/I
@ -151,7 +167,9 @@
aaaaaaaaaaaaaz aaaaaaaaaaaaaz
/(*LIMIT_MATCH=60000)(a+)*zz/I /(*LIMIT_MATCH=60000)(a+)*zz/I
\= Expect no match
aaaaaaaaaaaaaz aaaaaaaaaaaaaz
\= Expect limit exceeded
aaaaaaaaaaaaaz\=match_limit=3000 aaaaaaaaaaaaaz\=match_limit=3000
# These three have infinitely nested recursions. # These three have infinitely nested recursions.
@ -171,6 +189,7 @@
/abcd/ /abcd/
abcd\=anchored abcd\=anchored
\= Expect no match
fail abcd\=anchored fail abcd\=anchored
/abcd/jitfast /abcd/jitfast

10
testdata/testinput18 vendored
View File

@ -19,7 +19,6 @@
/abc/ /abc/
abc abc
*** Failers
/^abc|def/ /^abc|def/
abcdef abcdef
@ -31,7 +30,7 @@
/the quick brown fox/ /the quick brown fox/
the quick brown fox the quick brown fox
*** Failers \= Expect no match
The Quick Brown Fox The Quick Brown Fox
/the quick brown fox/i /the quick brown fox/i
@ -39,7 +38,7 @@
The Quick Brown Fox The Quick Brown Fox
/(*LF)abc.def/ /(*LF)abc.def/
*** Failers \= Expect no match
abc\ndef abc\ndef
/(*LF)abc$/ /(*LF)abc$/
@ -49,6 +48,7 @@
/(abc)\2/ /(abc)\2/
/(abc\1)/ /(abc\1)/
\= Expect no match
abc abc
/a*(b+)(z)(z)/ /a*(b+)(z)(z)/
@ -60,7 +60,7 @@
/(*ANY)ab.cd/ /(*ANY)ab.cd/
ab-cd ab-cd
ab=cd ab=cd
** Failers \= Expect no match
ab\ncd ab\ncd
/ab.cd/s /ab.cd/s
@ -76,7 +76,7 @@
/a?|b?/ /a?|b?/
abc abc
** Failers \= Expect no match
ddd\=notempty ddd\=notempty
/\w+A/ /\w+A/

View File

@ -9,6 +9,7 @@
a\x{1234}b a\x{1234}b
/\w/ /\w/
\= Expect no match
+++\x{c2} +++\x{c2}
/\w/ucp /\w/ucp

357
testdata/testinput2 vendored

File diff suppressed because it is too large Load Diff

View File

@ -36,6 +36,7 @@
#pop mark #pop mark
C C
\= Expect no match
D D
#pop #pop

18
testdata/testinput3 vendored
View File

@ -8,35 +8,35 @@
#forbid_utf #forbid_utf
/^[\w]+/ /^[\w]+/
*** Failers \= Expect no match
École École
/^[\w]+/locale=fr_FR /^[\w]+/locale=fr_FR
École École
/^[\w]+/ /^[\w]+/
*** Failers \= Expect no match
École École
/^[\W]+/ /^[\W]+/
École École
/^[\W]+/locale=fr_FR /^[\W]+/locale=fr_FR
*** Failers \= Expect no match
École École
/[\b]/ /[\b]/
\b \b
*** Failers \= Expect no match
a a
/[\b]/locale=fr_FR /[\b]/locale=fr_FR
\b \b
*** Failers \= Expect no match
a a
/^\w+/ /^\w+/
*** Failers \= Expect no match
École École
/^\w+/locale=fr_FR /^\w+/locale=fr_FR
@ -46,12 +46,12 @@
École École
/(.+)\b(.+)/locale=fr_FR /(.+)\b(.+)/locale=fr_FR
*** Failers \= Expect no match
École École
/École/i /École/i
École École
*** Failers \= Expect no match
école école
/École/i,locale=fr_FR /École/i,locale=fr_FR
@ -72,7 +72,7 @@
/^[\xc8-\xc9]/ /^[\xc8-\xc9]/
École École
*** Failers \= Expect no match
école école
/\W+/ /\W+/

490
testdata/testinput4 vendored

File diff suppressed because it is too large Load Diff

124
testdata/testinput5 vendored
View File

@ -11,11 +11,11 @@
# test 4. # test 4.
/^[\p{Arabic}]/utf /^[\p{Arabic}]/utf
** Failers \= Expect no match
\x{061c} \x{061c}
/^[[:graph:]]+$/utf,ucp /^[[:graph:]]+$/utf,ucp
** Failers \= Expect no match
\x{61c} \x{61c}
\x{2066} \x{2066}
\x{2067} \x{2067}
@ -23,7 +23,7 @@
\x{2069} \x{2069}
/^[[:print:]]+$/utf,ucp /^[[:print:]]+$/utf,ucp
** Failers \= Expect no match
\x{61c} \x{61c}
\x{2066} \x{2066}
\x{2067} \x{2067}
@ -54,6 +54,7 @@
A\x{85}\x{2005}Z A\x{85}\x{2005}Z
/^[[:graph:]]+$/utf,ucp /^[[:graph:]]+$/utf,ucp
\= Expect no match
\x{180e} \x{180e}
/^[[:print:]]+$/utf,ucp /^[[:print:]]+$/utf,ucp
@ -63,6 +64,7 @@
\x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}\x{180e} \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}\x{180e}
/^[[:^print:]]+$/utf,ucp /^[[:^print:]]+$/utf,ucp
\= Expect no match
\x{180e} \x{180e}
# End of U+180E tests. # End of U+180E tests.
@ -114,7 +116,7 @@
/^[ab]/IB,utf /^[ab]/IB,utf
bar bar
*** Failers \= Expect no match
c c
\x{ff} \x{ff}
\x{100} \x{100}
@ -123,7 +125,7 @@
c c
\x{ff} \x{ff}
\x{100} \x{100}
*** Failers \= Expect no match
aaa aaa
/\x{100}*(\d+|"(?1)")/utf /\x{100}*(\d+|"(?1)")/utf
@ -133,7 +135,7 @@
"\x{100}1234" "\x{100}1234"
\x{100}\x{100}12ab \x{100}\x{100}12ab
\x{100}\x{100}"12" \x{100}\x{100}"12"
*** Failers \= Expect no match
\x{100}\x{100}abcd \x{100}\x{100}abcd
/\x{100}*/IB,utf /\x{100}*/IB,utf
@ -147,7 +149,7 @@
/[Ā-Ą]/utf /[Ā-Ą]/utf
\x{100} \x{100}
\x{104} \x{104}
*** Failers \= Expect no match
\x{105} \x{105}
\x{ff} \x{ff}
@ -217,7 +219,7 @@
a\x{85}b a\x{85}b
a\x{2028}b a\x{2028}b
a\x{2029}b a\x{2029}b
** Failers \= Expect no match
a\n\rb a\n\rb
/^a\R*b/bsr=unicode,utf /^a\R*b/bsr=unicode,utf
@ -240,7 +242,7 @@
a\x{85}b a\x{85}b
a\n\rb a\n\rb
a\n\r\x{85}\x0cb a\n\r\x{85}\x0cb
** Failers \= Expect no match
ab ab
/^a\R{1,3}b/bsr=unicode,utf /^a\R{1,3}b/bsr=unicode,utf
@ -251,34 +253,34 @@
a\r\n\r\n\r\nb a\r\n\r\n\r\nb
a\n\r\n\rb a\n\r\n\rb
a\n\n\r\nb a\n\n\r\nb
** Failers \= Expect no match
a\n\n\n\rb a\n\n\n\rb
a\r a\r
/\H\h\V\v/utf /\H\h\V\v/utf
X X\x0a X X\x0a
X\x09X\x0b X\x09X\x0b
** Failers \= Expect no match
\x{a0} X\x0a \x{a0} X\x0a
/\H*\h+\V?\v{3,4}/utf /\H*\h+\V?\v{3,4}/utf
\x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
\x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
\x09\x20\x{a0}\x0a\x0b\x0c \x09\x20\x{a0}\x0a\x0b\x0c
** Failers \= Expect no match
\x09\x20\x{a0}\x0a\x0b \x09\x20\x{a0}\x0a\x0b
/\H\h\V\v/utf /\H\h\V\v/utf
\x{3001}\x{3000}\x{2030}\x{2028} \x{3001}\x{3000}\x{2030}\x{2028}
X\x{180e}X\x{85} X\x{180e}X\x{85}
** Failers \= Expect no match
\x{2009} X\x0a \x{2009} X\x0a
/\H*\h+\V?\v{3,4}/utf /\H*\h+\V?\v{3,4}/utf
\x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
\x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
\x09\x20\x{202f}\x0a\x0b\x0c \x09\x20\x{202f}\x0a\x0b\x0c
** Failers \= Expect no match
\x09\x{200a}\x{a0}\x{2028}\x0b \x09\x{200a}\x{a0}\x{2028}\x0b
/[\h]/B,utf /[\h]/B,utf
@ -300,7 +302,7 @@
a\rb a\rb
a\nb a\nb
a\r\nb a\r\nb
** Failers \= Expect no match
a\x{85}b a\x{85}b
a\x0bb a\x0bb
@ -315,7 +317,7 @@
a\rb a\rb
a\nb a\nb
a\r\nb a\r\nb
** Failers \= Expect no match
a\x{85}b a\x{85}b
a\x0bb a\x0bb
@ -325,11 +327,10 @@
a\r\nb a\r\nb
a\x{85}b a\x{85}b
a\x0bb a\x0bb
** Failers
/.*a.*=.b.*/utf,newline=any /.*a.*=.b.*/utf,newline=any
QQQ\x{2029}ABCaXYZ=!bPQR QQQ\x{2029}ABCaXYZ=!bPQR
** Failers \= Expect no match
a\x{2029}b a\x{2029}b
\x61\xe2\x80\xa9\x62 \x61\xe2\x80\xa9\x62
@ -338,13 +339,13 @@
/a[^]b/utf,alt_bsux,allow_empty_class,match_unset_backref /a[^]b/utf,alt_bsux,allow_empty_class,match_unset_backref
a\x{1234}b a\x{1234}b
a\nb a\nb
** Failers \= Expect no match
ab ab
/a[^]+b/utf,alt_bsux,allow_empty_class,match_unset_backref /a[^]+b/utf,alt_bsux,allow_empty_class,match_unset_backref
aXb aXb
a\nX\nX\x{1234}b a\nX\nX\x{1234}b
** Failers \= Expect no match
ab ab
/(\x{de})\1/ /(\x{de})\1/
@ -396,6 +397,7 @@
X\x{123}\x{123}\x{123}\x{123}\=ps X\x{123}\x{123}\x{123}\x{123}\=ps
/X\x{123}{2,4}b/utf /X\x{123}{2,4}b/utf
\= Expect no match
Xx\=ps Xx\=ps
X\x{123}x\=ps X\x{123}x\=ps
X\x{123}\x{123}x\=ps X\x{123}\x{123}x\=ps
@ -403,6 +405,7 @@
X\x{123}\x{123}\x{123}\x{123}x\=ps X\x{123}\x{123}\x{123}\x{123}x\=ps
/X\x{123}{2,4}?b/utf /X\x{123}{2,4}?b/utf
\= Expect no match
Xx\=ps Xx\=ps
X\x{123}x\=ps X\x{123}x\=ps
X\x{123}\x{123}x\=ps X\x{123}\x{123}x\=ps
@ -410,6 +413,7 @@
X\x{123}\x{123}\x{123}\x{123}x\=ps X\x{123}\x{123}\x{123}\x{123}x\=ps
/X\x{123}{2,4}+b/utf /X\x{123}{2,4}+b/utf
\= Expect no match
Xx\=ps Xx\=ps
X\x{123}x\=ps X\x{123}x\=ps
X\x{123}\x{123}x\=ps X\x{123}\x{123}x\=ps
@ -804,6 +808,7 @@
/(?<=\x{1234}\x{1234})\bxy/I,utf /(?<=\x{1234}\x{1234})\bxy/I,utf
/(?<!^)ETA/utf /(?<!^)ETA/utf
\= Expect no match
ETA ETA
/\u0100/B,utf,alt_bsux,allow_empty_class,match_unset_backref /\u0100/B,utf,alt_bsux,allow_empty_class,match_unset_backref
@ -834,7 +839,7 @@
1234 1234
12-34 12-34
12+\x{661}-34 12+\x{661}-34
** Failers \= Expect no match
abcd abcd
/(?:[\PPa*]*){8,}/ /(?:[\PPa*]*){8,}/
@ -901,7 +906,7 @@
/^\p{Cs}/utf /^\p{Cs}/utf
\x{dfff}\=no_utf_check \x{dfff}\=no_utf_check
** Failers \= Expect no match
\x{09f} \x{09f}
/^\p{Mn}/utf /^\p{Mn}/utf
@ -918,7 +923,7 @@
/^\p{Sc}+/utf /^\p{Sc}+/utf
$\x{a2}\x{a3}\x{a4}\x{a5}\x{a6} $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
\x{9f2} \x{9f2}
** Failers \= Expect no match
X X
\x{2c2} \x{2c2}
@ -928,7 +933,7 @@
\x{1680} \x{1680}
\x{2000} \x{2000}
\x{2001} \x{2001}
** Failers \= Expect no match
\x{2028} \x{2028}
\x{200d} \x{200d}
@ -937,31 +942,31 @@
/\p{^Lu}/i,utf /\p{^Lu}/i,utf
1234 1234
** Failers \= Expect no match
ABC ABC
/\P{Lu}/i,utf /\P{Lu}/i,utf
1234 1234
** Failers \= Expect no match
ABC ABC
/\p{Ll}/i,utf /\p{Ll}/i,utf
a a
Az Az
** Failers \= Expect no match
ABC ABC
/\p{Lu}/i,utf /\p{Lu}/i,utf
A A
a\x{10a0}B a\x{10a0}B
** Failers \= Expect no match
a a
\x{1d00} \x{1d00}
/\p{Lu}/i,utf /\p{Lu}/i,utf
A A
aZ aZ
** Failers \= Expect no match
abc abc
/[\x{c0}\x{391}]/i,utf /[\x{c0}\x{391}]/i,utf
@ -1018,12 +1023,12 @@
\x{6ca} \x{6ca}
\x{a6c} \x{a6c}
\x{10a7} \x{10a7}
** Failers \= Expect no match
_ABC _ABC
/^\p{Xan}+/utf /^\p{Xan}+/utf
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ ABCD1234\x{6ca}\x{a6c}\x{10a7}_
** Failers \= Expect no match
_ABC _ABC
/^\p{Xan}+?/utf /^\p{Xan}+?/utf
@ -1044,18 +1049,18 @@
\x{6ca} \x{6ca}
\x{a6c} \x{a6c}
\x{10a7} \x{10a7}
** Failers \= Expect no match
_ABC _ABC
/^[\p{Xan}]+/utf /^[\p{Xan}]+/utf
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ ABCD1234\x{6ca}\x{a6c}\x{10a7}_
** Failers \= Expect no match
_ABC _ABC
/^>\p{Xsp}/utf /^>\p{Xsp}/utf
>\x{1680}\x{2028}\x{0b} >\x{1680}\x{2028}\x{0b}
>\x{a0} >\x{a0}
** Failers \= Expect no match
\x{0b} \x{0b}
/^>\p{Xsp}+/utf /^>\p{Xsp}+/utf
@ -1082,7 +1087,7 @@
/^>\p{Xps}/utf /^>\p{Xps}/utf
>\x{1680}\x{2028}\x{0b} >\x{1680}\x{2028}\x{0b}
>\x{a0} >\x{a0}
** Failers \= Expect no match
\x{0b} \x{0b}
/^>\p{Xps}+/utf /^>\p{Xps}+/utf
@ -1113,7 +1118,7 @@
\x{a6c} \x{a6c}
\x{10a7} \x{10a7}
_ABC _ABC
** Failers \= Expect no match
[] []
/^\p{Xwd}+/utf /^\p{Xwd}+/utf
@ -1138,7 +1143,7 @@
\x{a6c} \x{a6c}
\x{10a7} \x{10a7}
_ABC _ABC
** Failers \= Expect no match
[] []
/^[\p{Xwd}]+/utf /^[\p{Xwd}]+/utf
@ -1232,7 +1237,7 @@
/\b...\B/utf /\b...\B/utf
abc_ abc_
** Failers \= Expect no match
\x{37e}abc\x{376} \x{37e}abc\x{376}
\x{37e}\x{376}\x{371}\x{393}\x{394} \x{37e}\x{376}\x{371}\x{393}\x{394}
!\x{c0}++\x{c1}\x{c2} !\x{c0}++\x{c1}\x{c2}
@ -1288,9 +1293,11 @@
# These behaved oddly in Perl, so they are kept in this test # These behaved oddly in Perl, so they are kept in this test
/(\x{23a}\x{23a}\x{23a})?\1/i,utf /(\x{23a}\x{23a}\x{23a})?\1/i,utf
\= Expect no match
\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
/(ȺȺȺ)?\1/i,utf /(ȺȺȺ)?\1/i,utf
\= Expect no match
ȺȺȺⱥⱥ ȺȺȺⱥⱥ
/(\x{23a}\x{23a}\x{23a})?\1/i,utf /(\x{23a}\x{23a}\x{23a})?\1/i,utf
@ -1300,9 +1307,11 @@
ȺȺȺⱥⱥⱥ ȺȺȺⱥⱥⱥ
/(\x{23a}\x{23a}\x{23a})\1/i,utf /(\x{23a}\x{23a}\x{23a})\1/i,utf
\= Expect no match
\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
/(ȺȺȺ)\1/i,utf /(ȺȺȺ)\1/i,utf
\= Expect no match
ȺȺȺⱥⱥ ȺȺȺⱥⱥ
/(\x{23a}\x{23a}\x{23a})\1/i,utf /(\x{23a}\x{23a}\x{23a})\1/i,utf
@ -1328,19 +1337,19 @@
/^[\p{Batak}]/utf /^[\p{Batak}]/utf
\x{1bc0} \x{1bc0}
\x{1bff} \x{1bff}
** Failers \= Expect no match
\x{1bf4} \x{1bf4}
/^[\p{Brahmi}]/utf /^[\p{Brahmi}]/utf
\x{11000} \x{11000}
\x{1106f} \x{1106f}
** Failers \= Expect no match
\x{1104e} \x{1104e}
/^[\p{Mandaic}]/utf /^[\p{Mandaic}]/utf
\x{840} \x{840}
\x{85e} \x{85e}
** Failers \= Expect no match
\x{85c} \x{85c}
\x{85d} \x{85d}
@ -1355,7 +1364,7 @@
/^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames /^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
aX41z aX41z
*** Failers \= Expect no match
aAz aAz
/(?<=ab\Cde)X/utf /(?<=ab\Cde)X/utf
@ -1453,7 +1462,7 @@
\x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
/\x{3a3}++./i,utf,aftertext /\x{3a3}++./i,utf,aftertext
** Failers \= Expect no match
\x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
/\x{3a3}*\x{3c2}/Bi,utf /\x{3a3}*\x{3c2}/Bi,utf
@ -1463,19 +1472,24 @@
/[^a]*\x{3c2}/Bi,utf /[^a]*\x{3c2}/Bi,utf
/ist/Bi,utf /ist/Bi,utf
\= Expect no match
ikt ikt
/is+t/i,utf /is+t/i,utf
iSs\x{17f}t iSs\x{17f}t
\= Expect no match
ikt ikt
/is+?t/i,utf /is+?t/i,utf
\= Expect no match
ikt ikt
/is?t/i,utf /is?t/i,utf
\= Expect no match
ikt ikt
/is{2}t/i,utf /is{2}t/i,utf
\= Expect no match
iskt iskt
# This property is a PCRE special # This property is a PCRE special
@ -1485,52 +1499,52 @@
@abc @abc
`abc `abc
\x{1234}abc \x{1234}abc
** Failers \= Expect no match
abc abc
/^\p{Xuc}+/utf /^\p{Xuc}+/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
** Failers \= Expect no match
\x{9f} \x{9f}
/^\p{Xuc}+?/utf /^\p{Xuc}+?/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
** Failers \= Expect no match
\x{9f} \x{9f}
/^\p{Xuc}+?\*/utf /^\p{Xuc}+?\*/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
** Failers \= Expect no match
\x{9f} \x{9f}
/^\p{Xuc}++/utf /^\p{Xuc}++/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
** Failers \= Expect no match
\x{9f} \x{9f}
/^\p{Xuc}{3,5}/utf /^\p{Xuc}{3,5}/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
** Failers \= Expect no match
\x{9f} \x{9f}
/^\p{Xuc}{3,5}?/utf /^\p{Xuc}{3,5}?/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
** Failers \= Expect no match
\x{9f} \x{9f}
/^[\p{Xuc}]/utf /^[\p{Xuc}]/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
** Failers \= Expect no match
\x{9f} \x{9f}
/^[\p{Xuc}]+/utf /^[\p{Xuc}]+/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
** Failers \= Expect no match
\x{9f} \x{9f}
/^\P{Xuc}/utf /^\P{Xuc}/utf
abc abc
** Failers \= Expect no match
$abc $abc
@abc @abc
`abc `abc
@ -1538,7 +1552,7 @@
/^[\P{Xuc}]/utf /^[\P{Xuc}]/utf
abc abc
** Failers \= Expect no match
$abc $abc
@abc @abc
`abc `abc
@ -1654,9 +1668,11 @@
/\C\X*TӅ; /\C\X*TӅ;
{0,6}\v+ F {0,6}\v+ F
/utf /utf
\= Expect no match
Ӆ\x0a Ӆ\x0a
/\C(\W?ſ)'?{{/utf /\C(\W?ſ)'?{{/utf
\= Expect no match
\\C(\\W?ſ)'?{{ \\C(\\W?ſ)'?{{
/[\pS#moq]/ /[\pS#moq]/

591
testdata/testinput6 vendored

File diff suppressed because it is too large Load Diff

407
testdata/testinput7 vendored

File diff suppressed because it is too large Load Diff

2
testdata/testinput9 vendored
View File

@ -7,7 +7,7 @@
/a\Cb/ /a\Cb/
aXb aXb
a\nb a\nb
** Failers (too big char) \= Expect no match and error message (too big char)
A\x{123}B A\x{123}B
A\o{443}B A\o{443}B

1063
testdata/testoutput1 vendored

File diff suppressed because it is too large Load Diff

96
testdata/testoutput10 vendored
View File

@ -58,11 +58,12 @@
/a\C\Cb/utf /a\C\Cb/utf
a\x{100}b a\x{100}b
0: a\x{100}b 0: a\x{100}b
** Failers \= Expect no match
No match
a\x{12257}b a\x{12257}b
No match No match
# The next 3 patterns have UTF-8 errors
/[Ã]/utf /[Ã]/utf
Failed: error -8 at offset 0: UTF-8 error: byte 2 top bits not 0x80 Failed: error -8 at offset 0: UTF-8 error: byte 2 top bits not 0x80
@ -72,7 +73,10 @@ Failed: error -3 at offset 0: UTF-8 error: 1 byte missing at end
/ÃÃÃxxx/utf /ÃÃÃxxx/utf
Failed: error -8 at offset 0: UTF-8 error: byte 2 top bits not 0x80 Failed: error -8 at offset 0: UTF-8 error: byte 2 top bits not 0x80
# Now test subjects
/badutf/utf /badutf/utf
\= Expect UTF-8 errors
X\xdf X\xdf
Failed: error -3: UTF-8 error: 1 byte missing at end at offset 1 Failed: error -3: UTF-8 error: 1 byte missing at end at offset 1
XX\xef XX\xef
@ -153,6 +157,7 @@ Failed: error -23: UTF-8 error: illegal byte (0xfe or 0xff) at offset 0
Failed: error -23: UTF-8 error: illegal byte (0xfe or 0xff) at offset 0 Failed: error -23: UTF-8 error: illegal byte (0xfe or 0xff) at offset 0
/badutf/utf /badutf/utf
\= Expect UTF-8 errors
XX\xfb\x80\x80\x80\x80 XX\xfb\x80\x80\x80\x80
Failed: error -13: UTF-8 error: 5-byte character is not allowed (RFC 3629) at offset 2 Failed: error -13: UTF-8 error: 5-byte character is not allowed (RFC 3629) at offset 2
XX\xfd\x80\x80\x80\x80\x80 XX\xfd\x80\x80\x80\x80\x80
@ -161,6 +166,7 @@ Failed: error -14: UTF-8 error: 6-byte character is not allowed (RFC 3629) at of
Failed: error -15: UTF-8 error: code points greater than 0x10ffff are not defined at offset 2 Failed: error -15: UTF-8 error: code points greater than 0x10ffff are not defined at offset 2
/shortutf/utf /shortutf/utf
\= Expect UTF-8 errors
XX\xdf\=ph XX\xdf\=ph
Failed: error -3: UTF-8 error: 1 byte missing at end at offset 2 Failed: error -3: UTF-8 error: 1 byte missing at end at offset 2
XX\xef\=ph XX\xef\=ph
@ -193,6 +199,7 @@ Failed: error -4: UTF-8 error: 2 bytes missing at end at offset 0
Failed: error -3: UTF-8 error: 1 byte missing at end at offset 0 Failed: error -3: UTF-8 error: 1 byte missing at end at offset 0
/anything/utf /anything/utf
\= Expect UTF-8 errors
X\xc0\x80 X\xc0\x80
Failed: error -17: UTF-8 error: overlong 2-byte sequence at offset 1 Failed: error -17: UTF-8 error: overlong 2-byte sequence at offset 1
XX\xc1\x8f XX\xc1\x8f
@ -209,6 +216,15 @@ Failed: error -21: UTF-8 error: overlong 6-byte sequence at offset 0
Failed: error -23: UTF-8 error: illegal byte (0xfe or 0xff) at offset 0 Failed: error -23: UTF-8 error: illegal byte (0xfe or 0xff) at offset 0
\xff\x80\x80\x80\x80\x80 \xff\x80\x80\x80\x80\x80
Failed: error -23: UTF-8 error: illegal byte (0xfe or 0xff) at offset 0 Failed: error -23: UTF-8 error: illegal byte (0xfe or 0xff) at offset 0
\xf8\x88\x80\x80\x80
Failed: error -13: UTF-8 error: 5-byte character is not allowed (RFC 3629) at offset 0
\xf9\x87\x80\x80\x80
Failed: error -13: UTF-8 error: 5-byte character is not allowed (RFC 3629) at offset 0
\xfc\x84\x80\x80\x80\x80
Failed: error -14: UTF-8 error: 6-byte character is not allowed (RFC 3629) at offset 0
\xfd\x83\x80\x80\x80\x80
Failed: error -14: UTF-8 error: 6-byte character is not allowed (RFC 3629) at offset 0
\= Expect no match
\xc3\x8f \xc3\x8f
No match No match
\xe0\xaf\x80 \xe0\xaf\x80
@ -219,14 +235,6 @@ No match
No match No match
\xf1\x8f\x80\x80 \xf1\x8f\x80\x80
No match No match
\xf8\x88\x80\x80\x80
Failed: error -13: UTF-8 error: 5-byte character is not allowed (RFC 3629) at offset 0
\xf9\x87\x80\x80\x80
Failed: error -13: UTF-8 error: 5-byte character is not allowed (RFC 3629) at offset 0
\xfc\x84\x80\x80\x80\x80
Failed: error -14: UTF-8 error: 6-byte character is not allowed (RFC 3629) at offset 0
\xfd\x83\x80\x80\x80\x80
Failed: error -14: UTF-8 error: 6-byte character is not allowed (RFC 3629) at offset 0
\xf8\x88\x80\x80\x80\=no_utf_check \xf8\x88\x80\x80\x80\=no_utf_check
No match No match
\xf9\x87\x80\x80\x80\=no_utf_check \xf9\x87\x80\x80\x80\=no_utf_check
@ -239,26 +247,31 @@ No match
# Similar tests with offsets # Similar tests with offsets
/badutf/utf /badutf/utf
\= Expect UTF-8 errors
X\xdfabcd X\xdfabcd
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
X\xdfabcd\=offset=1 X\xdfabcd\=offset=1
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
\= Expect no match
X\xdfabcd\=offset=2 X\xdfabcd\=offset=2
No match No match
/(?<=x)badutf/utf /(?<=x)badutf/utf
\= Expect UTF-8 errors
X\xdfabcd X\xdfabcd
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
X\xdfabcd\=offset=1 X\xdfabcd\=offset=1
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
X\xdfabcd\=offset=2 X\xdfabcd\=offset=2
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
X\xdfabcd\=offset=3
No match
X\xdfabcd\xdf\=offset=3 X\xdfabcd\xdf\=offset=3
Failed: error -3: UTF-8 error: 1 byte missing at end at offset 6 Failed: error -3: UTF-8 error: 1 byte missing at end at offset 6
\= Expect no match
X\xdfabcd\=offset=3
No match
/(?<=xx)badutf/utf /(?<=xx)badutf/utf
\= Expect UTF-8 errors
X\xdfabcd X\xdfabcd
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
X\xdfabcd\=offset=1 X\xdfabcd\=offset=1
@ -269,6 +282,7 @@ Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
/(?<=xxxx)badutf/utf /(?<=xxxx)badutf/utf
\= Expect UTF-8 errors
X\xdfabcd X\xdfabcd
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
X\xdfabcd\=offset=1 X\xdfabcd\=offset=1
@ -277,12 +291,13 @@ Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
X\xdfabcd\=offset=3 X\xdfabcd\=offset=3
Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1 Failed: error -8: UTF-8 error: byte 2 top bits not 0x80 at offset 1
X\xdfabcd\=offset=6
No match
X\xdfabc\xdf\=offset=6 X\xdfabc\xdf\=offset=6
Failed: error -3: UTF-8 error: 1 byte missing at end at offset 5 Failed: error -3: UTF-8 error: 1 byte missing at end at offset 5
X\xdfabc\xdf\=offset=7 X\xdfabc\xdf\=offset=7
Failed: error -33: bad offset value Failed: error -33: bad offset value
\= Expect no match
X\xdfabcd\=offset=6
No match
/\x{100}/IB,utf /\x{100}/IB,utf
------------------------------------------------------------------ ------------------------------------------------------------------
@ -514,8 +529,7 @@ Subject length lower bound = 1
# correctly, but that messes up comparisons). # correctly, but that messes up comparisons).
/a\Cb/utf /a\Cb/utf
*** Failers \= Expect no match
No match
a\x{100}b a\x{100}b
No match No match
@ -547,8 +561,7 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{1000} \x{1000}
0: \x{1000} 0: \x{1000}
*** Failers \= Expect no match
0: *
\x{c0} \x{c0}
No match No match
\x{f0} \x{f0}
@ -707,8 +720,6 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{100}Z \x{100}Z
0: \x{100} 0: \x{100}
*** Failers
No match
/[\xff]/IB,utf /[\xff]/IB,utf
------------------------------------------------------------------ ------------------------------------------------------------------
@ -798,33 +809,35 @@ Failed: error 106 at offset 15: missing terminating ] for character class
# This tests the stricter UTF-8 check according to RFC 3629. # This tests the stricter UTF-8 check according to RFC 3629.
/X/utf /X/utf
\= Expect UTF-8 errors
\x{d800} \x{d800}
Failed: error -16: UTF-8 error: code points 0xd800-0xdfff are not defined at offset 0 Failed: error -16: UTF-8 error: code points 0xd800-0xdfff are not defined at offset 0
\x{d800}\=no_utf_check
No match
\x{da00} \x{da00}
Failed: error -16: UTF-8 error: code points 0xd800-0xdfff are not defined at offset 0 Failed: error -16: UTF-8 error: code points 0xd800-0xdfff are not defined at offset 0
\x{da00}\=no_utf_check
No match
\x{dfff} \x{dfff}
Failed: error -16: UTF-8 error: code points 0xd800-0xdfff are not defined at offset 0 Failed: error -16: UTF-8 error: code points 0xd800-0xdfff are not defined at offset 0
\x{dfff}\=no_utf_check
No match
\x{110000} \x{110000}
Failed: error -15: UTF-8 error: code points greater than 0x10ffff are not defined at offset 0 Failed: error -15: UTF-8 error: code points greater than 0x10ffff are not defined at offset 0
\x{110000}\=no_utf_check
No match
\x{2000000} \x{2000000}
Failed: error -13: UTF-8 error: 5-byte character is not allowed (RFC 3629) at offset 0 Failed: error -13: UTF-8 error: 5-byte character is not allowed (RFC 3629) at offset 0
\x{2000000}\=no_utf_check
No match
\x{7fffffff} \x{7fffffff}
Failed: error -14: UTF-8 error: 6-byte character is not allowed (RFC 3629) at offset 0 Failed: error -14: UTF-8 error: 6-byte character is not allowed (RFC 3629) at offset 0
\= Expect no match
\x{d800}\=no_utf_check
No match
\x{da00}\=no_utf_check
No match
\x{dfff}\=no_utf_check
No match
\x{110000}\=no_utf_check
No match
\x{2000000}\=no_utf_check
No match
\x{7fffffff}\=no_utf_check \x{7fffffff}\=no_utf_check
No match No match
/(*UTF8)\x{1234}/ /(*UTF8)\x{1234}/
abcd\x{1234}pqr abcd\x{1234}pqr
0: \x{1234} 0: \x{1234}
/(*CRLF)(*UTF)(*BSR_UNICODE)a\Rb/I /(*CRLF)(*UTF)(*BSR_UNICODE)a\Rb/I
@ -935,16 +948,19 @@ Subject length lower bound = 3
/a+/utf /a+/utf
a\x{123}aa\=offset=1 a\x{123}aa\=offset=1
0: aa 0: aa
a\x{123}aa\=offset=2
Error -36 (bad UTF-8 offset)
a\x{123}aa\=offset=3 a\x{123}aa\=offset=3
0: aa 0: aa
a\x{123}aa\=offset=4 a\x{123}aa\=offset=4
0: a 0: a
a\x{123}aa\=offset=5 \= Expect bad offset value
No match
a\x{123}aa\=offset=6 a\x{123}aa\=offset=6
Failed: error -33: bad offset value Failed: error -33: bad offset value
\= Expect bad UTF-8 offset
a\x{123}aa\=offset=2
Error -36 (bad UTF-8 offset)
\= Expect no match
a\x{123}aa\=offset=5
No match
/\x{1234}+/Ii,utf /\x{1234}+/Ii,utf
Capturing subpattern count = 0 Capturing subpattern count = 0
@ -1329,8 +1345,6 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{100}Z \x{100}Z
0: \x{100} 0: \x{100}
*** Failers
No match
/[z-\x{100}]/IB,utf /[z-\x{100}]/IB,utf
------------------------------------------------------------------ ------------------------------------------------------------------
@ -1515,8 +1529,7 @@ Subject length lower bound = 1
0: \x{105} 0: \x{105}
\x{109} \x{109}
0: \x{109} 0: \x{109}
** Failers \= Expect no match
No match
\x{100} \x{100}
No match No match
\x{10a} \x{10a}
@ -1555,8 +1568,7 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{101} \x{101}
0: \x{101} 0: \x{101}
** Failers \= Expect no match
No match
\x{102} \x{102}
No match No match
Y Y
@ -1595,7 +1607,7 @@ Last code unit = 'B' (caseless)
Subject length lower bound = 2 Subject length lower bound = 2
/abc/utf,replace=Ã /abc/utf,replace=Ã
abc abc
Failed: error -3: UTF-8 error: 1 byte missing at end Failed: error -3: UTF-8 error: 1 byte missing at end
# End of testinput10 # End of testinput10

View File

@ -56,8 +56,7 @@
0: X\x{11234}Y 0: X\x{11234}Y
X\x{11234}\x{512}YZ X\x{11234}\x{512}YZ
0: X\x{11234}\x{512} 0: X\x{11234}\x{512}
*** Failers \= Expect no match
No match
X\x{11234} X\x{11234}
No match No match
@ -70,9 +69,8 @@ No match
/a\C\Cb/utf /a\C\Cb/utf
a\x{12257}b a\x{12257}b
0: a\x{12257}b 0: a\x{12257}b
\= Expect no match
a\x{12257}\x{11234}b a\x{12257}\x{11234}b
No match
** Failers
No match No match
a\x{100}b a\x{100}b
No match No match
@ -310,9 +308,8 @@ First code unit = \x{d844}
Last code unit = \x{deab} Last code unit = \x{deab}
Subject length lower bound = 1 Subject length lower bound = 1
# This one is here not because it's different to Perl, but because the way # These two \C tests, copied from the UTF-8 input file, do not have any
# the captured single-byte is displayed. (In Perl it becomes a character, and you # problems in 16 or 32 bits.
# can't tell the difference.)
/X(\C)(.*)/utf /X(\C)(.*)/utf
X\x{1234} X\x{1234}
@ -324,12 +321,7 @@ Subject length lower bound = 1
1: \x{0a} 1: \x{0a}
2: abc 2: abc
# This one is here because Perl gives out a grumbly error message (quite
# correctly, but that messes up comparisons).
/a\Cb/utf /a\Cb/utf
*** Failers
No match
a\x{100}b a\x{100}b
0: a\x{100}b 0: a\x{100}b
@ -362,8 +354,7 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{1000} \x{1000}
0: \x{1000} 0: \x{1000}
*** Failers \= Expect no match
0: *
\x{c0} \x{c0}
No match No match
\x{f0} \x{f0}
@ -520,8 +511,6 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{100}Z \x{100}Z
0: \x{100} 0: \x{100}
*** Failers
No match
/[\xff]/IB,utf /[\xff]/IB,utf
------------------------------------------------------------------ ------------------------------------------------------------------
@ -607,32 +596,34 @@ Subject length lower bound = 2
Failed: error 106 at offset 13: missing terminating ] for character class Failed: error 106 at offset 13: missing terminating ] for character class
/X/utf /X/utf
XX\x{d800}
Failed: error -24: UTF-16 error: missing low surrogate at end at offset 2
XX\x{d800}\=offset=3
No match
XX\x{d800}\=no_utf_check XX\x{d800}\=no_utf_check
0: X 0: X
XX\x{da00}
Failed: error -24: UTF-16 error: missing low surrogate at end at offset 2
XX\x{da00}\=no_utf_check XX\x{da00}\=no_utf_check
0: X 0: X
XX\x{dc00}
Failed: error -26: UTF-16 error: isolated low surrogate at offset 2
XX\x{dc00}\=no_utf_check XX\x{dc00}\=no_utf_check
0: X 0: X
XX\x{de00}
Failed: error -26: UTF-16 error: isolated low surrogate at offset 2
XX\x{de00}\=no_utf_check XX\x{de00}\=no_utf_check
0: X 0: X
XX\x{dfff}
Failed: error -26: UTF-16 error: isolated low surrogate at offset 2
XX\x{dfff}\=no_utf_check XX\x{dfff}\=no_utf_check
0: X 0: X
\= Expect UTF error
XX\x{d800}
Failed: error -24: UTF-16 error: missing low surrogate at end at offset 2
XX\x{da00}
Failed: error -24: UTF-16 error: missing low surrogate at end at offset 2
XX\x{dc00}
Failed: error -26: UTF-16 error: isolated low surrogate at offset 2
XX\x{de00}
Failed: error -26: UTF-16 error: isolated low surrogate at offset 2
XX\x{dfff}
Failed: error -26: UTF-16 error: isolated low surrogate at offset 2
XX\x{110000} XX\x{110000}
** Failed: character \x{110000} is greater than 0x10ffff and so cannot be converted to UTF-16 ** Failed: character \x{110000} is greater than 0x10ffff and so cannot be converted to UTF-16
XX\x{d800}\x{1234} XX\x{d800}\x{1234}
Failed: error -25: UTF-16 error: invalid low surrogate at offset 3 Failed: error -25: UTF-16 error: invalid low surrogate at offset 3
\= Expect no match
XX\x{d800}\=offset=3
No match
/(?<=.)X/utf /(?<=.)X/utf
XX\x{d800}\=offset=3 XX\x{d800}\=offset=3
@ -794,8 +785,10 @@ Subject length lower bound = 3
0: aa 0: aa
a\x{123}aa\=offset=3 a\x{123}aa\=offset=3
0: a 0: a
\= Expect no match
a\x{123}aa\=offset=4 a\x{123}aa\=offset=4
No match No match
\= Expect bad offset error
a\x{123}aa\=offset=5 a\x{123}aa\=offset=5
Failed: error -33: bad offset value Failed: error -33: bad offset value
a\x{123}aa\=offset=6 a\x{123}aa\=offset=6
@ -860,16 +853,21 @@ Subject length lower bound = 1
# Check bad offset # Check bad offset
/a/utf /a/utf
\= Expect bad UTF-16 offset, or no match in 32-bit
\x{10000}\=offset=1 \x{10000}\=offset=1
Error -36 (bad UTF-16 offset) Error -36 (bad UTF-16 offset)
\x{10000}ab\=offset=1 \x{10000}ab\=offset=1
Error -36 (bad UTF-16 offset) Error -36 (bad UTF-16 offset)
\= Expect 16-bit match, 32-bit no match
\x{10000}ab\=offset=2 \x{10000}ab\=offset=2
0: a 0: a
\= Expect no match
\x{10000}ab\=offset=3 \x{10000}ab\=offset=3
No match No match
\= Expect no match in 16-bit, bad offset in 32-bit
\x{10000}ab\=offset=4 \x{10000}ab\=offset=4
No match No match
\= Expect bad offset
\x{10000}ab\=offset=5 \x{10000}ab\=offset=5
Failed: error -33: bad offset value Failed: error -33: bad offset value
@ -1180,8 +1178,6 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{100}Z \x{100}Z
0: \x{100} 0: \x{100}
*** Failers
No match
/[z-\x{100}]/IB,utf /[z-\x{100}]/IB,utf
------------------------------------------------------------------ ------------------------------------------------------------------
@ -1371,8 +1367,7 @@ Subject length lower bound = 1
0: \x{105} 0: \x{105}
\x{109} \x{109}
0: \x{109} 0: \x{109}
** Failers \= Expect no match
No match
\x{100} \x{100}
No match No match
\x{10a} \x{10a}
@ -1416,8 +1411,7 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{101} \x{101}
0: \x{101} 0: \x{101}
** Failers \= Expect no match
No match
\x{102} \x{102}
No match No match
Y Y

View File

@ -54,8 +54,7 @@ No match
0: X\x{11234}YZ 0: X\x{11234}YZ
X\x{11234}\x{512}YZ X\x{11234}\x{512}YZ
0: X\x{11234}\x{512}Y 0: X\x{11234}\x{512}Y
*** Failers \= Expect no match
No match
X\x{11234} X\x{11234}
No match No match
@ -68,10 +67,9 @@ No match
/a\C\Cb/utf /a\C\Cb/utf
a\x{12257}b a\x{12257}b
No match No match
\= Expect no match
a\x{12257}\x{11234}b a\x{12257}\x{11234}b
0: a\x{12257}\x{11234}b 0: a\x{12257}\x{11234}b
** Failers
No match
a\x{100}b a\x{100}b
No match No match
@ -303,9 +301,8 @@ Options: utf
First code unit = \x{212ab} First code unit = \x{212ab}
Subject length lower bound = 1 Subject length lower bound = 1
# This one is here not because it's different to Perl, but because the way # These two \C tests, copied from the UTF-8 input file, do not have any
# the captured single-byte is displayed. (In Perl it becomes a character, and you # problems in 16 or 32 bits.
# can't tell the difference.)
/X(\C)(.*)/utf /X(\C)(.*)/utf
X\x{1234} X\x{1234}
@ -317,12 +314,7 @@ Subject length lower bound = 1
1: \x{0a} 1: \x{0a}
2: abc 2: abc
# This one is here because Perl gives out a grumbly error message (quite
# correctly, but that messes up comparisons).
/a\Cb/utf /a\Cb/utf
*** Failers
No match
a\x{100}b a\x{100}b
0: a\x{100}b 0: a\x{100}b
@ -355,8 +347,7 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{1000} \x{1000}
0: \x{1000} 0: \x{1000}
*** Failers \= Expect no match
0: *
\x{c0} \x{c0}
No match No match
\x{f0} \x{f0}
@ -513,8 +504,6 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{100}Z \x{100}Z
0: \x{100} 0: \x{100}
*** Failers
No match
/[\xff]/IB,utf /[\xff]/IB,utf
------------------------------------------------------------------ ------------------------------------------------------------------
@ -600,32 +589,34 @@ Subject length lower bound = 2
Failed: error 106 at offset 13: missing terminating ] for character class Failed: error 106 at offset 13: missing terminating ] for character class
/X/utf /X/utf
XX\x{d800}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{d800}\=offset=3
No match
XX\x{d800}\=no_utf_check XX\x{d800}\=no_utf_check
0: X 0: X
XX\x{da00}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{da00}\=no_utf_check XX\x{da00}\=no_utf_check
0: X 0: X
XX\x{dc00}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{dc00}\=no_utf_check XX\x{dc00}\=no_utf_check
0: X 0: X
XX\x{de00}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{de00}\=no_utf_check XX\x{de00}\=no_utf_check
0: X 0: X
XX\x{dfff}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{dfff}\=no_utf_check XX\x{dfff}\=no_utf_check
0: X 0: X
\= Expect UTF error
XX\x{d800}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{da00}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{dc00}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{de00}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{dfff}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
XX\x{110000} XX\x{110000}
Failed: error -28: UTF-32 error: code points greater than 0x10ffff are not defined at offset 2 Failed: error -28: UTF-32 error: code points greater than 0x10ffff are not defined at offset 2
XX\x{d800}\x{1234} XX\x{d800}\x{1234}
Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2 Failed: error -27: UTF-32 error: code points 0xd800-0xdfff are not defined at offset 2
\= Expect no match
XX\x{d800}\=offset=3
No match
/(?<=.)X/utf /(?<=.)X/utf
XX\x{d800}\=offset=3 XX\x{d800}\=offset=3
@ -786,8 +777,10 @@ Subject length lower bound = 3
0: aa 0: aa
a\x{123}aa\=offset=3 a\x{123}aa\=offset=3
0: a 0: a
\= Expect no match
a\x{123}aa\=offset=4 a\x{123}aa\=offset=4
No match No match
\= Expect bad offset error
a\x{123}aa\=offset=5 a\x{123}aa\=offset=5
Failed: error -33: bad offset value Failed: error -33: bad offset value
a\x{123}aa\=offset=6 a\x{123}aa\=offset=6
@ -852,16 +845,21 @@ Subject length lower bound = 1
# Check bad offset # Check bad offset
/a/utf /a/utf
\= Expect bad UTF-16 offset, or no match in 32-bit
\x{10000}\=offset=1 \x{10000}\=offset=1
No match No match
\x{10000}ab\=offset=1 \x{10000}ab\=offset=1
0: a 0: a
\= Expect 16-bit match, 32-bit no match
\x{10000}ab\=offset=2 \x{10000}ab\=offset=2
No match No match
\= Expect no match
\x{10000}ab\=offset=3 \x{10000}ab\=offset=3
No match No match
\= Expect no match in 16-bit, bad offset in 32-bit
\x{10000}ab\=offset=4 \x{10000}ab\=offset=4
Failed: error -33: bad offset value Failed: error -33: bad offset value
\= Expect bad offset
\x{10000}ab\=offset=5 \x{10000}ab\=offset=5
Failed: error -33: bad offset value Failed: error -33: bad offset value
@ -1172,8 +1170,6 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{100}Z \x{100}Z
0: \x{100} 0: \x{100}
*** Failers
No match
/[z-\x{100}]/IB,utf /[z-\x{100}]/IB,utf
------------------------------------------------------------------ ------------------------------------------------------------------
@ -1363,8 +1359,7 @@ Subject length lower bound = 1
0: \x{105} 0: \x{105}
\x{109} \x{109}
0: \x{109} 0: \x{109}
** Failers \= Expect no match
No match
\x{100} \x{100}
No match No match
\x{10a} \x{10a}
@ -1408,8 +1403,7 @@ Subject length lower bound = 1
0: \x{100} 0: \x{100}
\x{101} \x{101}
0: \x{101} 0: \x{101}
** Failers \= Expect no match
No match
\x{102} \x{102}
No match No match
Y Y

23
testdata/testoutput17 vendored
View File

@ -33,6 +33,7 @@ Subject length lower bound = 4
JIT compilation was successful JIT compilation was successful
abcd abcd
0: abcd (JIT) 0: abcd (JIT)
\= Expect no match
xyz xyz
No match (JIT) No match (JIT)
@ -44,6 +45,7 @@ Subject length lower bound = 4
JIT compilation was not successful JIT compilation was not successful
abcd abcd
0: abcd 0: abcd
\= Expect no match
xyz xyz
No match No match
@ -54,6 +56,7 @@ No match
Partial match: ab (JIT) Partial match: ab (JIT)
ab\=ph ab\=ph
Partial match: ab (JIT) Partial match: ab (JIT)
\= Expect no match
xyz xyz
No match (JIT) No match (JIT)
@ -64,6 +67,7 @@ No match (JIT)
Partial match: ab (JIT) Partial match: ab (JIT)
ab\=ph ab\=ph
Partial match: ab (JIT) Partial match: ab (JIT)
\= Expect no match
xyz xyz
No match (JIT) No match (JIT)
@ -74,6 +78,7 @@ No match (JIT)
Partial match: ab Partial match: ab
ab\=ph ab\=ph
Partial match: ab Partial match: ab
\= Expect no match
xyz xyz
No match (JIT) No match (JIT)
xyz\=ps xyz\=ps
@ -86,10 +91,11 @@ No match
Failed: error -45: bad JIT option Failed: error -45: bad JIT option
ab\=ph ab\=ph
Failed: error -45: bad JIT option Failed: error -45: bad JIT option
xyz
No match (JIT)
xyz\=ps xyz\=ps
Failed: error -45: bad JIT option Failed: error -45: bad JIT option
\= Expect no match
xyz
No match (JIT)
/abcd/jit=2 /abcd/jit=2
abcd abcd
@ -98,6 +104,7 @@ Failed: error -45: bad JIT option
Partial match: ab (JIT) Partial match: ab (JIT)
ab\=ph ab\=ph
Partial match: ab Partial match: ab
\= Expect no match
xyz xyz
No match No match
@ -118,6 +125,7 @@ Failed: error -45: bad JIT option
Partial match: ab (JIT) Partial match: ab (JIT)
ab\=ph ab\=ph
Partial match: ab Partial match: ab
\= Expect no match
xyz xyz
No match (JIT) No match (JIT)
@ -128,6 +136,7 @@ No match (JIT)
Partial match: ab Partial match: ab
ab\=ph ab\=ph
Partial match: ab (JIT) Partial match: ab (JIT)
\= Expect no match
xyz xyz
No match No match
@ -138,6 +147,7 @@ No match
Partial match: ab Partial match: ab
ab\=ph ab\=ph
Partial match: ab (JIT) Partial match: ab (JIT)
\= Expect no match
xyz xyz
No match (JIT) No match (JIT)
@ -148,6 +158,7 @@ No match (JIT)
Partial match: ab (JIT) Partial match: ab (JIT)
ab\=ph ab\=ph
Partial match: ab (JIT) Partial match: ab (JIT)
\= Expect no match
xyz xyz
No match No match
@ -158,6 +169,7 @@ No match
Partial match: ab (JIT) Partial match: ab (JIT)
ab\=ph ab\=ph
Partial match: ab (JIT) Partial match: ab (JIT)
\= Expect no match
xyz xyz
No match (JIT) No match (JIT)
@ -169,6 +181,7 @@ Subject length lower bound = 4
JIT compilation was successful JIT compilation was successful
/(*NO_START_OPT)a(*:m)b/mark /(*NO_START_OPT)a(*:m)b/mark
\= Expect no match
a a
No match, mark = m (JIT) No match, mark = m (JIT)
@ -188,6 +201,7 @@ JIT compilation was successful
Minimum match limit = 2 Minimum match limit = 2
0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz (JIT) 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz (JIT)
1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
\= Expect no match
aaaaaaaaaaaaaz\=find_limits aaaaaaaaaaaaaz\=find_limits
Minimum match limit = 16383 Minimum match limit = 16383
No match (JIT) No match (JIT)
@ -272,8 +286,10 @@ Minimum match limit = 5
3: ee 3: ee
/(a+)*zz/ /(a+)*zz/
\= Expect no match
aaaaaaaaaaaaaz aaaaaaaaaaaaaz
No match (JIT) No match (JIT)
\= Expect limit exceeded
aaaaaaaaaaaaaz\=match_limit=3000 aaaaaaaaaaaaaz\=match_limit=3000
Failed: error -47: match limit exceeded Failed: error -47: match limit exceeded
@ -306,8 +322,10 @@ Starting code units: a z
Last code unit = 'z' Last code unit = 'z'
Subject length lower bound = 2 Subject length lower bound = 2
JIT compilation was successful JIT compilation was successful
\= Expect no match
aaaaaaaaaaaaaz aaaaaaaaaaaaaz
No match (JIT) No match (JIT)
\= Expect limit exceeded
aaaaaaaaaaaaaz\=match_limit=3000 aaaaaaaaaaaaaz\=match_limit=3000
Failed: error -47: match limit exceeded Failed: error -47: match limit exceeded
@ -332,6 +350,7 @@ Failed: error -46: JIT stack limit reached
/abcd/ /abcd/
abcd\=anchored abcd\=anchored
0: abcd 0: abcd
\= Expect no match
fail abcd\=anchored fail abcd\=anchored
No match No match

15
testdata/testoutput18 vendored
View File

@ -25,8 +25,6 @@
/abc/ /abc/
abc abc
0: abc 0: abc
*** Failers
No match: POSIX code 17: match failed
/^abc|def/ /^abc|def/
abcdef abcdef
@ -47,8 +45,7 @@ No match: POSIX code 17: match failed
/the quick brown fox/ /the quick brown fox/
the quick brown fox the quick brown fox
0: the quick brown fox 0: the quick brown fox
*** Failers \= Expect no match
No match: POSIX code 17: match failed
The Quick Brown Fox The Quick Brown Fox
No match: POSIX code 17: match failed No match: POSIX code 17: match failed
@ -59,8 +56,7 @@ No match: POSIX code 17: match failed
0: The Quick Brown Fox 0: The Quick Brown Fox
/(*LF)abc.def/ /(*LF)abc.def/
*** Failers \= Expect no match
No match: POSIX code 17: match failed
abc\ndef abc\ndef
No match: POSIX code 17: match failed No match: POSIX code 17: match failed
@ -74,6 +70,7 @@ No match: POSIX code 17: match failed
Failed: POSIX code 15: bad back reference at offset 6 Failed: POSIX code 15: bad back reference at offset 6
/(abc\1)/ /(abc\1)/
\= Expect no match
abc abc
No match: POSIX code 17: match failed No match: POSIX code 17: match failed
@ -96,8 +93,7 @@ Matched without capture
0: ab-cd 0: ab-cd
ab=cd ab=cd
0: ab=cd 0: ab=cd
** Failers \= Expect no match
No match: POSIX code 17: match failed
ab\ncd ab\ncd
No match: POSIX code 17: match failed No match: POSIX code 17: match failed
@ -120,8 +116,7 @@ Matched with REG_NOSUB
/a?|b?/ /a?|b?/
abc abc
0: a 0: a
** Failers \= Expect no match
0:
ddd\=notempty ddd\=notempty
No match: POSIX code 17: match failed No match: POSIX code 17: match failed

View File

@ -10,6 +10,7 @@
0: a\x{1234}b 0: a\x{1234}b
/\w/ /\w/
\= Expect no match
+++\x{c2} +++\x{c2}
No match: POSIX code 17: match failed No match: POSIX code 17: match failed

535
testdata/testoutput2 vendored

File diff suppressed because it is too large Load Diff

View File

@ -53,6 +53,7 @@ Subject length lower bound = 6
0: C 0: C
1: C 1: C
MK: A MK: A
\= Expect no match
D D
No match, mark = A No match, mark = A

29
testdata/testoutput3 vendored
View File

@ -8,8 +8,7 @@
#forbid_utf #forbid_utf
/^[\w]+/ /^[\w]+/
*** Failers \= Expect no match
No match
École École
No match No match
@ -18,8 +17,7 @@ No match
0: École 0: École
/^[\w]+/ /^[\w]+/
*** Failers \= Expect no match
No match
École École
No match No match
@ -28,30 +26,26 @@ No match
0: \xc9 0: \xc9
/^[\W]+/locale=fr_FR /^[\W]+/locale=fr_FR
*** Failers \= Expect no match
0: ***
École École
No match No match
/[\b]/ /[\b]/
\b \b
0: \x08 0: \x08
*** Failers \= Expect no match
No match
a a
No match No match
/[\b]/locale=fr_FR /[\b]/locale=fr_FR
\b \b
0: \x08 0: \x08
*** Failers \= Expect no match
No match
a a
No match No match
/^\w+/ /^\w+/
*** Failers \= Expect no match
No match
École École
No match No match
@ -66,18 +60,14 @@ No match
2: cole 2: cole
/(.+)\b(.+)/locale=fr_FR /(.+)\b(.+)/locale=fr_FR
*** Failers \= Expect no match
0: *** Failers
1: ***
2: Failers
École École
No match No match
/École/i /École/i
École École
0: \xc9cole 0: \xc9cole
*** Failers \= Expect no match
No match
école école
No match No match
@ -114,8 +104,7 @@ Subject length lower bound = 1
/^[\xc8-\xc9]/ /^[\xc8-\xc9]/
École École
0: É 0: É
*** Failers \= Expect no match
No match
école école
No match No match

29
testdata/testoutput3A vendored
View File

@ -8,8 +8,7 @@
#forbid_utf #forbid_utf
/^[\w]+/ /^[\w]+/
*** Failers \= Expect no match
No match
École École
No match No match
@ -18,8 +17,7 @@ No match
0: École 0: École
/^[\w]+/ /^[\w]+/
*** Failers \= Expect no match
No match
École École
No match No match
@ -28,30 +26,26 @@ No match
0: \xc9 0: \xc9
/^[\W]+/locale=fr_FR /^[\W]+/locale=fr_FR
*** Failers \= Expect no match
0: ***
École École
No match No match
/[\b]/ /[\b]/
\b \b
0: \x08 0: \x08
*** Failers \= Expect no match
No match
a a
No match No match
/[\b]/locale=fr_FR /[\b]/locale=fr_FR
\b \b
0: \x08 0: \x08
*** Failers \= Expect no match
No match
a a
No match No match
/^\w+/ /^\w+/
*** Failers \= Expect no match
No match
École École
No match No match
@ -66,18 +60,14 @@ No match
2: cole 2: cole
/(.+)\b(.+)/locale=fr_FR /(.+)\b(.+)/locale=fr_FR
*** Failers \= Expect no match
0: *** Failers
1: ***
2: Failers
École École
No match No match
/École/i /École/i
École École
0: \xc9cole 0: \xc9cole
*** Failers \= Expect no match
No match
école école
No match No match
@ -114,8 +104,7 @@ Subject length lower bound = 1
/^[\xc8-\xc9]/ /^[\xc8-\xc9]/
École École
0: É 0: É
*** Failers \= Expect no match
No match
école école
No match No match

29
testdata/testoutput3B vendored
View File

@ -8,8 +8,7 @@
#forbid_utf #forbid_utf
/^[\w]+/ /^[\w]+/
*** Failers \= Expect no match
No match
École École
No match No match
@ -18,8 +17,7 @@ No match
0: École 0: École
/^[\w]+/ /^[\w]+/
*** Failers \= Expect no match
No match
École École
No match No match
@ -28,30 +26,26 @@ No match
0: \xc9 0: \xc9
/^[\W]+/locale=fr_FR /^[\W]+/locale=fr_FR
*** Failers \= Expect no match
0: ***
École École
No match No match
/[\b]/ /[\b]/
\b \b
0: \x08 0: \x08
*** Failers \= Expect no match
No match
a a
No match No match
/[\b]/locale=fr_FR /[\b]/locale=fr_FR
\b \b
0: \x08 0: \x08
*** Failers \= Expect no match
No match
a a
No match No match
/^\w+/ /^\w+/
*** Failers \= Expect no match
No match
École École
No match No match
@ -66,18 +60,14 @@ No match
2: cole 2: cole
/(.+)\b(.+)/locale=fr_FR /(.+)\b(.+)/locale=fr_FR
*** Failers \= Expect no match
0: *** Failers
1: ***
2: Failers
École École
No match No match
/École/i /École/i
École École
0: \xc9cole 0: \xc9cole
*** Failers \= Expect no match
No match
école école
No match No match
@ -114,8 +104,7 @@ Subject length lower bound = 1
/^[\xc8-\xc9]/ /^[\xc8-\xc9]/
École École
0: É 0: É
*** Failers \= Expect no match
No match
école école
No match No match

634
testdata/testoutput4 vendored

File diff suppressed because it is too large Load Diff

178
testdata/testoutput5 vendored
View File

@ -11,14 +11,12 @@
# test 4. # test 4.
/^[\p{Arabic}]/utf /^[\p{Arabic}]/utf
** Failers \= Expect no match
No match
\x{061c} \x{061c}
No match No match
/^[[:graph:]]+$/utf,ucp /^[[:graph:]]+$/utf,ucp
** Failers \= Expect no match
No match
\x{61c} \x{61c}
No match No match
\x{2066} \x{2066}
@ -31,8 +29,7 @@ No match
No match No match
/^[[:print:]]+$/utf,ucp /^[[:print:]]+$/utf,ucp
** Failers \= Expect no match
0: ** Failers
\x{61c} \x{61c}
No match No match
\x{2066} \x{2066}
@ -76,6 +73,7 @@ No match
0: A\x{85}\x{2005}Z 0: A\x{85}\x{2005}Z
/^[[:graph:]]+$/utf,ucp /^[[:graph:]]+$/utf,ucp
\= Expect no match
\x{180e} \x{180e}
No match No match
@ -88,6 +86,7 @@ No match
0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}\x{180e} 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}\x{180e}
/^[[:^print:]]+$/utf,ucp /^[[:^print:]]+$/utf,ucp
\= Expect no match
\x{180e} \x{180e}
No match No match
@ -200,8 +199,7 @@ Overall options: anchored utf
Subject length lower bound = 1 Subject length lower bound = 1
bar bar
0: b 0: b
*** Failers \= Expect no match
No match
c c
No match No match
\x{ff} \x{ff}
@ -227,8 +225,7 @@ Subject length lower bound = 1
0: \x{ff} 0: \x{ff}
\x{100} \x{100}
0: \x{100} 0: \x{100}
*** Failers \= Expect no match
0: *
aaa aaa
No match No match
@ -251,8 +248,7 @@ No match
\x{100}\x{100}"12" \x{100}\x{100}"12"
0: \x{100}\x{100}"12" 0: \x{100}\x{100}"12"
1: "12" 1: "12"
*** Failers \= Expect no match
No match
\x{100}\x{100}abcd \x{100}\x{100}abcd
No match No match
@ -303,8 +299,7 @@ Failed: error 108 at offset 15: range out of order in character class
0: \x{100} 0: \x{100}
\x{104} \x{104}
0: \x{104} 0: \x{104}
*** Failers \= Expect no match
No match
\x{105} \x{105}
No match No match
\x{ff} \x{ff}
@ -581,8 +576,7 @@ Matched, but too many substrings
0: a\x{2028}b 0: a\x{2028}b
a\x{2029}b a\x{2029}b
0: a\x{2029}b 0: a\x{2029}b
** Failers \= Expect no match
No match
a\n\rb a\n\rb
No match No match
@ -623,8 +617,7 @@ No match
0: a\x{0a}\x{0d}b 0: a\x{0a}\x{0d}b
a\n\r\x{85}\x0cb a\n\r\x{85}\x0cb
0: a\x{0a}\x{0d}\x{85}\x{0c}b 0: a\x{0a}\x{0d}\x{85}\x{0c}b
** Failers \= Expect no match
No match
ab ab
No match No match
@ -643,8 +636,7 @@ No match
0: a\x{0a}\x{0d}\x{0a}\x{0d}b 0: a\x{0a}\x{0d}\x{0a}\x{0d}b
a\n\n\r\nb a\n\n\r\nb
0: a\x{0a}\x{0a}\x{0d}\x{0a}b 0: a\x{0a}\x{0a}\x{0d}\x{0a}b
** Failers \= Expect no match
No match
a\n\n\n\rb a\n\n\n\rb
No match No match
a\r a\r
@ -655,8 +647,7 @@ No match
0: X X\x{0a} 0: X X\x{0a}
X\x09X\x0b X\x09X\x0b
0: X\x{09}X\x{0b} 0: X\x{09}X\x{0b}
** Failers \= Expect no match
No match
\x{a0} X\x0a \x{a0} X\x0a
No match No match
@ -667,8 +658,7 @@ No match
0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d} 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d}
\x09\x20\x{a0}\x0a\x0b\x0c \x09\x20\x{a0}\x0a\x0b\x0c
0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c} 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
** Failers \= Expect no match
No match
\x09\x20\x{a0}\x0a\x0b \x09\x20\x{a0}\x0a\x0b
No match No match
@ -677,8 +667,7 @@ No match
0: \x{3001}\x{3000}\x{2030}\x{2028} 0: \x{3001}\x{3000}\x{2030}\x{2028}
X\x{180e}X\x{85} X\x{180e}X\x{85}
0: X\x{180e}X\x{85} 0: X\x{180e}X\x{85}
** Failers \= Expect no match
No match
\x{2009} X\x0a \x{2009} X\x0a
No match No match
@ -689,8 +678,7 @@ No match
0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028} 0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028}
\x09\x20\x{202f}\x0a\x0b\x0c \x09\x20\x{202f}\x0a\x0b\x0c
0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c} 0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c}
** Failers \= Expect no match
No match
\x09\x{200a}\x{a0}\x{2028}\x0b \x09\x{200a}\x{a0}\x{2028}\x0b
No match No match
@ -755,8 +743,7 @@ Subject length lower bound = 3
0: a\x{0a}b 0: a\x{0a}b
a\r\nb a\r\nb
0: a\x{0d}\x{0a}b 0: a\x{0d}\x{0a}b
** Failers \= Expect no match
No match
a\x{85}b a\x{85}b
No match No match
a\x0bb a\x0bb
@ -793,8 +780,7 @@ Subject length lower bound = 2
0: a\x{0a}b 0: a\x{0a}b
a\r\nb a\r\nb
0: a\x{0d}\x{0a}b 0: a\x{0d}\x{0a}b
** Failers \= Expect no match
No match
a\x{85}b a\x{85}b
No match No match
a\x0bb a\x0bb
@ -817,14 +803,11 @@ Subject length lower bound = 2
0: a\x{85}b 0: a\x{85}b
a\x0bb a\x0bb
0: a\x{0b}b 0: a\x{0b}b
** Failers
No match
/.*a.*=.b.*/utf,newline=any /.*a.*=.b.*/utf,newline=any
QQQ\x{2029}ABCaXYZ=!bPQR QQQ\x{2029}ABCaXYZ=!bPQR
0: ABCaXYZ=!bPQR 0: ABCaXYZ=!bPQR
** Failers \= Expect no match
No match
a\x{2029}b a\x{2029}b
No match No match
\x61\xe2\x80\xa9\x62 \x61\xe2\x80\xa9\x62
@ -838,8 +821,7 @@ Failed: error 130 at offset 3: unknown POSIX class name
0: a\x{1234}b 0: a\x{1234}b
a\nb a\nb
0: a\x{0a}b 0: a\x{0a}b
** Failers \= Expect no match
No match
ab ab
No match No match
@ -848,8 +830,7 @@ No match
0: aXb 0: aXb
a\nX\nX\x{1234}b a\nX\nX\x{1234}b
0: a\x{0a}X\x{0a}X\x{1234}b 0: a\x{0a}X\x{0a}X\x{1234}b
** Failers \= Expect no match
No match
ab ab
No match No match
@ -935,6 +916,7 @@ Partial match: X\x{123}\x{123}\x{123}
Partial match: X\x{123}\x{123}\x{123}\x{123} Partial match: X\x{123}\x{123}\x{123}\x{123}
/X\x{123}{2,4}b/utf /X\x{123}{2,4}b/utf
\= Expect no match
Xx\=ps Xx\=ps
No match No match
X\x{123}x\=ps X\x{123}x\=ps
@ -947,6 +929,7 @@ No match
No match No match
/X\x{123}{2,4}?b/utf /X\x{123}{2,4}?b/utf
\= Expect no match
Xx\=ps Xx\=ps
No match No match
X\x{123}x\=ps X\x{123}x\=ps
@ -959,6 +942,7 @@ No match
No match No match
/X\x{123}{2,4}+b/utf /X\x{123}{2,4}+b/utf
\= Expect no match
Xx\=ps Xx\=ps
No match No match
X\x{123}x\=ps X\x{123}x\=ps
@ -1745,6 +1729,7 @@ Last code unit = 'y'
Subject length lower bound = 2 Subject length lower bound = 2
/(?<!^)ETA/utf /(?<!^)ETA/utf
\= Expect no match
ETA ETA
No match No match
@ -1874,8 +1859,7 @@ Subject length lower bound = 1
0: 12-34 0: 12-34
12+\x{661}-34 12+\x{661}-34
0: 12+\x{661}-34 0: 12+\x{661}-34
** Failers \= Expect no match
No match
abcd abcd
No match No match
@ -1995,8 +1979,7 @@ No match
/^\p{Cs}/utf /^\p{Cs}/utf
\x{dfff}\=no_utf_check \x{dfff}\=no_utf_check
0: \x{dfff} 0: \x{dfff}
** Failers \= Expect no match
No match
\x{09f} \x{09f}
No match No match
@ -2021,8 +2004,7 @@ No match
0: $\x{a2}\x{a3}\x{a4}\x{a5} 0: $\x{a2}\x{a3}\x{a4}\x{a5}
\x{9f2} \x{9f2}
0: \x{9f2} 0: \x{9f2}
** Failers \= Expect no match
No match
X X
No match No match
\x{2c2} \x{2c2}
@ -2039,8 +2021,7 @@ No match
0: \x{2000} 0: \x{2000}
\x{2001} \x{2001}
0: \x{2001} 0: \x{2001}
** Failers \= Expect no match
No match
\x{2028} \x{2028}
No match No match
\x{200d} \x{200d}
@ -2052,16 +2033,14 @@ No match
/\p{^Lu}/i,utf /\p{^Lu}/i,utf
1234 1234
0: 1 0: 1
** Failers \= Expect no match
0: *
ABC ABC
No match No match
/\P{Lu}/i,utf /\P{Lu}/i,utf
1234 1234
0: 1 0: 1
** Failers \= Expect no match
0: *
ABC ABC
No match No match
@ -2070,8 +2049,7 @@ No match
0: a 0: a
Az Az
0: z 0: z
** Failers \= Expect no match
0: a
ABC ABC
No match No match
@ -2080,8 +2058,7 @@ No match
0: A 0: A
a\x{10a0}B a\x{10a0}B
0: \x{10a0} 0: \x{10a0}
** Failers \= Expect no match
0: F
a a
No match No match
\x{1d00} \x{1d00}
@ -2092,8 +2069,7 @@ No match
0: A 0: A
aZ aZ
0: Z 0: Z
** Failers \= Expect no match
0: F
abc abc
No match No match
@ -2182,16 +2158,14 @@ No match
0: \x{a6c} 0: \x{a6c}
\x{10a7} \x{10a7}
0: \x{10a7} 0: \x{10a7}
** Failers \= Expect no match
No match
_ABC _ABC
No match No match
/^\p{Xan}+/utf /^\p{Xan}+/utf
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ ABCD1234\x{6ca}\x{a6c}\x{10a7}_
0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
** Failers \= Expect no match
No match
_ABC _ABC
No match No match
@ -2222,16 +2196,14 @@ No match
0: \x{a6c} 0: \x{a6c}
\x{10a7} \x{10a7}
0: \x{10a7} 0: \x{10a7}
** Failers \= Expect no match
No match
_ABC _ABC
No match No match
/^[\p{Xan}]+/utf /^[\p{Xan}]+/utf
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ ABCD1234\x{6ca}\x{a6c}\x{10a7}_
0: ABCD1234\x{6ca}\x{a6c}\x{10a7} 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
** Failers \= Expect no match
No match
_ABC _ABC
No match No match
@ -2240,8 +2212,7 @@ No match
0: >\x{1680} 0: >\x{1680}
>\x{a0} >\x{a0}
0: >\x{a0} 0: >\x{a0}
** Failers \= Expect no match
No match
\x{0b} \x{0b}
No match No match
@ -2278,8 +2249,7 @@ No match
0: >\x{1680} 0: >\x{1680}
>\x{a0} >\x{a0}
0: >\x{a0} 0: >\x{a0}
** Failers \= Expect no match
No match
\x{0b} \x{0b}
No match No match
@ -2324,8 +2294,7 @@ No match
0: \x{10a7} 0: \x{10a7}
_ABC _ABC
0: _ 0: _
** Failers \= Expect no match
No match
[] []
No match No match
@ -2362,8 +2331,7 @@ No match
0: \x{10a7} 0: \x{10a7}
_ABC _ABC
0: _ 0: _
** Failers \= Expect no match
No match
[] []
No match No match
@ -2630,8 +2598,7 @@ No match
/\b...\B/utf /\b...\B/utf
abc_ abc_
0: abc 0: abc
** Failers \= Expect no match
0: Fai
\x{37e}abc\x{376} \x{37e}abc\x{376}
No match No match
\x{37e}\x{376}\x{371}\x{393}\x{394} \x{37e}\x{376}\x{371}\x{393}\x{394}
@ -2825,10 +2792,12 @@ No match
# These behaved oddly in Perl, so they are kept in this test # These behaved oddly in Perl, so they are kept in this test
/(\x{23a}\x{23a}\x{23a})?\1/i,utf /(\x{23a}\x{23a}\x{23a})?\1/i,utf
\= Expect no match
\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
No match No match
/(ȺȺȺ)?\1/i,utf /(ȺȺȺ)?\1/i,utf
\= Expect no match
ȺȺȺⱥⱥ ȺȺȺⱥⱥ
No match No match
@ -2843,10 +2812,12 @@ No match
1: \x{23a}\x{23a}\x{23a} 1: \x{23a}\x{23a}\x{23a}
/(\x{23a}\x{23a}\x{23a})\1/i,utf /(\x{23a}\x{23a}\x{23a})\1/i,utf
\= Expect no match
\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
No match No match
/(ȺȺȺ)\1/i,utf /(ȺȺȺ)\1/i,utf
\= Expect no match
ȺȺȺⱥⱥ ȺȺȺⱥⱥ
No match No match
@ -2887,8 +2858,7 @@ No match
0: \x{1bc0} 0: \x{1bc0}
\x{1bff} \x{1bff}
0: \x{1bff} 0: \x{1bff}
** Failers \= Expect no match
No match
\x{1bf4} \x{1bf4}
No match No match
@ -2897,8 +2867,7 @@ No match
0: \x{11000} 0: \x{11000}
\x{1106f} \x{1106f}
0: \x{1106f} 0: \x{1106f}
** Failers \= Expect no match
No match
\x{1104e} \x{1104e}
No match No match
@ -2907,8 +2876,7 @@ No match
0: \x{840} 0: \x{840}
\x{85e} \x{85e}
0: \x{85e} 0: \x{85e}
** Failers \= Expect no match
No match
\x{85c} \x{85c}
No match No match
\x{85d} \x{85d}
@ -2933,8 +2901,7 @@ No match
/^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames /^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
aX41z aX41z
0: aX41z 0: aX41z
*** Failers \= Expect no match
No match
aAz aAz
No match No match
@ -3138,8 +3105,7 @@ Subject length lower bound = 3
0+ 0+
/\x{3a3}++./i,utf,aftertext /\x{3a3}++./i,utf,aftertext
** Failers \= Expect no match
No match
\x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2} \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
No match No match
@ -3179,24 +3145,29 @@ No match
Ket Ket
End End
------------------------------------------------------------------ ------------------------------------------------------------------
\= Expect no match
ikt ikt
No match No match
/is+t/i,utf /is+t/i,utf
iSs\x{17f}t iSs\x{17f}t
0: iSs\x{17f}t 0: iSs\x{17f}t
\= Expect no match
ikt ikt
No match No match
/is+?t/i,utf /is+?t/i,utf
\= Expect no match
ikt ikt
No match No match
/is?t/i,utf /is?t/i,utf
\= Expect no match
ikt ikt
No match No match
/is{2}t/i,utf /is{2}t/i,utf
\= Expect no match
iskt iskt
No match No match
@ -3211,80 +3182,70 @@ No match
0: ` 0: `
\x{1234}abc \x{1234}abc
0: \x{1234} 0: \x{1234}
** Failers \= Expect no match
No match
abc abc
No match No match
/^\p{Xuc}+/utf /^\p{Xuc}+/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
0: $@`\x{a0}\x{1234}\x{e000} 0: $@`\x{a0}\x{1234}\x{e000}
** Failers \= Expect no match
No match
\x{9f} \x{9f}
No match No match
/^\p{Xuc}+?/utf /^\p{Xuc}+?/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
0: $ 0: $
** Failers \= Expect no match
No match
\x{9f} \x{9f}
No match No match
/^\p{Xuc}+?\*/utf /^\p{Xuc}+?\*/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
0: $@`\x{a0}\x{1234}\x{e000}* 0: $@`\x{a0}\x{1234}\x{e000}*
** Failers \= Expect no match
No match
\x{9f} \x{9f}
No match No match
/^\p{Xuc}++/utf /^\p{Xuc}++/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
0: $@`\x{a0}\x{1234}\x{e000} 0: $@`\x{a0}\x{1234}\x{e000}
** Failers \= Expect no match
No match
\x{9f} \x{9f}
No match No match
/^\p{Xuc}{3,5}/utf /^\p{Xuc}{3,5}/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
0: $@`\x{a0}\x{1234} 0: $@`\x{a0}\x{1234}
** Failers \= Expect no match
No match
\x{9f} \x{9f}
No match No match
/^\p{Xuc}{3,5}?/utf /^\p{Xuc}{3,5}?/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
0: $@` 0: $@`
** Failers \= Expect no match
No match
\x{9f} \x{9f}
No match No match
/^[\p{Xuc}]/utf /^[\p{Xuc}]/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
0: $ 0: $
** Failers \= Expect no match
No match
\x{9f} \x{9f}
No match No match
/^[\p{Xuc}]+/utf /^[\p{Xuc}]+/utf
$@`\x{a0}\x{1234}\x{e000}** $@`\x{a0}\x{1234}\x{e000}**
0: $@`\x{a0}\x{1234}\x{e000} 0: $@`\x{a0}\x{1234}\x{e000}
** Failers \= Expect no match
No match
\x{9f} \x{9f}
No match No match
/^\P{Xuc}/utf /^\P{Xuc}/utf
abc abc
0: a 0: a
** Failers \= Expect no match
0: *
$abc $abc
No match No match
@abc @abc
@ -3297,8 +3258,7 @@ No match
/^[\P{Xuc}]/utf /^[\P{Xuc}]/utf
abc abc
0: a 0: a
** Failers \= Expect no match
0: *
$abc $abc
No match No match
@abc @abc
@ -4053,10 +4013,12 @@ Failed: error 124 at offset 113: letter or underscore expected after (?< or (?'
/\C\X*TӅ; /\C\X*TӅ;
{0,6}\v+ F {0,6}\v+ F
/utf /utf
\= Expect no match
Ӆ\x0a Ӆ\x0a
No match No match
/\C(\W?ſ)'?{{/utf /\C(\W?ſ)'?{{/utf
\= Expect no match
\\C(\\W?ſ)'?{{ \\C(\\W?ſ)'?{{
No match No match

918
testdata/testoutput6 vendored

File diff suppressed because it is too large Load Diff

615
testdata/testoutput7 vendored

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,7 @@
0: aXb 0: aXb
a\nb a\nb
0: a\x0ab 0: a\x0ab
** Failers (too big char) \= Expect no match and error message (too big char)
No match
A\x{123}B A\x{123}B
** Character \x{123} is greater than 255 and UTF-8 mode is not enabled. ** Character \x{123} is greater than 255 and UTF-8 mode is not enabled.
** Truncation will probably give the wrong result. ** Truncation will probably give the wrong result.