Regex: Update PCRE to v8.35.

I was über lazy at first, so took libs from SM.
But actually it's quite easy to compile, so let's update to latest version \o/.
This commit is contained in:
Arkshine
2014-07-05 13:53:30 +02:00
parent d1153b8049
commit d4de0e6f1e
241 changed files with 51074 additions and 15011 deletions

View File

@ -705,3 +705,41 @@ RC=0
./testdata/grepinput:zero|a
./testdata/grepinput:.|zero|the|.
RC=0
---------------------------- Test 102 -----------------------------
2:
5:
7:
9:
12:
14:
RC=0
---------------------------- Test 103 -----------------------------
RC=0
---------------------------- Test 104 -----------------------------
2:
5:
7:
9:
12:
14:
RC=0
---------------------------- Test 105 -----------------------------
triple: t1_txt s1_tag s_txt p_tag p_txt o_tag o_txt

triple: t2_txt s1_tag s_txt p_tag p_txt o_tag
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

triple: t3_txt s2_tag s_txt p_tag p_txt o_tag o_txt

triple: t4_txt s1_tag s_txt p_tag p_txt o_tag o_txt

triple: t5_txt s1_tag s_txt p_tag p_txt o_tag
o_txt

triple: t6_txt s2_tag s_txt p_tag p_txt o_tag o_txt

triple: t7_txt s1_tag s_txt p_tag p_txt o_tag o_txt
RC=0
---------------------------- Test 106 -----------------------------
a
RC=0

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,8 @@
/-- This set of tests is for features that are compatible with all versions of
Perl >= 5.10, in non-UTF-8 mode. It should run clean for both the 8-bit and
16-bit PCRE libraries. --/
Perl >= 5.10, in non-UTF-8 mode. It should run clean for the 8-bit, 16-bit,
and 32-bit PCRE libraries. --/
< forbid 89?=ABCDEFfGILMNPTUWXZ<
/the quick brown fox/
the quick brown fox
@ -1483,14 +1485,19 @@
abc\100\x30
abc\100\060
abc\100\60
/^A\8B\9C$/
A8B9C
*** Failers
A\08B\09C
/^(A)(B)(C)(D)(E)(F)(G)(H)(I)\8\9$/
ABCDEFGHIHI
/abc\81/
abc\081
abc\0\x38\x31
/abc\91/
abc\091
abc\0\x39\x31
/^[A\8B\9C]+$/
A8B9C
*** Failers
A8B9C\x00
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
abcdefghijkllS
@ -3654,13 +3661,6 @@
/a*/g
abbab
/^[a-\d]/
abcde
-things
0digit
*** Failers
bcdef
/^[\d-a]/
abcde
-things
@ -3773,9 +3773,9 @@
abc123abc
abc123bc
/-- This tests for an IPv6 address in the form where it can have up to --/
/-- eight components, one and only one of which is empty. This must be --/
/-- an internal component. --/
/-- This tests for an IPv6 address in the form where it can have up to
eight components, one and only one of which is empty. This must be
an internal component. --/
/^(?!:) # colon disallowed at start
(?: # start of item
@ -4221,9 +4221,6 @@
ab
bc
/^(?=(a)){0}b(?1)/
backgammon
/^(?=(?1))?[az]([abc])d/
abd
zcdxx
@ -4656,16 +4653,10 @@
/(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x
(ab(cd)ef)
/^(?!a(*SKIP)b)/
ac
/^(?=a(*SKIP)b|ac)/
** Failers
ac
/^(?=a(*THEN)b|ac)/
ac
/^(?=a(*PRUNE)b)/
ab
** Failers
@ -4674,9 +4665,6 @@
/^(?=a(*ACCEPT)b)/
ac
/^(?(?!a(*SKIP)b))/
ac
/(?>a\Kb)/
ab
@ -4899,33 +4887,15 @@ however, we need the complication for Perl. ---/
/(A (A|B(*ACCEPT)|C) D)(E)/x
AB
/\A.*?(?:a|b(*THEN)c)/
ba
/\A.*?(?:a|bc)/
ba
/\A.*?(a|b(*THEN)c)/
ba
/\A.*?(a|bc)/
ba
/\A.*?(?:a|b(*THEN)c)++/
ba
/\A.*?(?:a|bc)++/
ba
/\A.*?(a|b(*THEN)c)++/
ba
/\A.*?(a|bc)++/
ba
/\A.*?(?:a|b(*THEN)c|d)/
ba
/\A.*?(?:a|bc|d)/
ba
@ -5253,9 +5223,6 @@ name were given. ---/
/(a(*COMMIT)b){0}a(?1)|aac/
aac
/(?!a(*COMMIT)b)ac|cd/
ac
/((?:a?)*)*c/
aac
@ -5303,4 +5270,400 @@ name were given. ---/
"(?>.*?)foo"
abcdfooxyz
/(?:(a(*PRUNE)b)){0}(?:(?1)|ac)/
ac
/(?:(a(*SKIP)b)){0}(?:(?1)|ac)/
ac
/(?<=(*SKIP)ac)a/
aa
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
AAAC
/a(*SKIP:m)x|ac(*:n)(*SKIP:n)d|ac/K
acacd
/A(*SKIP:m)x|A(*SKIP:n)x|AB/K
AB
/((*SKIP:r)d){0}a(*SKIP:m)x|ac(*:n)|ac/K
acacd
/-- Tests that try to figure out how Perl works. My hypothesis is that the
first verb that is backtracked onto is the one that acts. This seems to be
the case almost all the time, but there is one exception that is perhaps a
bug. --/
/-- This matches "aaaac"; each PRUNE advances one character until the subject
no longer starts with 5 'a's. --/
/aaaaa(*PRUNE)b|a+c/
aaaaaac
/-- Putting SKIP in front of PRUNE makes no difference, as it is never
backtracked onto, whether or not it has a label. --/
/aaaaa(*SKIP)(*PRUNE)b|a+c/
aaaaaac
/aaaaa(*SKIP:N)(*PRUNE)b|a+c/
aaaaaac
/aaaa(*:N)a(*SKIP:N)(*PRUNE)b|a+c/
aaaaaac
/-- Putting THEN in front makes no difference. */
/aaaaa(*THEN)(*PRUNE)b|a+c/
aaaaaac
/-- However, putting COMMIT in front of the prune changes it to "no match". I
think this is inconsistent and possibly a bug. For the moment, running this
test is moved out of the Perl-compatible file. --/
/aaaaa(*COMMIT)(*PRUNE)b|a+c/
/---- OK, lets play the same game again using SKIP instead of PRUNE. ----/
/-- This matches "ac" because SKIP forces the next match to start on the
sixth "a". --/
/aaaaa(*SKIP)b|a+c/
aaaaaac
/-- Putting PRUNE in front makes no difference. --/
/aaaaa(*PRUNE)(*SKIP)b|a+c/
aaaaaac
/-- Putting THEN in front makes no difference. --/
/aaaaa(*THEN)(*SKIP)b|a+c/
aaaaaac
/-- In this case, neither does COMMIT. This still matches "ac". --/
/aaaaa(*COMMIT)(*SKIP)b|a+c/
aaaaaac
/-- This gives "no match", as expected. --/
/aaaaa(*COMMIT)b|a+c/
aaaaaac
/------ Tests using THEN ------/
/-- This matches "aaaaaac", as expected. --/
/aaaaa(*THEN)b|a+c/
aaaaaac
/-- Putting SKIP in front makes no difference. --/
/aaaaa(*SKIP)(*THEN)b|a+c/
aaaaaac
/-- Putting PRUNE in front makes no difference. --/
/aaaaa(*PRUNE)(*THEN)b|a+c/
aaaaaac
/-- Putting COMMIT in front makes no difference. --/
/aaaaa(*COMMIT)(*THEN)b|a+c/
aaaaaac
/-- End of "priority" tests --/
/aaaaa(*:m)(*PRUNE:m)(*SKIP:m)m|a+/
aaaaaa
/aaaaa(*:m)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
aaaaaa
/aaaaa(*:n)(*PRUNE:m)(*SKIP:m)m|a+/
aaaaaa
/aaaaa(*:n)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
aaaaaa
/a(*MARK:A)aa(*PRUNE:A)a(*SKIP:A)b|a+c/
aaaac
/a(*MARK:A)aa(*MARK:A)a(*SKIP:A)b|a+c/
aaaac
/aaa(*PRUNE:A)a(*SKIP:A)b|a+c/
aaaac
/aaa(*MARK:A)a(*SKIP:A)b|a+c/
aaaac
/a(*:m)a(*COMMIT)(*SKIP:m)b|a+c/K
aaaaaac
/.?(a|b(*THEN)c)/
ba
/(a(*COMMIT)b)c|abd/
abc
abd
/(?=a(*COMMIT)b)abc|abd/
abc
abd
/(?>a(*COMMIT)b)c|abd/
abc
abd
/a(?=b(*COMMIT)c)[^d]|abd/
abd
abc
/a(?=bc).|abd/
abd
abc
/a(?>b(*COMMIT)c)d|abd/
abceabd
/a(?>bc)d|abd/
abceabd
/(?>a(*COMMIT)b)c|abd/
abd
/(?>a(*COMMIT)c)d|abd/
abd
/((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
ac
/-- These tests were formerly in test 2, but changes in PCRE and Perl have
made them compatible. --/
/^(a)?(?(1)a|b)+$/
*** Failers
a
/(?=a\Kb)ab/
ab
/(?!a\Kb)ac/
ac
/^abc(?<=b\Kc)d/
abcd
/^abc(?<!b\Kq)d/
abcd
/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
AAAC
/^((abc|abcx)(*THEN)y|abcd)/
abcd
*** Failers
abcxy
/^((yes|no)(*THEN)(*F))?/
yes
/(A (.*) C? (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) C? (*THEN) | A D) z/x
AbcdCBefgBhiBqz
/(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) C? (*THEN) | A D) \s* z/x
AbcdCBefgBhiBqz
/(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) (?:C|) (*THEN) | A D) z/x
AbcdCBefgBhiBqz
/(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) C{0,6} (*THEN) | A D) z/x
AbcdCBefgBhiBqz
/(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
AbcdCEBefgBhiBqz
/(A (.*) (CE){0,6} (*THEN) | A D) z/x
AbcdCEBefgBhiBqz
/(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) (CE*){0,6} (*THEN) | A D) z/x
AbcdCBefgBhiBqz
/(?=a(*COMMIT)b|ac)ac|ac/
ac
/(?=a(*COMMIT)b|(ac)) ac | (a)c/x
ac
/--------/
/(?(?!b(*THEN)a)bn|bnn)/
bnn
/(?!b(*SKIP)a)bn|bnn/
bnn
/(?(?!b(*SKIP)a)bn|bnn)/
bnn
/(?!b(*PRUNE)a)bn|bnn/
bnn
/(?(?!b(*PRUNE)a)bn|bnn)/
bnn
/(?!b(*COMMIT)a)bn|bnn/
bnn
/(?(?!b(*COMMIT)a)bn|bnn)/
bnn
/(?=b(*SKIP)a)bn|bnn/
bnn
/(?=b(*THEN)a)bn|bnn/
bnn
/^(?!a(*SKIP)b)/
ac
/^(?!a(*SKIP)b)../
acd
/(?!a(*SKIP)b)../
acd
/^(?(?!a(*SKIP)b))/
ac
/^(?!a(*PRUNE)b)../
acd
/(?!a(*PRUNE)b)../
acd
/(?!a(*COMMIT)b)ac|cd/
ac
/\A.*?(?:a|bc)/
ba
/^(A(*THEN)B|C(*THEN)D)/
CD
/(*:m(m)(?&y)(?(DEFINE)(?<y>b))/K
abc
/(*PRUNE:m(m)(?&y)(?(DEFINE)(?<y>b))/K
abc
/(*SKIP:m(m)(?&y)(?(DEFINE)(?<y>b))/K
abc
/(*THEN:m(m)(?&y)(?(DEFINE)(?<y>b))/K
abc
/^\d*\w{4}/
1234
123
/^[^b]*\w{4}/
aaaa
aaa
/^[^b]*\w{4}/i
aaaa
aaa
/^a*\w{4}/
aaaa
aaa
/^a*\w{4}/i
aaaa
aaa
/(?(?=ab)ab)/+
ca
cd
/(?:(?<n>foo)|(?<n>bar))\k<n>/J
foofoo
barbar
/(?<n>A)(?:(?<n>foo)|(?<n>bar))\k<n>/J
AfooA
AbarA
** Failers
Afoofoo
Abarbar
/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
1 IN SOA non-sp1 non-sp2(
/^ (?:(?<A>A)|(?'B'B)(?<A>A)) (?('A')x) (?(<B>)y)$/xJ
Ax
BAxy
/^A\xZ/
A\0Z
/^A\o{123}B/
A\123B
/ ^ a + + b $ /x
aaaab
/ ^ a + #comment
+ b $ /x
aaaab
/ ^ a + #comment
#comment
+ b $ /x
aaaab
/ ^ (?> a + ) b $ /x
aaaab
/ ^ ( a + ) + + \w $ /x
aaaab
/(?:a\Kb)*+/+
ababc
/(?>a\Kb)*/+
ababc
/(?:a\Kb)*/+
ababc
/(a\Kb)*+/+
ababc
/(a\Kb)*/+
ababc
/-- End of testinput1 --/

View File

@ -139,6 +139,12 @@
/^\p{Cf}/8
\x{601}
\x{180e}
\x{061c}
\x{2066}
\x{2067}
\x{2068}
\x{2069}
** Failers
\x{09f}
@ -199,11 +205,12 @@
/^\p{Mn}/8
\x{300}
\x{1a1b}
** Failers
X
\x{903}
/^\p{Nd}+/8
/^\p{Nd}+/8O
0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
\x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
\x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
@ -243,6 +250,8 @@
]
}
\x{f3b}
\x{2309}
\x{230b}
** Failers
X
\x{203f}
@ -250,7 +259,7 @@
[
{
\x{f3c}
/^\p{Pf}/8
\x{bb}
\x{2019}
@ -277,6 +286,8 @@
[
{
\x{f3c}
\x{2308}
\x{230a}
** Failers
X
)
@ -326,7 +337,6 @@
\ \
\x{a0}
\x{1680}
\x{180e}
\x{2000}
\x{2001}
** Failers
@ -423,23 +433,23 @@
** Failers
1234
/\D+/8
/\D+/8O
11111111111111111111111111111111111111111111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
/\P{Nd}+/8
/\P{Nd}+/8O
11111111111111111111111111111111111111111111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
/[\D]+/8
/[\D]+/8O
11111111111111111111111111111111111111111111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
/[\P{Nd}]+/8
/[\P{Nd}]+/8O
11111111111111111111111111111111111111111111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
/[\D\P{Nd}]+/8
/[\D\P{Nd}]+/8O
11111111111111111111111111111111111111111111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@ -886,19 +896,19 @@
** Failers
\x{0b}
/^>\p{Xsp}+/8
/^>\p{Xsp}+/8O
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
/^>\p{Xsp}*/8
/^>\p{Xsp}*/8O
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
/^>\p{Xsp}{2,9}/8
/^>\p{Xsp}{2,9}/8O
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
/^>[\p{Xsp}]/8
/^>[\p{Xsp}]/8O
>\x{2028}\x{0b}
/^>[\p{Xsp}]+/8
/^>[\p{Xsp}]+/8O
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
/^>\p{Xps}/8
@ -1334,4 +1344,76 @@
/is{2}t/8i
iskt
/^\p{Xuc}/8
$abc
@abc
`abc
\x{1234}abc
** Failers
abc
/^\p{Xuc}+/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}+?/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}+?\*/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}++/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}{3,5}/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}{3,5}?/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^[\p{Xuc}]/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^[\p{Xuc}]+/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\P{Xuc}/8
abc
** Failers
$abc
@abc
`abc
\x{1234}abc
/^[\P{Xuc}]/8
abc
** Failers
$abc
@abc
`abc
\x{1234}abc
/^A\s+Z/8W
A\x{2005}Z
A\x{85}\x{180e}\x{2005}Z
/^A[\s]+Z/8W
A\x{2005}Z
A\x{85}\x{180e}\x{2005}Z
/-- End of testinput10 --/

View File

@ -4,7 +4,9 @@ and a couple of things that are different with JIT. --/
/abc/S+I
/ab(*THEN)/S+I
/(?(?C1)(?=a)a)/S+I
/(?(?C1)(?=a)a)/S!+I
/abc/S+I>testsavedregex
@ -82,8 +84,7 @@ and a couple of things that are different with JIT. --/
/(*NO_START_OPT)a(*:m)b/KS++
a
/.?(*THEN)/S+I
/.?(*THEN)/S!+I
/^12345678abcd/mS++
12345678abcd
/-- End of testinput12 --/

View File

@ -1,6 +1,9 @@
/-- This set of tests is run only with the 8-bit library. It starts with all
the tests of the POSIX interface, because that is supported only with the
8-bit library. --/
/-- This set of tests is run only with the 8-bit library. They do not require
UTF-8 or Unicode property support. The file starts with all the tests of
the POSIX interface, because that is supported only with the 8-bit library.
--/
< forbid 8W
/abc/P
abc
@ -85,9 +88,12 @@
a\nb
** Failers (too big char)
A\x{123}B
A\o{443}B
/\x{100}/I
/\o{400}/I
/ (?: [\040\t] | \(
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
\) )* # optional leading comment
@ -294,8 +300,12 @@ not matter. --/
/\h/SI
/\H/SI
/\v/SI
/\V/SI
/\R/SI
/[\h]/BZ
@ -326,4 +336,8 @@ not matter. --/
/[\u0100-\u0200]/<JS>
/[^\x00-a]{12,}[^b-\xff]*/BZ
/[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/BZ
/-- End of testinput14 --/

View File

@ -1,5 +1,7 @@
/-- This set of tests is for UTF-8 support, and is relevant only to the 8-bit
library. --/
/-- This set of tests is for UTF-8 support but not Unicode property support,
and is relevant only to the 8-bit library. --/
< forbid W
/X(\C{3})/8
X\x{1234}
@ -47,7 +49,7 @@
/<2F><><EFBFBD>xxx/8
/<2F><><EFBFBD>xxx/8?DZSS
/<2F><><EFBFBD>xxx/8?DZSSO
/badutf/8
\xdf
@ -89,7 +91,6 @@
\x80
\xfe
\xff
\xef\xb7\x90
/badutf/8
\xfb\x80\x80\x80\x80
@ -136,74 +137,6 @@
\?\xfc\x84\x80\x80\x80\x80
\?\xfd\x83\x80\x80\x80\x80
/noncharacter/8
\x{fffe}
\x{ffff}
\x{1fffe}
\x{1ffff}
\x{2fffe}
\x{2ffff}
\x{3fffe}
\x{3ffff}
\x{4fffe}
\x{4ffff}
\x{5fffe}
\x{5ffff}
\x{6fffe}
\x{6ffff}
\x{7fffe}
\x{7ffff}
\x{8fffe}
\x{8ffff}
\x{9fffe}
\x{9ffff}
\x{afffe}
\x{affff}
\x{bfffe}
\x{bffff}
\x{cfffe}
\x{cffff}
\x{dfffe}
\x{dffff}
\x{efffe}
\x{effff}
\x{ffffe}
\x{fffff}
\x{10fffe}
\x{10ffff}
\x{fdd0}
\x{fdd1}
\x{fdd2}
\x{fdd3}
\x{fdd4}
\x{fdd5}
\x{fdd6}
\x{fdd7}
\x{fdd8}
\x{fdd9}
\x{fdda}
\x{fddb}
\x{fddc}
\x{fddd}
\x{fdde}
\x{fddf}
\x{fde0}
\x{fde1}
\x{fde2}
\x{fde3}
\x{fde4}
\x{fde5}
\x{fde6}
\x{fde7}
\x{fde8}
\x{fde9}
\x{fdea}
\x{fdeb}
\x{fdec}
\x{fded}
\x{fdee}
\x{fdef}
/\x{100}/8DZ
/\x{1000}/8DZ
@ -310,7 +243,6 @@ correctly, but that messes up comparisons). --/
/-- This tests the stricter UTF-8 check according to RFC 3629. --/
/X/8
\x{0}\x{d7ff}\x{e000}\x{10ffff}
\x{d800}
\x{d800}\?
\x{da00}
@ -427,4 +359,8 @@ correctly, but that messes up comparisons). --/
\x{ff000041}
\x{7f000041}
/(*UTF8)abc/9
/abc/89
/-- End of testinput15 --/

View File

@ -1,6 +1,8 @@
/-- This set of tests is for the 16- and 32-bit library's basic (non-UTF-16
or -32) features that are not compatible with the 8-bit library, or which
give different output in 16- or 32-bit mode. --/
< forbid 8W
/a\Cb/
aXb
@ -293,4 +295,13 @@
/^\x{ffff}{0,3}/i
\x{ffff}
/[^\x00-a]{12,}[^b-\xff]*/BZ
/[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/BZ
/a*[b-\x{200}]?a#a*[b-\x{200}]?b#[a-f]*[g-\x{200}]*#[g-\x{200}]*[a-c]*#[g-\x{200}]*[a-h]*/BZ
/^[\x{1234}\x{4321}]{2,4}?/
\x{1234}\x{1234}\x{1234}
/-- End of testinput17 --/

View File

@ -1,5 +1,7 @@
/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to the
16- and 32-bit library. --/
/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to
the 16- and 32-bit libraries. --/
< forbid W
/<2F><><EFBFBD>xxx/8?DZSS
@ -156,7 +158,6 @@ correctly, but that messes up comparisons). --/
/^[\QĀ\E-\QŐ\E/BZ8
/X/8
\x{0}\x{d7ff}\x{e000}\x{10ffff}
\x{d800}
\x{d800}\?
\x{da00}
@ -169,7 +170,6 @@ correctly, but that messes up comparisons). --/
\x{dfff}\?
\x{110000}
\x{d800}\x{1234}
\x{fffe}
/(*UTF16)\x{11234}/
abcd\x{11234}pqr
@ -207,7 +207,7 @@ correctly, but that messes up comparisons). --/
CDBABC
\x{2000}ABC
/\R*A/SI8
/\R*A/SI8<bsr_unicode>
CDBABC
\x{2028}A
@ -293,4 +293,8 @@ correctly, but that messes up comparisons). --/
/\x{a0}+\s!/8BZT1
\x{a0}\x20!
/(*UTF)abc/9
/abc/89
/-- End of testinput18 --/

View File

@ -7,6 +7,8 @@
NOTE: This is a non-UTF set of tests. When UTF support is needed, use
test 5, and if Unicode Property Support is needed, use test 7. --/
< forbid 8W
/(a)b|/I
@ -313,12 +315,6 @@
*** Failers
fooabar
/This one is here because Perl 5.005_02 doesn't fail it/I
/^(a)?(?(1)a|b)+$/I
*** Failers
a
/This one is here because Perl behaves differently; see also the following/I
/^(a\1?){4}$/I
@ -835,7 +831,13 @@
/x++/DZ
/x{1,3}+/DZ
/x{1,3}+/BZO
/x{1,3}+/BZOi
/[^x]{1,3}+/BZO
/[^x]{1,3}+/BZOi
/(x)*+/DZ
@ -905,6 +907,9 @@
/\U/I
/a{1,3}b/U
ab
/[/I
/[a-/I
@ -1501,6 +1506,8 @@
a2b\CA
** Failers
a1b\CZ\CA
/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
/^(?P<A>a)(?P<A>b)/IJ
ab\CA
@ -1941,10 +1948,7 @@ a random value. /Ix
/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
abcabc1Xabc2XabcXabcabc
/(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
/(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
abcabc1Xabc2XabcXabcabc
/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
/^(?(DEFINE) abc | xyz ) /x
@ -2061,7 +2065,7 @@ a random value. /Ix
/^(a)\g{3/
/^(a)\g{4a}/
/^(a)\g{aa}/
/^a.b/<lf>
a\rb
@ -2516,7 +2520,10 @@ a random value. /Ix
** Failers
ab
/a(?!)+b/
/a(?!)b/BZ
/(?!)?a/BZ
ab
/a(*FAIL)+b/
@ -2541,7 +2548,9 @@ a random value. /Ix
abcxypqr\Y
/(*NO_START_OPT)xyz/C
abcxyz
abcxyz
/(*NO_AUTO_POSSESS)a+b/BZ
/xyz/CY
abcxyz
@ -2939,7 +2948,7 @@ a random value. /Ix
xxxxabcde\P
xxxxabcde\P\P
/-- This is not in the Perl >= 5.10 test because Perl seems currently to be
/-- This is not in the Perl-compatible test because Perl seems currently to be
broken and not behaving as specified in that it *does* bumpalong after
hitting (*COMMIT). --/
@ -2985,28 +2994,12 @@ a random value. /Ix
/^(?&t)*(?(DEFINE)(?<t>.))$/BZ
/ -- The first four of these are not in the Perl >= 5.10 test because Perl
documents that the use of \K in assertions is "not well defined". The
last is here because Perl gives the match as "b" rather than "ab". I
/ -- This one is here because Perl gives the match as "b" rather than "ab". I
believe this to be a Perl bug. --/
/(?=a\Kb)ab/
ab
/(?!a\Kb)ac/
ac
/^abc(?<=b\Kc)d/
abcd
/^abc(?<!b\Kq)d/
abcd
/(?>a\Kb)z|(ab)/
ab
/----------------------/
/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
/abc(*MARK:)pqr/
@ -3021,7 +3014,7 @@ a random value. /Ix
/A(*COMMIT)B/+K
ACABX
/--- These should be different, but in Perl 5.11 are not, which I think
/--- These should be different, but in Perl they are not, which I think
is a bug in Perl. ---/
/A(*THEN)B|A(*THEN)C/K
@ -3030,12 +3023,6 @@ a random value. /Ix
/A(*PRUNE)B|A(*PRUNE)C/K
AC
/--- This should fail; the SKIP advances by one, but when we get to AC, the
PRUNE kills it. Perl behaves differently. ---/
/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
AAAC
/--- Mark names can be duplicated. Perl doesn't give a mark for this one,
though PCRE does. ---/
@ -3061,7 +3048,7 @@ with \Y. ---/
/^(ab (c+(*FAIL)cd) | xyz)/x
abcccd
/--- Perl 5.11 gets some of these wrong ---/
/--- Perl gets some of these wrong ---/
/(?>.(*ACCEPT))*?5/
abcde
@ -3121,14 +3108,6 @@ with \Y. ---/
/X\H++\R/BZ
X\x0d\x0a
/-- Perl treats this one differently, not failing the second string. I believe
that is a bug in Perl. --/
/^((abc|abcx)(*THEN)y|abcd)/
abcd
*** Failers
abcxy
/(?<=abc)def/
abc\P\P
@ -3427,7 +3406,7 @@ with \Y. ---/
/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
/a(*SKIP)c|b(*ACCEPT)|/+SI
/a(*SKIP)c|b(*ACCEPT)|/+S!I
a
/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
@ -3453,52 +3432,6 @@ with \Y. ---/
/a(?:.(*THEN:ABC))*?a/ims
\Mabbbbbbbbbbbbbbbbbbbbba
/-- These tests are in agreement with development Perl 5.015, which has fixed
some things, but they don't all work with 5.012, so they aren't in the
Perl-compatible tests. Those after the first come from Perl's own test
files. --/
/^((yes|no)(*THEN)(*F))?/
yes
/(A (.*) C? (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) C? (*THEN) | A D) z/x
AbcdCBefgBhiBqz
/(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) C? (*THEN) | A D) \s* z/x
AbcdCBefgBhiBqz
/(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) (?:C|) (*THEN) | A D) z/x
AbcdCBefgBhiBqz
/(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) C{0,6} (*THEN) | A D) z/x
AbcdCBefgBhiBqz
/(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
AbcdCEBefgBhiBqz
/(A (.*) (CE){0,6} (*THEN) | A D) z/x
AbcdCEBefgBhiBqz
/(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
/(A (.*) (CE*){0,6} (*THEN) | A D) z/x
AbcdCBefgBhiBqz
/-----------------------------------------------/
/^(?>a+)(?>(z+))\w/BZ
aaaazzzzb
** Failers
@ -3564,6 +3497,8 @@ AbcdCBefgBhiBqz
/a[B-\Nc]/
/a[B\Nc]/
/(a)(?2){0,1999}?(b)/
/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
@ -3751,24 +3686,9 @@ replaced by single letters. --/
\r\r\r\P
\r\r\r\P\P
/-- These two are here because Perl does not match: it seems to allow the
COMMIT to escape from the assertion. --/
/(?=a(*COMMIT)b|ac)ac|ac/
ac
/(?=a(*COMMIT)b|(ac)) ac | (a)c/x
ac
"AB(C(D))(E(F))?(?(?=\2)(?=\4))"
ABCDGHI\O03
/-- This one is here because Perl does not confine the *COMMIT to the
assertion, and therefore fails the entire subroutine call. --/
/((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
ac
/-- These are all run as real matches in test 1; here we are just checking the
settings of the anchored and startline bits. --/
@ -3810,4 +3730,336 @@ settings of the anchored and startline bits. --/
/.?/S!I
/(?:(a)+(?C1)bb|aa(?C2)b)/
aab\C+
/(?:(a)++(?C1)bb|aa(?C2)b)/
aab\C+
/(?:(?>(a))(?C1)bb|aa(?C2)b)/
aab\C+
/(?:(?1)(?C1)x|ab(?C2))((a)){0}/
aab\C+
/(?1)(?C1)((a)(?C2)){0}/
aab\C+
/(?:(a)+(?C1)bb|aa(?C2)b)++/
aab\C+
aab\C+\O2
/(ab)x|ab/
ab\O3
ab\O2
/(ab)/
ab\O3
ab\O2
/(?<=123)(*MARK:xx)abc/K
xxxx123a\P\P
xxxx123a\P
/123\Kabc/
xxxx123a\P\P
xxxx123a\P
/^(?(?=a)aa|bb)/C
bb
/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
bb
/-- Perl seems to have a bug with this one --/
/aaaaa(*COMMIT)(*PRUNE)b|a+c/
aaaaaac
/-- Here are some that Perl treats differently because of the way it handles
backtracking verbs. --/
/(?!a(*COMMIT)b)ac|ad/
ac
ad
/^(?!a(*THEN)b|ac)../
ac
ad
/^(?=a(*THEN)b|ac)/
ac
/\A.*?(?:a|b(*THEN)c)/
ba
/\A.*?(?:a|b(*THEN)c)++/
ba
/\A.*?(?:a|b(*THEN)c|d)/
ba
/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
aac
/\A.*?(a|b(*THEN)c)/
ba
/^(A(*THEN)B|A(*THEN)D)/
AD
/(?!b(*THEN)a)bn|bnn/
bnn
/(?(?=b(*SKIP)a)bn|bnn)/
bnn
/(?=b(*THEN)a|)bn|bnn/
bnn
/-------------------------/
/(*LIMIT_MATCH=12bc)abc/
/(*LIMIT_MATCH=4294967290)abc/
/(*LIMIT_RECURSION=4294967280)abc/I
/(a+)*zz/
aaaaaaaaaaaaaz
aaaaaaaaaaaaaz\q3000
/(a+)*zz/S-
aaaaaaaaaaaaaz\Q10
/(*LIMIT_MATCH=3000)(a+)*zz/I
aaaaaaaaaaaaaz
aaaaaaaaaaaaaz\q60000
/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
aaaaaaaaaaaaaz
/(*LIMIT_MATCH=60000)(a+)*zz/I
aaaaaaaaaaaaaz
aaaaaaaaaaaaaz\q3000
/(*LIMIT_RECURSION=10)(a+)*zz/IS-
aaaaaaaaaaaaaz
aaaaaaaaaaaaaz\Q1000
/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
aaaaaaaaaaaaaz
/(*LIMIT_RECURSION=1000)(a+)*zz/IS-
aaaaaaaaaaaaaz
aaaaaaaaaaaaaz\Q10
/-- This test causes a segfault with Perl 5.18.0 --/
/^(?=(a)){0}b(?1)/
backgammon
/(?|(?<n>f)|(?<n>b))/JI
/(?<a>abc)(?<a>z)\k<a>()/JDZS
/a*[bcd]/BZ
/[bcd]*a/BZ
/-- A complete set of tests for auto-possessification of character types --/
/\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
/\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
/\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
/\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
/\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
/\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
/\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
/\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
/\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
/\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx
/\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx
/\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx
/ a+\D a+\d a+\S a+\s a+\W a+\w a+. a+\C a+\R a+\H a+\h a+\V a+\v a+\Z a+\z a+$/BZx
/\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx
/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZx
/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZxs
/\D+$ \d+$ \S+$ \s+$ \W+$ \w+$ \C+$ \R+$ \H+$ \h+$ \V+$ \v+$ a+$ \n+$ .+$ .+$/BZxm
/(?=a+)a(a+)++a/BZ
/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
/[ab]*/BZ
aaaa
/[ab]*?/BZ
aaaa
/[ab]?/BZ
aaaa
/[ab]??/BZ
aaaa
/[ab]+/BZ
aaaa
/[ab]+?/BZ
aaaa
/[ab]{2,3}/BZ
aaaa
/[ab]{2,3}?/BZ
aaaa
/[ab]{2,}/BZ
aaaa
/[ab]{2,}?/BZ
aaaa
/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
/[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ
/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
/[a-c]*d/DZS
/[a-c]+d/DZS
/[a-c]?d/DZS
/[a-c]{4,6}d/DZS
/[a-c]{0,6}d/DZS
/-- End of special auto-possessive tests --/
/^A\o{1239}B/
A\123B
/^A\oB/
/^A\x{zz}B/
/^A\x{12Z/
/^A\x{/
/[ab]++/BZO
/[^ab]*+/BZO
/a{4}+/BZO
/a{4}+/BZOi
/[a-[:digit:]]+/
/[A-[:digit:]]+/
/[a-[.xxx.]]+/
/[a-[=xxx=]]+/
/[a-[!xxx!]]+/
/[A-[!xxx!]]+/
A]]]
/[a-\d]+/
/(?<0abc>xx)/
/(?&1abc)xx(?<1abc>y)/
/(?<ab-cd>xx)/
/(?'0abc'xx)/
/(?P<0abc>xx)/
/\k<5ghj>/
/\k'5ghj'/
/\k{2fgh}/
/(?P=8yuki)/
/\g{4df}/
/(?&1abc)xx(?<1abc>y)/
/(?P>1abc)xx(?<1abc>y)/
/\g'3gh'/
/\g<5fg>/
/(?(<4gh>)abc)/
/(?('4gh')abc)/
/(?(4gh)abc)/
/(?(R&6yh)abc)/
/-- Test the ugly "start or end of word" compatibility syntax --/
/[[:<:]]red[[:>:]]/BZ
little red riding hood
a /red/ thing
red is a colour
put it all on red
** Failers
no reduction
Alfred Winifred
/[a[:<:]] should give error/
/(?=ab\K)/+
abcd
/abcd/f<lf>
xx\nxabcd
/ -- Test stack check external calls --/
/(((((a)))))/Q0
/(((((a)))))/Q1
/(((((a)))))/Q
/-- End of testinput2 --/

View File

@ -1,9 +1,19 @@
/-- Tests for reloading pre-compile patterns. The first one gives an error
right away. The others require the linke size to be 2. */
/-- Tests for reloading pre-compiled patterns. The first one gives an error
right away, and can be any old pattern compiled in 8-bit mode ("abc" is
typical). The others require the link size to be 2. */x
<!testsaved8
/-- Generated from: ^[aL](?P<name>(?:[AaLl]+)[^xX-]*?)(?P<other>[\x{150}-\x{250}\x{300}]|[^\x{800}aAs-uS-U\x{d800}-\x{dfff}])++[^#\b\x{500}\x{1000}]{3,5}$ --/
%-- Generated from:
/^[aL](?P<name>(?:[AaLl]+)[^xX-]*?)(?P<other>[\x{150}-\x{250}\x{300}]|
[^\x{800}aAs-uS-U\x{d800}-\x{dfff}])++[^#\b\x{500}\x{1000}]{3,5}$
/x
In 16-bit mode with options: S>testdata/saved16LE-1
FS>testdata/saved16BE-1
In 32-bit mode with options: S>testdata/saved32LE-1
FS>testdata/saved32BE-1
--%x
<!testsaved16LE-1

View File

@ -1,6 +1,16 @@
/-- Tests for reloading pre-compile patterns with UTF-16 or UTF-32 support. */
/-- Generated from: (?P<cbra1>[aZ\x{400}-\x{10ffff}]{4,}[\x{f123}\x{10039}\x{20000}-\x{21234}]?|[A-Cx-z\x{100000}-\x{1000a7}\x{101234}])(?<cb2>[^az]) --/8
%-- Generated from:
/(?P<cbra1>[aZ\x{400}-\x{10ffff}]{4,}
[\x{f123}\x{10039}\x{20000}-\x{21234}]?|
[A-Cx-z\x{100000}-\x{1000a7}\x{101234}])
(?<cb2>[^az])/x
In 16-bit mode with options: S8>testdata/saved16LE-2
FS8>testdata/saved16BE-2
In 32-bit mode with options: S8>testdata/saved32LE-2
FS8>testdata/saved32BE-2
--%8x
<!testsaved16LE-2

View File

@ -1,5 +1,7 @@
/-- Tests for the 16-bit library only */
< forbid 8W
/-- Check maximum non-UTF character size --/
/\x{ffff}/
@ -7,6 +9,8 @@
/\x{10000}/
/\o{20000}/
/-- Check character ranges --/
/[\H]/BZSI

View File

@ -1,72 +1,6 @@
/-- Tests for the 16-bit library with UTF-16 support only */
/noncharacter/8
\x{fffe}
\x{ffff}
\x{1fffe}
\x{1ffff}
\x{2fffe}
\x{2ffff}
\x{3fffe}
\x{3ffff}
\x{4fffe}
\x{4ffff}
\x{5fffe}
\x{5ffff}
\x{6fffe}
\x{6ffff}
\x{7fffe}
\x{7ffff}
\x{8fffe}
\x{8ffff}
\x{9fffe}
\x{9ffff}
\x{afffe}
\x{affff}
\x{bfffe}
\x{bffff}
\x{cfffe}
\x{cffff}
\x{dfffe}
\x{dffff}
\x{efffe}
\x{effff}
\x{ffffe}
\x{fffff}
\x{10fffe}
\x{10ffff}
\x{fdd0}
\x{fdd1}
\x{fdd2}
\x{fdd3}
\x{fdd4}
\x{fdd5}
\x{fdd6}
\x{fdd7}
\x{fdd8}
\x{fdd9}
\x{fdda}
\x{fddb}
\x{fddc}
\x{fddd}
\x{fdde}
\x{fddf}
\x{fde0}
\x{fde1}
\x{fde2}
\x{fde3}
\x{fde4}
\x{fde5}
\x{fde6}
\x{fde7}
\x{fde8}
\x{fde9}
\x{fdea}
\x{fdeb}
\x{fdec}
\x{fded}
\x{fdee}
\x{fdef}
< forbid W
/bad/8
\x{d800}

View File

@ -1,5 +1,7 @@
/-- Tests for the 32-bit library only */
< forbid 8W
/-- Check maximum character size --/
/\x{110000}/
@ -10,6 +12,16 @@
/\x{ffffffff}/
/\x{100000000}/
/\o{17777777777}/
/\o{20000000000}/
/\o{37777777777}/
/\o{40000000000}/
/\x{7fffffff}\x{7fffffff}/I
/\x{80000000}\x{80000000}/I

View File

@ -1,80 +1,14 @@
/-- Tests for the 32-bit library with UTF-32 support only */
< forbid W
/-- Non-UTF characters --/
/\x{110000}/8
/\o{4200000}/8
/\C/8
\x{110000}
/-- Invalid UTF-32 --/
/noncharacter/8
\x{fffe}
\x{ffff}
\x{1fffe}
\x{1ffff}
\x{2fffe}
\x{2ffff}
\x{3fffe}
\x{3ffff}
\x{4fffe}
\x{4ffff}
\x{5fffe}
\x{5ffff}
\x{6fffe}
\x{6ffff}
\x{7fffe}
\x{7ffff}
\x{8fffe}
\x{8ffff}
\x{9fffe}
\x{9ffff}
\x{afffe}
\x{affff}
\x{bfffe}
\x{bffff}
\x{cfffe}
\x{cffff}
\x{dfffe}
\x{dffff}
\x{efffe}
\x{effff}
\x{ffffe}
\x{fffff}
\x{10fffe}
\x{10ffff}
\x{fdd0}
\x{fdd1}
\x{fdd2}
\x{fdd3}
\x{fdd4}
\x{fdd5}
\x{fdd6}
\x{fdd7}
\x{fdd8}
\x{fdd9}
\x{fdda}
\x{fddb}
\x{fddc}
\x{fddd}
\x{fdde}
\x{fddf}
\x{fde0}
\x{fde1}
\x{fde2}
\x{fde3}
\x{fde4}
\x{fde5}
\x{fde6}
\x{fde7}
\x{fde8}
\x{fde9}
\x{fdea}
\x{fdeb}
\x{fdec}
\x{fded}
\x{fdee}
\x{fdef}
/-- End of testinput26 --/

View File

@ -1,6 +1,11 @@
/-- This set of tests checks local-specific features, using the fr_FR locale.
It is not Perl-compatible. There is different version called wintestinput3
f or use on Windows, where the locale is called "french". --/
/-- This set of tests checks local-specific features, using the "fr_FR" locale.
It is not Perl-compatible. When run via RunTest, the locale is edited to
be whichever of "fr_FR", "french", or "fr" is found to exist. There is
different version of this file called wintestinput3 for use on Windows,
where the locale is called "french" and the tests are run using
RunTest.bat. --/
< forbid 8W
/^[\w]+/
*** Failers

View File

@ -1,6 +1,8 @@
/-- This set of tests is for UTF support, excluding Unicode properties. It is
compatible with all versions of Perl >= 5.10 and both the 8-bit and 16-bit
PCRE libraries. --/
< forbid 9?=ABCDEFfGILMNPTUWXZ<
/a.b/8
acb
@ -621,4 +623,103 @@
/a(*:a£b)/8K
abc
/-- Noncharacters --/
/./8
\x{fffe}
\x{ffff}
\x{1fffe}
\x{1ffff}
\x{2fffe}
\x{2ffff}
\x{3fffe}
\x{3ffff}
\x{4fffe}
\x{4ffff}
\x{5fffe}
\x{5ffff}
\x{6fffe}
\x{6ffff}
\x{7fffe}
\x{7ffff}
\x{8fffe}
\x{8ffff}
\x{9fffe}
\x{9ffff}
\x{afffe}
\x{affff}
\x{bfffe}
\x{bffff}
\x{cfffe}
\x{cffff}
\x{dfffe}
\x{dffff}
\x{efffe}
\x{effff}
\x{ffffe}
\x{fffff}
\x{10fffe}
\x{10ffff}
\x{fdd0}
\x{fdd1}
\x{fdd2}
\x{fdd3}
\x{fdd4}
\x{fdd5}
\x{fdd6}
\x{fdd7}
\x{fdd8}
\x{fdd9}
\x{fdda}
\x{fddb}
\x{fddc}
\x{fddd}
\x{fdde}
\x{fddf}
\x{fde0}
\x{fde1}
\x{fde2}
\x{fde3}
\x{fde4}
\x{fde5}
\x{fde6}
\x{fde7}
\x{fde8}
\x{fde9}
\x{fdea}
\x{fdeb}
\x{fdec}
\x{fded}
\x{fdee}
\x{fdef}
/^\d*\w{4}/8
1234
123
/^[^b]*\w{4}/8
aaaa
aaa
/^[^b]*\w{4}/8i
aaaa
aaa
/^\x{100}*.{4}/8
\x{100}\x{100}\x{100}\x{100}
\x{100}\x{100}\x{100}
/^\x{100}*.{4}/8i
\x{100}\x{100}\x{100}\x{100}
\x{100}\x{100}\x{100}
/^a+[a\x{200}]/8
aa
/^.\B.\B./8
\x{10123}\x{10124}\x{10125}
/^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/8
#\x{10000}#\x{100}#\x{10ffff}#
/-- End of testinput4 --/

View File

@ -1,21 +1,37 @@
/-- This set of tests checks the API, internals, and non-Perl stuff for UTF
support, excluding Unicode properties. However, tests that give different
results in 8-bit and 16-bit modes are excluded (see tests 16 and 17). --/
< forbid W
/\x{110000}/8DZ
/\o{4200000}/8DZ
/\x{ffffffff}/8
/\o{37777777777}/8
/\x{100000000}/8
/\o{77777777777}/8
/\x{d800}/8
/\o{154000}/8
/\x{dfff}/8
/\o{157777}/8
/\x{d7ff}/8
/\o{153777}/8
/\x{e000}/8
/\o{170000}/8
/^\x{100}a\x{1234}/8
\x{100}a\x{1234}bcd
@ -769,4 +785,9 @@
/[\u0100-\u0200]/<JS>8BZ
/\ud800/<JS>8
/^a+[a\x{200}]/8BZ
aa
/[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/8BZ

View File

@ -1,5 +1,7 @@
/-- This set of tests is for Unicode property support. It is compatible with
Perl >= 5.15. --/
< forbid 9?=ABCDEFfGILMNPTUXZ<
/^\pC\pL\pM\pN\pP\pS\pZ</8
\x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
@ -325,12 +327,6 @@
** Failers
abc
/\p{Lu}/8i
A
aZ
** Failers
abc
/\p{Ll}/8
a
Az
@ -425,6 +421,7 @@
/^[\p{Arabic}]/8
\x{06e9}
\x{060b}
\x{061c}
** Failers
X\x{06e9}
@ -882,6 +879,15 @@
\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
/\X*Z/8Y
A\x{300}
/\X*(.)/8Y
A\x{1111}\x{ae4c}\x{1169}
/\X?abc/8Y
\xff\x7f\x00\x00\x03\x00\x41\xcc\x80\x41\x{300}\x61\x62\x63\x00\>06\?
/-- --/
/\x{1e9e}+/8i
@ -1316,4 +1322,175 @@
/\x{017f}+/8i
\x{0053}\x{0073}\x{017f}
/^\p{Any}*\d{4}/8
1234
123
/^\X*\w{4}/8
1234
123
/^A\s+Z/8W
A\x{2005}Z
A\x{85}\x{180e}\x{2005}Z
/^A[\s]+Z/8W
A\x{2005}Z
A\x{85}\x{180e}\x{2005}Z
/^[[:graph:]]+$/8W
Letter:ABC
Mark:\x{300}\x{1d172}\x{1d17b}
Number:9\x{660}
Punctuation:\x{66a},;
Symbol:\x{6de}<>\x{fffc}
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
\x{feff}
\x{fff9}\x{fffa}\x{fffb}
\x{110bd}
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
\x{e0001}
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
** Failers
\x{09}
\x{0a}
\x{1D}
\x{20}
\x{85}
\x{a0}
\x{61c}
\x{1680}
\x{180e}
\x{2028}
\x{2029}
\x{202f}
\x{2065}
\x{2066}
\x{2067}
\x{2068}
\x{2069}
\x{3000}
\x{e0002}
\x{e001f}
\x{e0080}
/^[[:print:]]+$/8W
Space: \x{a0}
\x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
\x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
\x{202f}\x{205f}
\x{3000}
Letter:ABC
Mark:\x{300}\x{1d172}\x{1d17b}
Number:9\x{660}
Punctuation:\x{66a},;
Symbol:\x{6de}<>\x{fffc}
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
\x{180e}
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
\x{202f}
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
\x{feff}
\x{fff9}\x{fffa}\x{fffb}
\x{110bd}
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
\x{e0001}
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
** Failers
\x{09}
\x{1D}
\x{85}
\x{61c}
\x{2028}
\x{2029}
\x{2065}
\x{2066}
\x{2067}
\x{2068}
\x{2069}
\x{e0002}
\x{e001f}
\x{e0080}
/^[[:punct:]]+$/8W
\$+<=>^`|~
!\"#%&'()*,-./:;?@[\\]_{}
\x{a1}\x{a7}
\x{37e}
** Failers
abcde
/^[[:^graph:]]+$/8W
\x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}\x{180e}
\x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069}
\x{3000}\x{e0002}\x{e001f}\x{e0080}
** Failers
Letter:ABC
Mark:\x{300}\x{1d172}\x{1d17b}
Number:9\x{660}
Punctuation:\x{66a},;
Symbol:\x{6de}<>\x{fffc}
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
\x{feff}
\x{fff9}\x{fffa}\x{fffb}
\x{110bd}
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
\x{e0001}
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
/^[[:^print:]]+$/8W
\x{09}\x{1D}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067}
\x{2068}\x{2069}\x{e0002}\x{e001f}\x{e0080}
** Failers
Space: \x{a0}
\x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
\x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
\x{202f}\x{205f}
\x{3000}
Letter:ABC
Mark:\x{300}\x{1d172}\x{1d17b}
Number:9\x{660}
Punctuation:\x{66a},;
Symbol:\x{6de}<>\x{fffc}
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
\x{180e}
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
\x{202f}
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
\x{feff}
\x{fff9}\x{fffa}\x{fffb}
\x{110bd}
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
\x{e0001}
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
/^[[:^punct:]]+$/8W
abcde
** Failers
\$+<=>^`|~
!\"#%&'()*,-./:;?@[\\]_{}
\x{a1}\x{a7}
\x{37e}
/[RST]+/8iW
Ss\x{17f}
/[R-T]+/8iW
Ss\x{17f}
/[q-u]+/8iW
Ss\x{17f}
/-- End of testinput6 --/

View File

@ -100,11 +100,30 @@
/\p{Cc}{2}+/8BZ
/^\p{Cf}/8
\x{180e}
\x{061c}
\x{2066}
\x{2067}
\x{2068}
\x{2069}
/^\p{Cs}/8
\?\x{dfff}
** Failers
\x{09f}
/^\p{Mn}/8
\x{1a1b}
/^\p{Pe}/8
\x{2309}
\x{230b}
/^\p{Ps}/8
\x{2308}
\x{230a}
/^\p{Sc}+/8
$\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
\x{9f2}
@ -116,15 +135,15 @@
\ \
\x{a0}
\x{1680}
\x{180e}
\x{2000}
\x{2001}
** Failers
\x{2028}
\x{200d}
/-- These four are here rather than in test 6 because Perl has problems with
the negative versions of the properties. --/
/-- These are here rather than in test 6 because Perl has problems with
the negative versions of the properties and behaves has changed how
it behaves for caseless matching. --/
/\p{^Lu}/8i
1234
@ -149,6 +168,12 @@
a
\x{1d00}
/\p{Lu}/8i
A
aZ
** Failers
abc
/[\x{c0}\x{391}]/8i
\x{c0}
\x{e0}
@ -668,5 +693,146 @@ of case for anything other than the ASCII letters. --/
/is{2}t/8i
iskt
/-- This property is a PCRE special --/
/^\p{Xuc}/8
$abc
@abc
`abc
\x{1234}abc
** Failers
abc
/^\p{Xuc}+/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}+?/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}+?\*/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}++/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}{3,5}/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\p{Xuc}{3,5}?/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^[\p{Xuc}]/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^[\p{Xuc}]+/8
$@`\x{a0}\x{1234}\x{e000}**
** Failers
\x{9f}
/^\P{Xuc}/8
abc
** Failers
$abc
@abc
`abc
\x{1234}abc
/^[\P{Xuc}]/8
abc
** Failers
$abc
@abc
`abc
\x{1234}abc
/-- Some auto-possessification tests --/
/\pN+\z/BZ
/\PN+\z/BZ
/\pN+/BZ
/\PN+/BZ
/\p{Any}+\p{Any} \p{Any}+\P{Any} \p{Any}+\p{L&} \p{Any}+\p{L} \p{Any}+\p{Lu} \p{Any}+\p{Han} \p{Any}+\p{Xan} \p{Any}+\p{Xsp} \p{Any}+\p{Xps} \p{Xwd}+\p{Any} \p{Any}+\p{Xuc}/BWZx
/\p{L&}+\p{Any} \p{L&}+\p{L&} \P{L&}+\p{L&} \p{L&}+\p{L} \p{L&}+\p{Lu} \p{L&}+\p{Han} \p{L&}+\p{Xan} \p{L&}+\P{Xan} \p{L&}+\p{Xsp} \p{L&}+\p{Xps} \p{Xwd}+\p{L&} \p{L&}+\p{Xuc}/BWZx
/\p{N}+\p{Any} \p{N}+\p{L&} \p{N}+\p{L} \p{N}+\P{L} \p{N}+\P{N} \p{N}+\p{Lu} \p{N}+\p{Han} \p{N}+\p{Xan} \p{N}+\p{Xsp} \p{N}+\p{Xps} \p{Xwd}+\p{N} \p{N}+\p{Xuc}/BWZx
/\p{Lu}+\p{Any} \p{Lu}+\p{L&} \p{Lu}+\p{L} \p{Lu}+\p{Lu} \P{Lu}+\p{Lu} \p{Lu}+\p{Nd} \p{Lu}+\P{Nd} \p{Lu}+\p{Han} \p{Lu}+\p{Xan} \p{Lu}+\p{Xsp} \p{Lu}+\p{Xps} \p{Xwd}+\p{Lu} \p{Lu}+\p{Xuc}/BWZx
/\p{Han}+\p{Lu} \p{Han}+\p{L&} \p{Han}+\p{L} \p{Han}+\p{Lu} \p{Han}+\p{Arabic} \p{Arabic}+\p{Arabic} \p{Han}+\p{Xan} \p{Han}+\p{Xsp} \p{Han}+\p{Xps} \p{Xwd}+\p{Han} \p{Han}+\p{Xuc}/BWZx
/\p{Xan}+\p{Any} \p{Xan}+\p{L&} \P{Xan}+\p{L&} \p{Xan}+\p{L} \p{Xan}+\p{Lu} \p{Xan}+\p{Han} \p{Xan}+\p{Xan} \p{Xan}+\P{Xan} \p{Xan}+\p{Xsp} \p{Xan}+\p{Xps} \p{Xwd}+\p{Xan} \p{Xan}+\p{Xuc}/BWZx
/\p{Xsp}+\p{Any} \p{Xsp}+\p{L&} \p{Xsp}+\p{L} \p{Xsp}+\p{Lu} \p{Xsp}+\p{Han} \p{Xsp}+\p{Xan} \p{Xsp}+\p{Xsp} \P{Xsp}+\p{Xsp} \p{Xsp}+\p{Xps} \p{Xwd}+\p{Xsp} \p{Xsp}+\p{Xuc}/BWZx
/\p{Xwd}+\p{Any} \p{Xwd}+\p{L&} \p{Xwd}+\p{L} \p{Xwd}+\p{Lu} \p{Xwd}+\p{Han} \p{Xwd}+\p{Xan} \p{Xwd}+\p{Xsp} \p{Xwd}+\p{Xps} \p{Xwd}+\p{Xwd} \p{Xwd}+\P{Xwd} \p{Xwd}+\p{Xuc}/BWZx
/\p{Xuc}+\p{Any} \p{Xuc}+\p{L&} \p{Xuc}+\p{L} \p{Xuc}+\p{Lu} \p{Xuc}+\p{Han} \p{Xuc}+\p{Xan} \p{Xuc}+\p{Xsp} \p{Xuc}+\p{Xps} \p{Xwd}+\p{Xuc} \p{Xuc}+\p{Xuc} \p{Xuc}+\P{Xuc}/BWZx
/\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/BWZx
/\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/BWZx
/\p{L}+\p{Xan} \p{N}+\p{Xan} \p{C}+\p{Xan} \P{L}+\p{Xan} \p{N}+\p{Xan} \P{C}+\p{Xan} \p{L}+\P{Xan}/BWZx
/\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/BWZx
/\p{Lu}+\p{Xan} \p{Nd}+\p{Xan} \p{Cs}+\p{Xan} \P{Lt}+\p{Xan} \p{Nl}+\p{Xan} \P{Cc}+\p{Xan} \p{Lt}+\P{Xan}/BWZx
/\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/BWZx
/\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/BWZx
/\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/BWZx
/\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/BWZx
/\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/BWZx
/\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/BWZx
/-- End auto-possessification tests --/
/\w+/8CWBZ
abcd
/[\p{N}]?+/BZO
/[\p{L}ab]{2,3}+/BZO
/\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \C+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/BZx
/.+\X/BZxs
/\X+$/BZxm
/\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\C \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/BZx
/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/8WBZ
/[RST]+/8iWBZ
/[R-T]+/8iWBZ
/[Q-U]+/8iWBZ
/-- End of testinput7 --/

View File

@ -1,5 +1,8 @@
/-- This set of tests check the DFA matching functionality of pcre_dfa_exec().
The -dfa flag must be used with pcretest when running it. --/
/-- This set of tests check the DFA matching functionality of pcre_dfa_exec(),
excluding UTF and Unicode property support. The -dfa flag must be used with
pcretest when running it. --/
< forbid 8W
/abc/
abc
@ -16,7 +19,7 @@
ac
ab
/a*/
/a*/O
a
aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@ -177,19 +180,19 @@
ayzq
axyzq
/[^a]+/
/[^a]+/O
bac
bcdefax
*** Failers
aaaaa
/[^a]*/
/[^a]*/O
bac
bcdefax
*** Failers
aaaaa
/[^a]{3,5}/
/[^a]{3,5}/O
xyz
awxyza
abcdefa
@ -937,16 +940,16 @@
*** Failers
the abc
/^[ab]{1,3}(ab*|b)/
/^[ab]{1,3}(ab*|b)/O
aabbbbb
/^[ab]{1,3}?(ab*|b)/
/^[ab]{1,3}?(ab*|b)/O
aabbbbb
/^[ab]{1,3}?(ab*?|b)/
/^[ab]{1,3}?(ab*?|b)/O
aabbbbb
/^[ab]{1,3}(ab*?|b)/
/^[ab]{1,3}(ab*?|b)/O
aabbbbb
/ (?: [\040\t] | \(
@ -1923,14 +1926,16 @@
abc\100\060
abc\100\60
/abc\81/
abc\081
abc\0\x38\x31
/abc\91/
abc\091
abc\0\x39\x31
/^A\8B\9C$/
A8B9C
*** Failers
A\08B\09C
/^[A\8B\9C]+$/
A8B9C
*** Failers
A8B9C\x00
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
abcdefghijk\12S
@ -2049,13 +2054,13 @@
/foo(.*?)bar/
The food is under the bar in the barn.
/(.*)(\d*)/
/(.*)(\d*)/O
I have 2 numbers: 53147
/(.*)(\d+)/
I have 2 numbers: 53147
/(.*?)(\d*)/
/(.*?)(\d*)/O
I have 2 numbers: 53147
/(.*?)(\d+)/
@ -3825,13 +3830,6 @@
/a*/g
abbab
/^[a-\d]/
abcde
-things
0digit
*** Failers
bcdef
/^[\d-a]/
abcde
-things
@ -4699,7 +4697,7 @@
/(?(R)a*(?1)|((?R))b)/
aaaabcde
/(a+)/
/(a+)/O
\O6aaaa
\O8aaaa
@ -4798,4 +4796,39 @@
xxxxxxxxabcd
xx\xa0xxxxxabcd
/abcd/
abcd\O0
/-- These tests show up auto-possessification --/
/[ab]*/
aaaa
/[ab]*?/
aaaa
/[ab]?/
aaaa
/[ab]??/
aaaa
/[ab]+/
aaaa
/[ab]+?/
aaaa
/[ab]{2,3}/
aaaa
/[ab]{2,3}?/
aaaa
/[ab]{2,}/
aaaa
/[ab]{2,}?/
aaaa
/-- End of testinput8 --/

View File

@ -1,6 +1,8 @@
/-- This set of tests checks UTF-8 support with the DFA matching functionality
of pcre_dfa_exec(). The -dfa flag must be used with pcretest when running
it. --/
of pcre_dfa_exec(), excluding Unicode property support. The -dfa flag must
be used with pcretest when running it. --/
< forbid W
/\x{100}ab/8
\x{100}ab
@ -239,16 +241,16 @@
/\x{100}{3,5}/8
abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
/\x{100}{3,}/8
/\x{100}{3,}/8O
abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
/(?<=a\x{100}{2}b)X/8
Xyyya\x{100}\x{100}bXzzz
/\D*/8
/\D*/8O
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
/\D*/8
/\D*/8O
\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
/\D/8
@ -584,16 +586,16 @@
a\n\n\n\rb
a\r
/\h+\V?\v{3,4}/8
/\h+\V?\v{3,4}/8O
\x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
/\V?\v{3,4}/8
/\V?\v{3,4}/8O
\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
/\h+\V?\v{3,4}/8
/\h+\V?\v{3,4}/8O
>\x09\x20\x{a0}X\x0a\x0a\x0a<
/\V?\v{3,4}/8
/\V?\v{3,4}/8O
>\x09\x20\x{a0}X\x0a\x0a\x0a<
/\H\h\V\v/8
@ -602,7 +604,7 @@
** Failers
\x{a0} X\x0a
/\H*\h+\V?\v{3,4}/8
/\H*\h+\V?\v{3,4}/8O
\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
@ -615,7 +617,7 @@
** Failers
\x{2009} X\x0a
/\H*\h+\V?\v{3,4}/8
/\H*\h+\V?\v{3,4}/8O
\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\x20\x{202f}\x0a\x0b\x0c

View File

@ -1,6 +1,8 @@
/-- This set of tests is for features that are compatible with all versions of
Perl >= 5.10, in non-UTF-8 mode. It should run clean for both the 8-bit and
16-bit PCRE libraries. --/
Perl >= 5.10, in non-UTF-8 mode. It should run clean for the 8-bit, 16-bit,
and 32-bit PCRE libraries. --/
< forbid 89?=ABCDEFfGILMNPTUWXZ<
/the quick brown fox/
the quick brown fox
@ -2149,18 +2151,35 @@ No match
abc\100\60
0: abc@0
1: abc
/^A\8B\9C$/
A8B9C
0: A8B9C
*** Failers
No match
A\08B\09C
No match
/^(A)(B)(C)(D)(E)(F)(G)(H)(I)\8\9$/
ABCDEFGHIHI
0: ABCDEFGHIHI
1: A
2: B
3: C
4: D
5: E
6: F
7: G
8: H
9: I
/abc\81/
abc\081
0: abc\x0081
abc\0\x38\x31
0: abc\x0081
/abc\91/
abc\091
0: abc\x0091
abc\0\x39\x31
0: abc\x0091
/^[A\8B\9C]+$/
A8B9C
0: A8B9C
*** Failers
No match
A8B9C\x00
No match
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
abcdefghijkllS
@ -5972,18 +5991,6 @@ No match
0:
0:
/^[a-\d]/
abcde
0: a
-things
0: -
0digit
0: 0
*** Failers
No match
bcdef
No match
/^[\d-a]/
abcde
0: a
@ -6006,15 +6013,15 @@ No match
/[\s]+/
> \x09\x0a\x0c\x0d\x0b<
0: \x09\x0a\x0c\x0d
0: \x09\x0a\x0c\x0d\x0b
/\s+/
> \x09\x0a\x0c\x0d\x0b<
0: \x09\x0a\x0c\x0d
0: \x09\x0a\x0c\x0d\x0b
/a b/x
ab
No match
0: ab
/(?!\A)x/m
a\nxb\n
@ -6160,11 +6167,9 @@ No match
1: bc
2: bc
/-- This tests for an IPv6 address in the form where it can have up to --/
/-- eight components, one and only one of which is empty. This must be --/
No match
/-- an internal component. --/
No match
/-- This tests for an IPv6 address in the form where it can have up to
eight components, one and only one of which is empty. This must be
an internal component. --/
/^(?!:) # colon disallowed at start
(?: # start of item
@ -6906,10 +6911,6 @@ No match
bc
0: b
/^(?=(a)){0}b(?1)/
backgammon
0: ba
/^(?=(?1))?[az]([abc])d/
abd
0: abd
@ -7770,20 +7771,12 @@ No match
1: (ab(cd)ef)
2: ef
/^(?!a(*SKIP)b)/
ac
0:
/^(?=a(*SKIP)b|ac)/
** Failers
No match
ac
No match
/^(?=a(*THEN)b|ac)/
ac
0:
/^(?=a(*PRUNE)b)/
ab
0:
@ -7796,10 +7789,6 @@ No match
ac
0:
/^(?(?!a(*SKIP)b))/
ac
0:
/(?>a\Kb)/
ab
0: b
@ -8169,46 +8158,20 @@ No match
1: AB
2: B
/\A.*?(?:a|b(*THEN)c)/
ba
0: ba
/\A.*?(?:a|bc)/
ba
0: ba
/\A.*?(a|b(*THEN)c)/
ba
0: ba
1: a
/\A.*?(a|bc)/
ba
0: ba
1: a
/\A.*?(?:a|b(*THEN)c)++/
ba
0: ba
/\A.*?(?:a|bc)++/
ba
0: ba
/\A.*?(a|b(*THEN)c)++/
ba
0: ba
1: a
/\A.*?(a|bc)++/
ba
0: ba
1: a
/\A.*?(?:a|b(*THEN)c|d)/
ba
0: ba
/\A.*?(?:a|bc|d)/
ba
0: ba
@ -8719,10 +8682,6 @@ No match
aac
0: aac
/(?!a(*COMMIT)b)ac|cd/
ac
0: ac
/((?:a?)*)*c/
aac
0: aac
@ -8795,4 +8754,563 @@ No match
abcdfooxyz
0: foo
/(?:(a(*PRUNE)b)){0}(?:(?1)|ac)/
ac
0: ac
/(?:(a(*SKIP)b)){0}(?:(?1)|ac)/
ac
0: ac
/(?<=(*SKIP)ac)a/
aa
No match
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
AAAC
0: AC
/a(*SKIP:m)x|ac(*:n)(*SKIP:n)d|ac/K
acacd
0: acd
MK: n
/A(*SKIP:m)x|A(*SKIP:n)x|AB/K
AB
0: AB
/((*SKIP:r)d){0}a(*SKIP:m)x|ac(*:n)|ac/K
acacd
0: ac
MK: n
/-- Tests that try to figure out how Perl works. My hypothesis is that the
first verb that is backtracked onto is the one that acts. This seems to be
the case almost all the time, but there is one exception that is perhaps a
bug. --/
/-- This matches "aaaac"; each PRUNE advances one character until the subject
no longer starts with 5 'a's. --/
/aaaaa(*PRUNE)b|a+c/
aaaaaac
0: aaaac
/-- Putting SKIP in front of PRUNE makes no difference, as it is never
backtracked onto, whether or not it has a label. --/
/aaaaa(*SKIP)(*PRUNE)b|a+c/
aaaaaac
0: aaaac
/aaaaa(*SKIP:N)(*PRUNE)b|a+c/
aaaaaac
0: aaaac
/aaaa(*:N)a(*SKIP:N)(*PRUNE)b|a+c/
aaaaaac
0: aaaac
/-- Putting THEN in front makes no difference. */
/aaaaa(*THEN)(*PRUNE)b|a+c/
aaaaaac
0: aaaac
/-- However, putting COMMIT in front of the prune changes it to "no match". I
think this is inconsistent and possibly a bug. For the moment, running this
test is moved out of the Perl-compatible file. --/
/aaaaa(*COMMIT)(*PRUNE)b|a+c/
/---- OK, lets play the same game again using SKIP instead of PRUNE. ----/
/-- This matches "ac" because SKIP forces the next match to start on the
sixth "a". --/
/aaaaa(*SKIP)b|a+c/
aaaaaac
0: ac
/-- Putting PRUNE in front makes no difference. --/
/aaaaa(*PRUNE)(*SKIP)b|a+c/
aaaaaac
0: ac
/-- Putting THEN in front makes no difference. --/
/aaaaa(*THEN)(*SKIP)b|a+c/
aaaaaac
0: ac
/-- In this case, neither does COMMIT. This still matches "ac". --/
/aaaaa(*COMMIT)(*SKIP)b|a+c/
aaaaaac
0: ac
/-- This gives "no match", as expected. --/
/aaaaa(*COMMIT)b|a+c/
aaaaaac
No match
/------ Tests using THEN ------/
/-- This matches "aaaaaac", as expected. --/
/aaaaa(*THEN)b|a+c/
aaaaaac
0: aaaaaac
/-- Putting SKIP in front makes no difference. --/
/aaaaa(*SKIP)(*THEN)b|a+c/
aaaaaac
0: aaaaaac
/-- Putting PRUNE in front makes no difference. --/
/aaaaa(*PRUNE)(*THEN)b|a+c/
aaaaaac
0: aaaaaac
/-- Putting COMMIT in front makes no difference. --/
/aaaaa(*COMMIT)(*THEN)b|a+c/
aaaaaac
0: aaaaaac
/-- End of "priority" tests --/
/aaaaa(*:m)(*PRUNE:m)(*SKIP:m)m|a+/
aaaaaa
0: a
/aaaaa(*:m)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
aaaaaa
0: a
/aaaaa(*:n)(*PRUNE:m)(*SKIP:m)m|a+/
aaaaaa
0: aaaa
/aaaaa(*:n)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
aaaaaa
0: a
/a(*MARK:A)aa(*PRUNE:A)a(*SKIP:A)b|a+c/
aaaac
0: aac
/a(*MARK:A)aa(*MARK:A)a(*SKIP:A)b|a+c/
aaaac
0: ac
/aaa(*PRUNE:A)a(*SKIP:A)b|a+c/
aaaac
0: aac
/aaa(*MARK:A)a(*SKIP:A)b|a+c/
aaaac
0: ac
/a(*:m)a(*COMMIT)(*SKIP:m)b|a+c/K
aaaaaac
0: ac
/.?(a|b(*THEN)c)/
ba
0: ba
1: a
/(a(*COMMIT)b)c|abd/
abc
0: abc
1: ab
abd
No match
/(?=a(*COMMIT)b)abc|abd/
abc
0: abc
abd
0: abd
/(?>a(*COMMIT)b)c|abd/
abc
0: abc
abd
0: abd
/a(?=b(*COMMIT)c)[^d]|abd/
abd
No match
abc
0: ab
/a(?=bc).|abd/
abd
0: abd
abc
0: ab
/a(?>b(*COMMIT)c)d|abd/
abceabd
No match
/a(?>bc)d|abd/
abceabd
0: abd
/(?>a(*COMMIT)b)c|abd/
abd
0: abd
/(?>a(*COMMIT)c)d|abd/
abd
No match
/((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
ac
0: ac
1: <unset>
2: c
/-- These tests were formerly in test 2, but changes in PCRE and Perl have
made them compatible. --/
/^(a)?(?(1)a|b)+$/
*** Failers
No match
a
No match
/(?=a\Kb)ab/
ab
0: b
/(?!a\Kb)ac/
ac
0: ac
/^abc(?<=b\Kc)d/
abcd
0: cd
/^abc(?<!b\Kq)d/
abcd
0: abcd
/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
AAAC
No match, mark = A
/^((abc|abcx)(*THEN)y|abcd)/
abcd
0: abcd
1: abcd
*** Failers
No match
abcxy
No match
/^((yes|no)(*THEN)(*F))?/
yes
No match
/(A (.*) C? (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
No match
/(A (.*) C? (*THEN) | A D) z/x
AbcdCBefgBhiBqz
No match
/(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
AbcdCBefgBhiBqz
No match
/(A (.*) C? (*THEN) | A D) \s* z/x
AbcdCBefgBhiBqz
No match
/(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
No match
/(A (.*) (?:C|) (*THEN) | A D) z/x
AbcdCBefgBhiBqz
No match
/(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
No match
/(A (.*) C{0,6} (*THEN) | A D) z/x
AbcdCBefgBhiBqz
No match
/(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
AbcdCEBefgBhiBqz
No match
/(A (.*) (CE){0,6} (*THEN) | A D) z/x
AbcdCEBefgBhiBqz
No match
/(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
AbcdCBefgBhiBqz
No match
/(A (.*) (CE*){0,6} (*THEN) | A D) z/x
AbcdCBefgBhiBqz
No match
/(?=a(*COMMIT)b|ac)ac|ac/
ac
No match
/(?=a(*COMMIT)b|(ac)) ac | (a)c/x
ac
No match
/--------/
/(?(?!b(*THEN)a)bn|bnn)/
bnn
0: bn
/(?!b(*SKIP)a)bn|bnn/
bnn
0: bn
/(?(?!b(*SKIP)a)bn|bnn)/
bnn
0: bn
/(?!b(*PRUNE)a)bn|bnn/
bnn
0: bn
/(?(?!b(*PRUNE)a)bn|bnn)/
bnn
0: bn
/(?!b(*COMMIT)a)bn|bnn/
bnn
0: bn
/(?(?!b(*COMMIT)a)bn|bnn)/
bnn
0: bn
/(?=b(*SKIP)a)bn|bnn/
bnn
No match
/(?=b(*THEN)a)bn|bnn/
bnn
0: bnn
/^(?!a(*SKIP)b)/
ac
0:
/^(?!a(*SKIP)b)../
acd
0: ac
/(?!a(*SKIP)b)../
acd
0: ac
/^(?(?!a(*SKIP)b))/
ac
0:
/^(?!a(*PRUNE)b)../
acd
0: ac
/(?!a(*PRUNE)b)../
acd
0: ac
/(?!a(*COMMIT)b)ac|cd/
ac
0: ac
/\A.*?(?:a|bc)/
ba
0: ba
/^(A(*THEN)B|C(*THEN)D)/
CD
0: CD
1: CD
/(*:m(m)(?&y)(?(DEFINE)(?<y>b))/K
abc
0: b
MK: m(m
/(*PRUNE:m(m)(?&y)(?(DEFINE)(?<y>b))/K
abc
0: b
MK: m(m
/(*SKIP:m(m)(?&y)(?(DEFINE)(?<y>b))/K
abc
0: b
/(*THEN:m(m)(?&y)(?(DEFINE)(?<y>b))/K
abc
0: b
MK: m(m
/^\d*\w{4}/
1234
0: 1234
123
No match
/^[^b]*\w{4}/
aaaa
0: aaaa
aaa
No match
/^[^b]*\w{4}/i
aaaa
0: aaaa
aaa
No match
/^a*\w{4}/
aaaa
0: aaaa
aaa
No match
/^a*\w{4}/i
aaaa
0: aaaa
aaa
No match
/(?(?=ab)ab)/+
ca
0:
0+ ca
cd
0:
0+ cd
/(?:(?<n>foo)|(?<n>bar))\k<n>/J
foofoo
0: foofoo
1: foo
barbar
0: barbar
1: <unset>
2: bar
/(?<n>A)(?:(?<n>foo)|(?<n>bar))\k<n>/J
AfooA
0: AfooA
1: A
2: foo
AbarA
0: AbarA
1: A
2: <unset>
3: bar
** Failers
No match
Afoofoo
No match
Abarbar
No match
/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
1 IN SOA non-sp1 non-sp2(
0: 1 IN SOA non-sp1 non-sp2(
1: 1
2: non-sp1
3: non-sp2
/^ (?:(?<A>A)|(?'B'B)(?<A>A)) (?('A')x) (?(<B>)y)$/xJ
Ax
0: Ax
1: A
BAxy
0: BAxy
1: <unset>
2: B
3: A
/^A\xZ/
A\0Z
0: A\x00Z
/^A\o{123}B/
A\123B
0: ASB
/ ^ a + + b $ /x
aaaab
0: aaaab
/ ^ a + #comment
+ b $ /x
aaaab
0: aaaab
/ ^ a + #comment
#comment
+ b $ /x
aaaab
0: aaaab
/ ^ (?> a + ) b $ /x
aaaab
0: aaaab
/ ^ ( a + ) + + \w $ /x
aaaab
0: aaaab
1: aaaa
/(?:a\Kb)*+/+
ababc
0: b
0+ c
/(?>a\Kb)*/+
ababc
0: b
0+ c
/(?:a\Kb)*/+
ababc
0: b
0+ c
/(a\Kb)*+/+
ababc
0: b
0+ c
1: ab
/(a\Kb)*/+
ababc
0: b
0+ c
1: ab
/-- End of testinput1 --/

File diff suppressed because it is too large Load Diff

View File

@ -63,6 +63,7 @@ Memory allocation (code space): 10
4 End
------------------------------------------------------------------
Capturing subpattern count = 0
May match empty string
Options: extended
No first char
No need char
@ -99,15 +100,13 @@ Memory allocation (code space): 14
------------------------------------------------------------------
/x{1,3}+/BM
Memory allocation (code space): 28
Memory allocation (code space): 20
------------------------------------------------------------------
0 11 Bra
2 7 Once
4 x
6 x{0,2}
9 7 Ket
11 11 Ket
13 End
0 7 Bra
2 x
4 x{0,2}+
7 7 Ket
9 End
------------------------------------------------------------------
/(x)*+/BM
@ -138,7 +137,7 @@ Memory allocation (code space): 142
39 [bc]+
57 21 Ket
59 5 CBra 5
62 \w*
62 \w*+
64 5 Ket
66 63 Ket
68 68 Ket
@ -327,7 +326,7 @@ Memory allocation (code space): 16
------------------------------------------------------------------
/\x{110000}/8BM
Failed: character value in \x{...} sequence is too large at offset 9
Failed: character value in \x{} or \o{} is too large at offset 9
/[\x{ff}]/8BM
Memory allocation (code space): 14
@ -503,7 +502,7 @@ Memory allocation (code space): 24
Memory allocation (code space): 58
------------------------------------------------------------------
0 26 Bra
2 [+\-\p{Nd}]+
2 [+\-\p{Nd}]++
26 26 Ket
28 End
------------------------------------------------------------------
@ -652,7 +651,7 @@ Memory allocation (code space): 14
/[[:^alpha:][:^cntrl:]]+/8WB
------------------------------------------------------------------
0 26 Bra
2 [ -~\x80-\xff\P{L}]+
2 [ -~\x80-\xff\P{L}]++
26 26 Ket
28 End
------------------------------------------------------------------
@ -660,7 +659,7 @@ Memory allocation (code space): 14
/[[:^cntrl:][:^alpha:]]+/8WB
------------------------------------------------------------------
0 26 Bra
2 [ -~\x80-\xff\P{L}]+
2 [ -~\x80-\xff\P{L}]++
26 26 Ket
28 End
------------------------------------------------------------------
@ -668,7 +667,7 @@ Memory allocation (code space): 14
/[[:alpha:]]+/8WB
------------------------------------------------------------------
0 10 Bra
2 [\p{L}]+
2 [\p{L}]++
10 10 Ket
12 End
------------------------------------------------------------------
@ -676,7 +675,7 @@ Memory allocation (code space): 14
/[[:^alpha:]\S]+/8WB
------------------------------------------------------------------
0 13 Bra
2 [\P{L}\P{Xsp}]+
2 [\P{L}\P{Xsp}]++
13 13 Ket
15 End
------------------------------------------------------------------

View File

@ -63,6 +63,7 @@ Memory allocation (code space): 20
4 End
------------------------------------------------------------------
Capturing subpattern count = 0
May match empty string
Options: extended
No first char
No need char
@ -99,15 +100,13 @@ Memory allocation (code space): 28
------------------------------------------------------------------
/x{1,3}+/BM
Memory allocation (code space): 56
Memory allocation (code space): 40
------------------------------------------------------------------
0 11 Bra
2 7 Once
4 x
6 x{0,2}
9 7 Ket
11 11 Ket
13 End
0 7 Bra
2 x
4 x{0,2}+
7 7 Ket
9 End
------------------------------------------------------------------
/(x)*+/BM
@ -138,7 +137,7 @@ Memory allocation (code space): 220
31 [bc]+
41 13 Ket
43 5 CBra 5
46 \w*
46 \w*+
48 5 Ket
50 47 Ket
52 52 Ket
@ -327,7 +326,7 @@ Memory allocation (code space): 28
------------------------------------------------------------------
/\x{110000}/8BM
Failed: character value in \x{...} sequence is too large at offset 9
Failed: character value in \x{} or \o{} is too large at offset 9
/[\x{ff}]/8BM
Memory allocation (code space): 28
@ -503,7 +502,7 @@ Memory allocation (code space): 48
Memory allocation (code space): 84
------------------------------------------------------------------
0 18 Bra
2 [+\-\p{Nd}]+
2 [+\-\p{Nd}]++
18 18 Ket
20 End
------------------------------------------------------------------
@ -652,7 +651,7 @@ Memory allocation (code space): 28
/[[:^alpha:][:^cntrl:]]+/8WB
------------------------------------------------------------------
0 18 Bra
2 [ -~\x80-\xff\P{L}]+
2 [ -~\x80-\xff\P{L}]++
18 18 Ket
20 End
------------------------------------------------------------------
@ -660,7 +659,7 @@ Memory allocation (code space): 28
/[[:^cntrl:][:^alpha:]]+/8WB
------------------------------------------------------------------
0 18 Bra
2 [ -~\x80-\xff\P{L}]+
2 [ -~\x80-\xff\P{L}]++
18 18 Ket
20 End
------------------------------------------------------------------
@ -668,7 +667,7 @@ Memory allocation (code space): 28
/[[:alpha:]]+/8WB
------------------------------------------------------------------
0 10 Bra
2 [\p{L}]+
2 [\p{L}]++
10 10 Ket
12 End
------------------------------------------------------------------
@ -676,7 +675,7 @@ Memory allocation (code space): 28
/[[:^alpha:]\S]+/8WB
------------------------------------------------------------------
0 13 Bra
2 [\P{L}\P{Xsp}]+
2 [\P{L}\P{Xsp}]++
13 13 Ket
15 End
------------------------------------------------------------------

View File

@ -63,6 +63,7 @@ Memory allocation (code space): 7
6 End
------------------------------------------------------------------
Capturing subpattern count = 0
May match empty string
Options: extended
No first char
No need char
@ -99,15 +100,13 @@ Memory allocation (code space): 9
------------------------------------------------------------------
/x{1,3}+/BM
Memory allocation (code space): 19
Memory allocation (code space): 13
------------------------------------------------------------------
0 15 Bra
3 9 Once
6 x
8 x{0,2}
12 9 Ket
15 15 Ket
18 End
0 9 Bra
3 x
5 x{0,2}+
9 9 Ket
12 End
------------------------------------------------------------------
/(x)*+/BM
@ -138,7 +137,7 @@ Memory allocation (code space): 120
66 [bc]+
100 39 Ket
103 7 CBra 5
108 \w*
108 \w*+
110 7 Ket
113 109 Ket
116 116 Ket
@ -327,7 +326,7 @@ Memory allocation (code space): 12
------------------------------------------------------------------
/\x{110000}/8BM
Failed: character value in \x{...} sequence is too large at offset 9
Failed: character value in \x{} or \o{} is too large at offset 9
/[\x{ff}]/8BM
Memory allocation (code space): 10
@ -503,7 +502,7 @@ Memory allocation (code space): 15
Memory allocation (code space): 48
------------------------------------------------------------------
0 44 Bra
3 [+\-\p{Nd}]+
3 [+\-\p{Nd}]++
44 44 Ket
47 End
------------------------------------------------------------------
@ -652,7 +651,7 @@ Memory allocation (code space): 10
/[[:^alpha:][:^cntrl:]]+/8WB
------------------------------------------------------------------
0 44 Bra
3 [ -~\x80-\xff\P{L}]+
3 [ -~\x80-\xff\P{L}]++
44 44 Ket
47 End
------------------------------------------------------------------
@ -660,7 +659,7 @@ Memory allocation (code space): 10
/[[:^cntrl:][:^alpha:]]+/8WB
------------------------------------------------------------------
0 44 Bra
3 [ -~\x80-\xff\P{L}]+
3 [ -~\x80-\xff\P{L}]++
44 44 Ket
47 End
------------------------------------------------------------------
@ -668,7 +667,7 @@ Memory allocation (code space): 10
/[[:alpha:]]+/8WB
------------------------------------------------------------------
0 12 Bra
3 [\p{L}]+
3 [\p{L}]++
12 12 Ket
15 End
------------------------------------------------------------------
@ -676,7 +675,7 @@ Memory allocation (code space): 10
/[[:^alpha:]\S]+/8WB
------------------------------------------------------------------
0 15 Bra
3 [\P{L}\P{Xsp}]+
3 [\P{L}\P{Xsp}]++
15 15 Ket
18 End
------------------------------------------------------------------

View File

@ -8,16 +8,26 @@ No options
First char = 'a'
Need char = 'c'
Subject length lower bound = 3
No set of starting bytes
No starting char list
JIT study was successful
/ab(*THEN)/S+I
/(?(?C1)(?=a)a)/S+I
Capturing subpattern count = 0
May match empty string
No options
First char = 'a'
Need char = 'b'
Subject length lower bound = 2
No set of starting bytes
No first char
No need char
Study returned NULL
JIT study was not successful
/(?(?C1)(?=a)a)/S!+I
Capturing subpattern count = 0
May match empty string
No options
No first char
No need char
Subject length lower bound = -1
No starting char list
JIT study was not successful
/abc/S+I>testsavedregex
@ -26,7 +36,7 @@ No options
First char = 'a'
Need char = 'c'
Subject length lower bound = 3
No set of starting bytes
No starting char list
JIT study was successful
Compiled pattern written to testsavedregex
Study data written to testsavedregex
@ -39,6 +49,7 @@ Study data loaded from testsavedregex
/a*/SI
Capturing subpattern count = 0
May match empty string
No options
No first char
No need char
@ -154,28 +165,15 @@ No options
First char = 'a'
Need char = 'd'
Subject length lower bound = 4
No set of starting bytes
No starting char list
JIT study was successful
/(*NO_START_OPT)a(*:m)b/KS++
a
No match, mark = m (JIT)
/.?(*THEN)/S+I
Capturing subpattern count = 0
No options
No first char
No need char
Study returned NULL
JIT study was not successful
/.?(*THEN)/S!+I
Capturing subpattern count = 0
No options
No first char
No need char
Subject length lower bound = -1
No set of starting bytes
JIT study was not successful
/^12345678abcd/mS++
12345678abcd
0: 12345678abcd (JIT)
/-- End of testinput12 --/

View File

@ -8,11 +8,12 @@ No options
First char = 'a'
Need char = 'c'
Subject length lower bound = 3
No set of starting bytes
No starting char list
JIT support is not available in this version of PCRE
/a*/SI
Capturing subpattern count = 0
May match empty string
No options
No first char
No need char

View File

@ -1,6 +1,9 @@
/-- This set of tests is run only with the 8-bit library. It starts with all
the tests of the POSIX interface, because that is supported only with the
8-bit library. --/
/-- This set of tests is run only with the 8-bit library. They do not require
UTF-8 or Unicode property support. The file starts with all the tests of
the POSIX interface, because that is supported only with the 8-bit library.
--/
< forbid 8W
/abc/P
abc
@ -146,10 +149,17 @@ No match
A\x{123}B
** Character \x{123} is greater than 255 and UTF-8 mode is not enabled.
** Truncation will probably give the wrong result.
No match
A\o{443}B
** Character \x{123} is greater than 255 and UTF-8 mode is not enabled.
** Truncation will probably give the wrong result.
No match
/\x{100}/I
Failed: character value in \x{...} sequence is too large at offset 6
Failed: character value in \x{} or \o{} is too large at offset 6
/\o{400}/I
Failed: character value in \x{} or \o{} is too large at offset 6
/ (?: [\040\t] | \(
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
@ -351,7 +361,7 @@ Options: extended
No first char
No need char
Subject length lower bound = 3
Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
Starting chars: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e
f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
@ -378,7 +388,15 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x09 \x20 \xa0
Starting chars: \x09 \x20 \xa0
/\H/SI
Capturing subpattern count = 0
No options
No first char
No need char
Subject length lower bound = 1
No starting char list
/\v/SI
Capturing subpattern count = 0
@ -386,7 +404,15 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85
Starting chars: \x0a \x0b \x0c \x0d \x85
/\V/SI
Capturing subpattern count = 0
No options
No first char
No need char
Subject length lower bound = 1
No starting char list
/\R/SI
Capturing subpattern count = 0
@ -394,7 +420,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85
Starting chars: \x0a \x0b \x0c \x0d \x85
/[\h]/BZ
------------------------------------------------------------------
@ -409,7 +435,7 @@ Starting byte set: \x0a \x0b \x0c \x0d \x85
/[\h]+/BZ
------------------------------------------------------------------
Bra
[\x09 \xa0]+
[\x09 \xa0]++
Ket
End
------------------------------------------------------------------
@ -473,4 +499,32 @@ Failed: character value in \u.... sequence is too large at offset 5
/[\u0100-\u0200]/<JS>
Failed: character value in \u.... sequence is too large at offset 6
/[^\x00-a]{12,}[^b-\xff]*/BZ
------------------------------------------------------------------
Bra
[b-\xff] (neg){12,}+
[\x00-a] (neg)*+
Ket
End
------------------------------------------------------------------
/[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/BZ
------------------------------------------------------------------
Bra
[\x00-\x08\x0e-\x1f!-\xff] (neg)*+
\s*
[0-9A-Z_a-z]++
\W+
[\x00-/:-\xff] (neg)*+
\d
0
[\x00-/:-@[-^`{-\xff] (neg){4,6}+
\w*
A
Ket
End
------------------------------------------------------------------
/-- End of testinput14 --/

View File

@ -1,5 +1,7 @@
/-- This set of tests is for UTF-8 support, and is relevant only to the 8-bit
library. --/
/-- This set of tests is for UTF-8 support but not Unicode property support,
and is relevant only to the 8-bit library. --/
< forbid W
/X(\C{3})/8
X\x{1234}
@ -72,7 +74,7 @@ Failed: invalid UTF-8 string at offset 0
/<2F><><EFBFBD>xxx/8
Failed: invalid UTF-8 string at offset 0
/<2F><><EFBFBD>xxx/8?DZSS
/<2F><><EFBFBD>xxx/8?DZSSO
------------------------------------------------------------------
Bra
\X{c0}\X{c0}\X{c0}xxx
@ -80,7 +82,7 @@ Failed: invalid UTF-8 string at offset 0
End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf no_utf_check
Options: no_auto_possessify utf no_utf_check
First char = \x{c3}
Need char = 'x'
@ -163,8 +165,6 @@ Error -10 (bad UTF-8 string) offset=0 reason=20
Error -10 (bad UTF-8 string) offset=0 reason=21
\xff
Error -10 (bad UTF-8 string) offset=0 reason=21
\xef\xb7\x90
Error -10 (bad UTF-8 string) offset=0 reason=22
/badutf/8
\xfb\x80\x80\x80\x80
@ -250,140 +250,6 @@ No match
\?\xfd\x83\x80\x80\x80\x80
No match
/noncharacter/8
\x{fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{1fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{1ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{2fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{2ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{3fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{3ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{4fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{4ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{5fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{5ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{6fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{6ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{7fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{7ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{8fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{8ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{9fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{9ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{afffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{affff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{bfffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{bffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{cfffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{cffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{dfffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{dffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{efffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{effff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{ffffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{10fffe}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{10ffff}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd0}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd1}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd2}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd3}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd4}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd5}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd6}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd7}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd8}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdd9}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdda}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fddb}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fddc}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fddd}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdde}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fddf}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde0}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde1}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde2}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde3}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde4}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde5}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde6}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde7}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde8}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fde9}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdea}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdeb}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdec}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fded}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdee}
Error -10 (bad UTF-8 string) offset=0 reason=22
\x{fdef}
Error -10 (bad UTF-8 string) offset=0 reason=22
/\x{100}/8DZ
------------------------------------------------------------------
Bra
@ -615,7 +481,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
\x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
\x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4
5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y
@ -644,7 +510,7 @@ No match
------------------------------------------------------------------
Bra
\x{100}{3}
\x{100}?
\x{100}?+
Ket
End
------------------------------------------------------------------
@ -653,7 +519,7 @@ Options: utf
First char = \x{c4}
Need char = \x{80}
Subject length lower bound = 3
No set of starting bytes
No starting char list
\x{100}\x{100}\x{100}\x{100\x{100}
0: \x{100}\x{100}\x{100}
@ -661,7 +527,7 @@ No set of starting bytes
------------------------------------------------------------------
Bra
CBra 1
\x{100}+
\x{100}++
Alt
x
Ket
@ -673,7 +539,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: x \xc4
Starting chars: x \xc4
/(\x{100}*a|x)/8SDZ
------------------------------------------------------------------
@ -692,13 +558,13 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: a x \xc4
Starting chars: a x \xc4
/(\x{100}{0,2}a|x)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}{0,2}
\x{100}{0,2}+
a
Alt
x
@ -711,14 +577,14 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: a x \xc4
Starting chars: a x \xc4
/(\x{100}{1,2}a|x)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}
\x{100}{0,1}
\x{100}{0,1}+
a
Alt
x
@ -731,7 +597,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: x \xc4
Starting chars: x \xc4
/\x{100}/8DZ
------------------------------------------------------------------
@ -749,7 +615,7 @@ Need char = \x{80}
------------------------------------------------------------------
Bra
a\x{100}
\x{101}*
\x{101}*+
Ket
End
------------------------------------------------------------------
@ -762,7 +628,7 @@ Need char = \x{80}
------------------------------------------------------------------
Bra
a\x{100}
\x{101}+
\x{101}++
Ket
End
------------------------------------------------------------------
@ -891,8 +757,6 @@ Failed: missing terminating ] for character class at offset 15
/-- This tests the stricter UTF-8 check according to RFC 3629. --/
/X/8
\x{0}\x{d7ff}\x{e000}\x{10ffff}
Error -10 (bad UTF-8 string) offset=7 reason=22
\x{d800}
Error -10 (bad UTF-8 string) offset=0 reason=14
\x{d800}\?
@ -935,7 +799,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x09 \x20 \xc2 \xe1 \xe2 \xe3
Starting chars: \x09 \x20 \xc2 \xe1 \xe2 \xe3
ABC\x{09}
0: \x{09}
ABC\x{20}
@ -961,7 +825,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \xc2 \xe2
Starting chars: \x0a \x0b \x0c \x0d \xc2 \xe2
ABC\x{0a}
0: \x{0a}
ABC\x{0b}
@ -981,7 +845,7 @@ Options: utf
No first char
Need char = 'A'
Subject length lower bound = 1
Starting byte set: \x09 \x20 A \xc2 \xe1 \xe2 \xe3
Starting chars: \x09 \x20 A \xc2 \xe1 \xe2 \xe3
CDBABC
0: A
@ -991,7 +855,7 @@ Options: utf
No first char
Need char = 'A'
Subject length lower bound = 2
Starting byte set: \x0a \x0b \x0c \x0d \xc2 \xe2
Starting chars: \x0a \x0b \x0c \x0d \xc2 \xe2
/\s?xxx\s/8SI
Capturing subpattern count = 0
@ -999,7 +863,7 @@ Options: utf
No first char
Need char = 'x'
Subject length lower bound = 4
Starting byte set: \x09 \x0a \x0c \x0d \x20 x
Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 x
/\sxxx\s/I8ST1
Capturing subpattern count = 0
@ -1007,7 +871,7 @@ Options: utf
No first char
Need char = 'x'
Subject length lower bound = 5
Starting byte set: \x09 \x0a \x0c \x0d \x20 \xc2
Starting chars: \x09 \x0a \x0c \x0d \x20 \xc2
AB\x{85}xxx\x{a0}XYZ
0: \x{85}xxx\x{a0}
AB\x{a0}xxx\x{85}XYZ
@ -1019,7 +883,7 @@ Options: utf
No first char
Need char = ' '
Subject length lower bound = 3
Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0b \x0e
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0b \x0e
\x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d
\x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e
@ -1053,7 +917,7 @@ Options: caseless utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \xe1
Starting chars: \xe1
/\x{1234}+?/iS8I
Capturing subpattern count = 0
@ -1061,7 +925,7 @@ Options: caseless utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \xe1
Starting chars: \xe1
/\x{1234}++/iS8I
Capturing subpattern count = 0
@ -1069,7 +933,7 @@ Options: caseless utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \xe1
Starting chars: \xe1
/\x{1234}{2}/iS8I
Capturing subpattern count = 0
@ -1077,7 +941,7 @@ Options: caseless utf
No first char
No need char
Subject length lower bound = 2
Starting byte set: \xe1
Starting chars: \xe1
/[^\x{c4}]/8DZ
------------------------------------------------------------------
@ -1110,7 +974,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \xc2 \xe2
Starting chars: \x0a \x0b \x0c \x0d \xc2 \xe2
/\777/8DZ
------------------------------------------------------------------
@ -1266,4 +1130,10 @@ Need char = \x{bf}
\x{7f000041}
Error -10 (bad UTF-8 string) offset=0 reason=12
/(*UTF8)abc/9
Failed: setting UTF is disabled by the application at offset 0
/abc/89
Failed: setting UTF is disabled by the application at offset 0
/-- End of testinput15 --/

View File

@ -64,7 +64,7 @@ Options: caseless utf
No first char
No need char
Subject length lower bound = 17
Starting byte set: \xd0 \xd1
Starting chars: \xd0 \xd1
\x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}
0: \x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}
\x{451}\x{440}\x{441}\x{442}\x{443}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}\x{44a}\x{44b}\x{44c}\x{44d}\x{44e}\x{44f}
@ -92,7 +92,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x09 \x20 \xa0
Starting chars: \x09 \x20 \xa0
/\v/SI
Capturing subpattern count = 0
@ -100,7 +100,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85
Starting chars: \x0a \x0b \x0c \x0d \x85
/\R/SI
Capturing subpattern count = 0
@ -108,7 +108,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85
Starting chars: \x0a \x0b \x0c \x0d \x85
/[[:blank:]]/WBZ
------------------------------------------------------------------

View File

@ -1,6 +1,8 @@
/-- This set of tests is for the 16- and 32-bit library's basic (non-UTF-16
or -32) features that are not compatible with the 8-bit library, or which
give different output in 16- or 32-bit mode. --/
< forbid 8W
/a\Cb/
aXb
@ -226,7 +228,7 @@ Options: extended
No first char
No need char
Subject length lower bound = 3
Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
Starting chars: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e
f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \xff
@ -243,7 +245,7 @@ Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
/[\h]+/BZ
------------------------------------------------------------------
Bra
[\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]+
[\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]++
Ket
End
------------------------------------------------------------------
@ -272,7 +274,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x09 \x20 \xa0 \xff
Starting chars: \x09 \x20 \xa0 \xff
\x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
0: \x{1680}\x{2000}\x{202f}\x{3000}
\x{3001}\x{2fff}\x{200a}\xa0\x{2000}
@ -281,7 +283,7 @@ Starting byte set: \x09 \x20 \xa0 \xff
/[\h\x{dc00}]+/BZSI
------------------------------------------------------------------
Bra
[\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{dc00}]+
[\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{dc00}]++
Ket
End
------------------------------------------------------------------
@ -290,7 +292,7 @@ No options
No first char
No need char
Subject length lower bound = 1
No set of starting bytes
Starting chars: \x09 \x20 \xa0 \xff
\x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
0: \x{1680}\x{2000}\x{202f}\x{3000}
\x{3001}\x{2fff}\x{200a}\xa0\x{2000}
@ -302,7 +304,7 @@ No options
No first char
No need char
Subject length lower bound = 1
No set of starting bytes
No starting char list
\x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
0: \x{167f}\x{1681}\x{180d}\x{180f}
\x{2000}\x{200a}\x{1fff}\x{200b}
@ -328,7 +330,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d \x85 \xff
\x{2027}\x{2030}\x{2028}\x{2029}
0: \x{2028}\x{2029}
\x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
@ -337,7 +339,7 @@ Starting byte set: \x0a \x0b \x0c \x0d \x85 \xff
/[\v\x{dc00}]+/BZSI
------------------------------------------------------------------
Bra
[\x0a-\x0d\x85\x{2028}-\x{2029}\x{dc00}]+
[\x0a-\x0d\x85\x{2028}-\x{2029}\x{dc00}]++
Ket
End
------------------------------------------------------------------
@ -346,7 +348,7 @@ No options
No first char
No need char
Subject length lower bound = 1
No set of starting bytes
Starting chars: \x0a \x0b \x0c \x0d \x85 \xff
\x{2027}\x{2030}\x{2028}\x{2029}
0: \x{2028}\x{2029}
\x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
@ -358,7 +360,7 @@ No options
No first char
No need char
Subject length lower bound = 1
No set of starting bytes
No starting char list
\x{2028}\x{2029}\x{2027}\x{2030}
0: \x{2027}\x{2030}
\x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86
@ -376,7 +378,7 @@ Options: bsr_unicode
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d \x85 \xff
\x{2027}\x{2030}\x{2028}\x{2029}
0: \x{2028}\x{2029}
\x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
@ -440,10 +442,8 @@ Need char = \x{dd00}
/i [^\x{8000}]*
/i [^\x{7fff}]{2}
/i [^\x{7fff}]{0,7}?
Once
/i [^\x{100}]{5}
/i [^\x{100}]?
Ket
/i [^\x{100}]?+
Ket
End
------------------------------------------------------------------
@ -502,4 +502,57 @@ MK: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789AB
\x{ffff}
0: \x{ffff}
/[^\x00-a]{12,}[^b-\xff]*/BZ
------------------------------------------------------------------
Bra
[b-\xff] (neg){12,}
[\x00-a] (neg)*+
Ket
End
------------------------------------------------------------------
/[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/BZ
------------------------------------------------------------------
Bra
[\x00-\x08\x0e-\x1f!-\xff] (neg)*
\s*
[0-9A-Z_a-z]++
\W+
[\x00-/:-\xff] (neg)*?
\d
0
[\x00-/:-@[-^`{-\xff] (neg){4,6}?
\w*
A
Ket
End
------------------------------------------------------------------
/a*[b-\x{200}]?a#a*[b-\x{200}]?b#[a-f]*[g-\x{200}]*#[g-\x{200}]*[a-c]*#[g-\x{200}]*[a-h]*/BZ
------------------------------------------------------------------
Bra
a*
[b-\xff\x{100}-\x{200}]?+
a#
a*+
[b-\xff\x{100}-\x{200}]?
b#
[a-f]*+
[g-\xff\x{100}-\x{200}]*+
#
[g-\xff\x{100}-\x{200}]*+
[a-c]*+
#
[g-\xff\x{100}-\x{200}]*
[a-h]*+
Ket
End
------------------------------------------------------------------
/^[\x{1234}\x{4321}]{2,4}?/
\x{1234}\x{1234}\x{1234}
0: \x{1234}\x{1234}
/-- End of testinput17 --/

View File

@ -1,5 +1,7 @@
/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to the
16- and 32-bit library. --/
/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to
the 16- and 32-bit libraries. --/
< forbid W
/<2F><><EFBFBD>xxx/8?DZSS
**Failed: invalid UTF-8 string cannot be converted to UTF-16
@ -337,7 +339,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
\x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
\x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4
5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y
@ -367,7 +369,7 @@ No match
------------------------------------------------------------------
Bra
\x{100}{3}
\x{100}?
\x{100}?+
Ket
End
------------------------------------------------------------------
@ -376,7 +378,7 @@ Options: utf
First char = \x{100}
Need char = \x{100}
Subject length lower bound = 3
No set of starting bytes
No starting char list
\x{100}\x{100}\x{100}\x{100\x{100}
0: \x{100}\x{100}\x{100}
@ -384,7 +386,7 @@ No set of starting bytes
------------------------------------------------------------------
Bra
CBra 1
\x{100}+
\x{100}++
Alt
x
Ket
@ -396,7 +398,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: x \xff
Starting chars: x \xff
/(\x{100}*a|x)/8SDZ
------------------------------------------------------------------
@ -415,13 +417,13 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: a x \xff
Starting chars: a x \xff
/(\x{100}{0,2}a|x)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}{0,2}
\x{100}{0,2}+
a
Alt
x
@ -434,14 +436,14 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: a x \xff
Starting chars: a x \xff
/(\x{100}{1,2}a|x)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}
\x{100}{0,1}
\x{100}{0,1}+
a
Alt
x
@ -454,7 +456,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: x \xff
Starting chars: x \xff
/\x{100}/8DZ
------------------------------------------------------------------
@ -472,7 +474,7 @@ No need char
------------------------------------------------------------------
Bra
a\x{100}
\x{101}*
\x{101}*+
Ket
End
------------------------------------------------------------------
@ -485,7 +487,7 @@ Need char = \x{100}
------------------------------------------------------------------
Bra
a\x{100}
\x{101}+
\x{101}++
Ket
End
------------------------------------------------------------------
@ -608,8 +610,6 @@ Need char = 'X'
Failed: missing terminating ] for character class at offset 13
/X/8
\x{0}\x{d7ff}\x{e000}\x{10ffff}
Error -10 (bad UTF-16 string) offset=4 reason=4
\x{d800}
Error -10 (bad UTF-16 string) offset=0 reason=1
\x{d800}\?
@ -634,8 +634,6 @@ No match
** Failed: character \x{110000} is greater than 0x10ffff and so cannot be converted to UTF-16
\x{d800}\x{1234}
Error -10 (bad UTF-16 string) offset=1 reason=2
\x{fffe}
Error -10 (bad UTF-16 string) offset=0 reason=4
/(*UTF16)\x{11234}/
abcd\x{11234}pqr
@ -650,7 +648,7 @@ Need char = \x{de34}
0: \x{11234}
/(*UTF-32)\x{11234}/
Failed: (*VERB) not recognized at offset 5
Failed: (*VERB) not recognized or malformed at offset 5
/(*CRLF)(*UTF16)(*BSR_UNICODE)a\Rb/I
Capturing subpattern count = 0
@ -660,7 +658,7 @@ First char = 'a'
Need char = 'b'
/(*CRLF)(*UTF32)(*BSR_UNICODE)a\Rb/I
Failed: (*VERB) not recognized at offset 12
Failed: (*VERB) not recognized or malformed at offset 12
/\h/SI8
Capturing subpattern count = 0
@ -668,7 +666,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x09 \x20 \xa0 \xff
Starting chars: \x09 \x20 \xa0 \xff
ABC\x{09}
0: \x{09}
ABC\x{20}
@ -694,7 +692,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d \x85 \xff
ABC\x{0a}
0: \x{0a}
ABC\x{0b}
@ -714,19 +712,19 @@ Options: utf
No first char
Need char = 'A'
Subject length lower bound = 1
Starting byte set: \x09 \x20 A \xa0 \xff
Starting chars: \x09 \x20 A \xa0 \xff
CDBABC
0: A
\x{2000}ABC
0: \x{2000}A
/\R*A/SI8
/\R*A/SI8<bsr_unicode>
Capturing subpattern count = 0
Options: utf
Options: bsr_unicode utf
No first char
Need char = 'A'
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d A \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d A \x85 \xff
CDBABC
0: A
\x{2028}A
@ -738,7 +736,7 @@ Options: utf
No first char
Need char = 'A'
Subject length lower bound = 2
Starting byte set: \x0a \x0b \x0c \x0d \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d \x85 \xff
/\s?xxx\s/8SI
Capturing subpattern count = 0
@ -746,7 +744,7 @@ Options: utf
No first char
Need char = 'x'
Subject length lower bound = 4
Starting byte set: \x09 \x0a \x0c \x0d \x20 x
Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 x
/\sxxx\s/I8ST1
Capturing subpattern count = 0
@ -754,7 +752,7 @@ Options: utf
No first char
Need char = 'x'
Subject length lower bound = 5
Starting byte set: \x09 \x0a \x0c \x0d \x20 \x85 \xa0
Starting chars: \x09 \x0a \x0c \x0d \x20 \x85 \xa0
AB\x{85}xxx\x{a0}XYZ
0: \x{85}xxx\x{a0}
AB\x{a0}xxx\x{85}XYZ
@ -766,7 +764,7 @@ Options: utf
No first char
Need char = ' '
Subject length lower bound = 3
Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0b \x0e
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0b \x0e
\x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d
\x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e
@ -805,7 +803,7 @@ Options: caseless utf
First char = \x{1234}
No need char
Subject length lower bound = 1
No set of starting bytes
No starting char list
/\x{1234}+?/iS8I
Capturing subpattern count = 0
@ -813,7 +811,7 @@ Options: caseless utf
First char = \x{1234}
No need char
Subject length lower bound = 1
No set of starting bytes
No starting char list
/\x{1234}++/iS8I
Capturing subpattern count = 0
@ -821,7 +819,7 @@ Options: caseless utf
First char = \x{1234}
No need char
Subject length lower bound = 1
No set of starting bytes
No starting char list
/\x{1234}{2}/iS8I
Capturing subpattern count = 0
@ -829,7 +827,7 @@ Options: caseless utf
First char = \x{1234}
Need char = \x{1234}
Subject length lower bound = 2
No set of starting bytes
No starting char list
/[^\x{c4}]/8DZ
------------------------------------------------------------------
@ -862,7 +860,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d \x85 \xff
/-- Check bad offset --/
@ -1019,4 +1017,10 @@ Failed: invalid UTF-16 string at offset 0
\x{a0}\x20!
0: \x{a0} !
/(*UTF)abc/9
Failed: setting UTF is disabled by the application at offset 0
/abc/89
Failed: setting UTF is disabled by the application at offset 0
/-- End of testinput18 --/

View File

@ -1,5 +1,7 @@
/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to the
16- and 32-bit library. --/
/-- This set of tests is for UTF-16 and UTF-32 support, and is relevant only to
the 16- and 32-bit libraries. --/
< forbid W
/<2F><><EFBFBD>xxx/8?DZSS
**Failed: invalid UTF-8 string cannot be converted to UTF-32
@ -335,7 +337,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
\x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
\x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4
5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y
@ -365,7 +367,7 @@ No match
------------------------------------------------------------------
Bra
\x{100}{3}
\x{100}?
\x{100}?+
Ket
End
------------------------------------------------------------------
@ -374,7 +376,7 @@ Options: utf
First char = \x{100}
Need char = \x{100}
Subject length lower bound = 3
No set of starting bytes
No starting char list
\x{100}\x{100}\x{100}\x{100\x{100}
0: \x{100}\x{100}\x{100}
@ -382,7 +384,7 @@ No set of starting bytes
------------------------------------------------------------------
Bra
CBra 1
\x{100}+
\x{100}++
Alt
x
Ket
@ -394,7 +396,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: x \xff
Starting chars: x \xff
/(\x{100}*a|x)/8SDZ
------------------------------------------------------------------
@ -413,13 +415,13 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: a x \xff
Starting chars: a x \xff
/(\x{100}{0,2}a|x)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}{0,2}
\x{100}{0,2}+
a
Alt
x
@ -432,14 +434,14 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: a x \xff
Starting chars: a x \xff
/(\x{100}{1,2}a|x)/8SDZ
------------------------------------------------------------------
Bra
CBra 1
\x{100}
\x{100}{0,1}
\x{100}{0,1}+
a
Alt
x
@ -452,7 +454,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: x \xff
Starting chars: x \xff
/\x{100}/8DZ
------------------------------------------------------------------
@ -470,7 +472,7 @@ No need char
------------------------------------------------------------------
Bra
a\x{100}
\x{101}*
\x{101}*+
Ket
End
------------------------------------------------------------------
@ -483,7 +485,7 @@ Need char = \x{100}
------------------------------------------------------------------
Bra
a\x{100}
\x{101}+
\x{101}++
Ket
End
------------------------------------------------------------------
@ -606,8 +608,6 @@ Need char = 'X'
Failed: missing terminating ] for character class at offset 13
/X/8
\x{0}\x{d7ff}\x{e000}\x{10ffff}
Error -10 (bad UTF-32 string) offset=3 reason=2
\x{d800}
Error -10 (bad UTF-32 string) offset=0 reason=1
\x{d800}\?
@ -632,11 +632,9 @@ No match
Error -10 (bad UTF-32 string) offset=0 reason=3
\x{d800}\x{1234}
Error -10 (bad UTF-32 string) offset=0 reason=1
\x{fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
/(*UTF16)\x{11234}/
Failed: (*VERB) not recognized at offset 5
Failed: (*VERB) not recognized or malformed at offset 5
/(*UTF)\x{11234}/I
Capturing subpattern count = 0
@ -647,10 +645,10 @@ No need char
0: \x{11234}
/(*UTF-32)\x{11234}/
Failed: (*VERB) not recognized at offset 5
Failed: (*VERB) not recognized or malformed at offset 5
/(*CRLF)(*UTF16)(*BSR_UNICODE)a\Rb/I
Failed: (*VERB) not recognized at offset 12
Failed: (*VERB) not recognized or malformed at offset 12
/(*CRLF)(*UTF32)(*BSR_UNICODE)a\Rb/I
Capturing subpattern count = 0
@ -665,7 +663,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x09 \x20 \xa0 \xff
Starting chars: \x09 \x20 \xa0 \xff
ABC\x{09}
0: \x{09}
ABC\x{20}
@ -691,7 +689,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d \x85 \xff
ABC\x{0a}
0: \x{0a}
ABC\x{0b}
@ -711,19 +709,19 @@ Options: utf
No first char
Need char = 'A'
Subject length lower bound = 1
Starting byte set: \x09 \x20 A \xa0 \xff
Starting chars: \x09 \x20 A \xa0 \xff
CDBABC
0: A
\x{2000}ABC
0: \x{2000}A
/\R*A/SI8
/\R*A/SI8<bsr_unicode>
Capturing subpattern count = 0
Options: utf
Options: bsr_unicode utf
No first char
Need char = 'A'
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d A \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d A \x85 \xff
CDBABC
0: A
\x{2028}A
@ -735,7 +733,7 @@ Options: utf
No first char
Need char = 'A'
Subject length lower bound = 2
Starting byte set: \x0a \x0b \x0c \x0d \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d \x85 \xff
/\s?xxx\s/8SI
Capturing subpattern count = 0
@ -743,7 +741,7 @@ Options: utf
No first char
Need char = 'x'
Subject length lower bound = 4
Starting byte set: \x09 \x0a \x0c \x0d \x20 x
Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 x
/\sxxx\s/I8ST1
Capturing subpattern count = 0
@ -751,7 +749,7 @@ Options: utf
No first char
Need char = 'x'
Subject length lower bound = 5
Starting byte set: \x09 \x0a \x0c \x0d \x20 \x85 \xa0
Starting chars: \x09 \x0a \x0c \x0d \x20 \x85 \xa0
AB\x{85}xxx\x{a0}XYZ
0: \x{85}xxx\x{a0}
AB\x{a0}xxx\x{85}XYZ
@ -763,7 +761,7 @@ Options: utf
No first char
Need char = ' '
Subject length lower bound = 3
Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0b \x0e
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0b \x0e
\x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d
\x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e
@ -802,7 +800,7 @@ Options: caseless utf
First char = \x{1234}
No need char
Subject length lower bound = 1
No set of starting bytes
No starting char list
/\x{1234}+?/iS8I
Capturing subpattern count = 0
@ -810,7 +808,7 @@ Options: caseless utf
First char = \x{1234}
No need char
Subject length lower bound = 1
No set of starting bytes
No starting char list
/\x{1234}++/iS8I
Capturing subpattern count = 0
@ -818,7 +816,7 @@ Options: caseless utf
First char = \x{1234}
No need char
Subject length lower bound = 1
No set of starting bytes
No starting char list
/\x{1234}{2}/iS8I
Capturing subpattern count = 0
@ -826,7 +824,7 @@ Options: caseless utf
First char = \x{1234}
Need char = \x{1234}
Subject length lower bound = 2
No set of starting bytes
No starting char list
/[^\x{c4}]/8DZ
------------------------------------------------------------------
@ -859,7 +857,7 @@ Options: utf
No first char
No need char
Subject length lower bound = 1
Starting byte set: \x0a \x0b \x0c \x0d \x85 \xff
Starting chars: \x0a \x0b \x0c \x0d \x85 \xff
/-- Check bad offset --/
@ -1016,4 +1014,10 @@ Error -24 (bad offset value)
\x{a0}\x20!
0: \x{a0} !
/(*UTF)abc/9
Failed: setting UTF is disabled by the application at offset 0
/abc/89
Failed: setting UTF is disabled by the application at offset 0
/-- End of testinput18 --/

View File

@ -55,7 +55,7 @@ Options: caseless utf
First char = \x{401} (caseless)
Need char = \x{42f} (caseless)
Subject length lower bound = 17
No set of starting bytes
No starting char list
\x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}
0: \x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}
\x{451}\x{440}\x{441}\x{442}\x{443}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}\x{44a}\x{44b}\x{44c}\x{44d}\x{44e}\x{44f}

File diff suppressed because it is too large Load Diff

View File

@ -8,12 +8,10 @@
/^\x{ffff}?/i
\x{ffff}
0: \x{ffff}
1:
/^\x{ffff}*/i
\x{ffff}
0: \x{ffff}
1:
/^\x{ffff}{3}/i
\x{ffff}\x{ffff}\x{ffff}
@ -22,6 +20,5 @@
/^\x{ffff}{0,3}/i
\x{ffff}
0: \x{ffff}
1:
/-- End of testinput20 --/

View File

@ -1,5 +1,6 @@
/-- Tests for reloading pre-compile patterns. The first one gives an error
right away. The others require the linke size to be 2. */
/-- Tests for reloading pre-compiled patterns. The first one gives an error
right away, and can be any old pattern compiled in 8-bit mode ("abc" is
typical). The others require the link size to be 2. */x
<!testsaved8
Compiled pattern loaded from testsaved8
@ -7,7 +8,16 @@ No study data
Error -28 from pcre16_fullinfo(0)
Running in 16-bit mode but pattern was compiled in 8-bit mode
/-- Generated from: ^[aL](?P<name>(?:[AaLl]+)[^xX-]*?)(?P<other>[\x{150}-\x{250}\x{300}]|[^\x{800}aAs-uS-U\x{d800}-\x{dfff}])++[^#\b\x{500}\x{1000}]{3,5}$ --/
%-- Generated from:
/^[aL](?P<name>(?:[AaLl]+)[^xX-]*?)(?P<other>[\x{150}-\x{250}\x{300}]|
[^\x{800}aAs-uS-U\x{d800}-\x{dfff}])++[^#\b\x{500}\x{1000}]{3,5}$
/x
In 16-bit mode with options: S>testdata/saved16LE-1
FS>testdata/saved16BE-1
In 32-bit mode with options: S>testdata/saved32LE-1
FS>testdata/saved32BE-1
--%x
<!testsaved16LE-1
Compiled pattern loaded from testsaved16LE-1
@ -36,11 +46,11 @@ Capturing subpattern count = 2
Named capturing subpatterns:
name 1
other 2
Options: anchored
Options: anchored extended
No first char
No need char
Subject length lower bound = 6
No set of starting bytes
No starting char list
<!testsaved16BE-1
Compiled pattern loaded from testsaved16BE-1
@ -69,11 +79,11 @@ Capturing subpattern count = 2
Named capturing subpatterns:
name 1
other 2
Options: anchored
Options: anchored extended
No first char
No need char
Subject length lower bound = 6
No set of starting bytes
No starting char list
<!testsaved32LE-1
Compiled pattern loaded from testsaved32LE-1

View File

@ -1,5 +1,6 @@
/-- Tests for reloading pre-compile patterns. The first one gives an error
right away. The others require the linke size to be 2. */
/-- Tests for reloading pre-compiled patterns. The first one gives an error
right away, and can be any old pattern compiled in 8-bit mode ("abc" is
typical). The others require the link size to be 2. */x
<!testsaved8
Compiled pattern loaded from testsaved8
@ -7,7 +8,16 @@ No study data
Error -28 from pcre32_fullinfo(0)
Running in 32-bit mode but pattern was compiled in 8-bit mode
/-- Generated from: ^[aL](?P<name>(?:[AaLl]+)[^xX-]*?)(?P<other>[\x{150}-\x{250}\x{300}]|[^\x{800}aAs-uS-U\x{d800}-\x{dfff}])++[^#\b\x{500}\x{1000}]{3,5}$ --/
%-- Generated from:
/^[aL](?P<name>(?:[AaLl]+)[^xX-]*?)(?P<other>[\x{150}-\x{250}\x{300}]|
[^\x{800}aAs-uS-U\x{d800}-\x{dfff}])++[^#\b\x{500}\x{1000}]{3,5}$
/x
In 16-bit mode with options: S>testdata/saved16LE-1
FS>testdata/saved16BE-1
In 32-bit mode with options: S>testdata/saved32LE-1
FS>testdata/saved32BE-1
--%x
<!testsaved16LE-1
Compiled pattern loaded from testsaved16LE-1
@ -48,11 +58,11 @@ Capturing subpattern count = 2
Named capturing subpatterns:
name 1
other 2
Options: anchored
Options: anchored extended
No first char
No need char
Subject length lower bound = 6
No set of starting bytes
No starting char list
<!testsaved32BE-1
Compiled pattern loaded from testsaved32BE-1
@ -81,10 +91,10 @@ Capturing subpattern count = 2
Named capturing subpatterns:
name 1
other 2
Options: anchored
Options: anchored extended
No first char
No need char
Subject length lower bound = 6
No set of starting bytes
No starting char list
/-- End of testinput21 --/

View File

@ -1,6 +1,16 @@
/-- Tests for reloading pre-compile patterns with UTF-16 or UTF-32 support. */
/-- Generated from: (?P<cbra1>[aZ\x{400}-\x{10ffff}]{4,}[\x{f123}\x{10039}\x{20000}-\x{21234}]?|[A-Cx-z\x{100000}-\x{1000a7}\x{101234}])(?<cb2>[^az]) --/8
%-- Generated from:
/(?P<cbra1>[aZ\x{400}-\x{10ffff}]{4,}
[\x{f123}\x{10039}\x{20000}-\x{21234}]?|
[A-Cx-z\x{100000}-\x{1000a7}\x{101234}])
(?<cb2>[^az])/x
In 16-bit mode with options: S8>testdata/saved16LE-2
FS8>testdata/saved16BE-2
In 32-bit mode with options: S8>testdata/saved32LE-2
FS8>testdata/saved32BE-2
--%8x
<!testsaved16LE-2
Compiled pattern loaded from testsaved16LE-2
@ -23,11 +33,11 @@ Capturing subpattern count = 2
Named capturing subpatterns:
cb2 2
cbra1 1
Options: utf
Options: extended utf
No first char
No need char
Subject length lower bound = 2
No set of starting bytes
No starting char list
<!testsaved16BE-2
Compiled pattern loaded from testsaved16BE-2
@ -50,11 +60,11 @@ Capturing subpattern count = 2
Named capturing subpatterns:
cb2 2
cbra1 1
Options: utf
Options: extended utf
No first char
No need char
Subject length lower bound = 2
No set of starting bytes
No starting char list
<!testsaved32LE-2
Compiled pattern loaded from testsaved32LE-2

View File

@ -1,6 +1,16 @@
/-- Tests for reloading pre-compile patterns with UTF-16 or UTF-32 support. */
/-- Generated from: (?P<cbra1>[aZ\x{400}-\x{10ffff}]{4,}[\x{f123}\x{10039}\x{20000}-\x{21234}]?|[A-Cx-z\x{100000}-\x{1000a7}\x{101234}])(?<cb2>[^az]) --/8
%-- Generated from:
/(?P<cbra1>[aZ\x{400}-\x{10ffff}]{4,}
[\x{f123}\x{10039}\x{20000}-\x{21234}]?|
[A-Cx-z\x{100000}-\x{1000a7}\x{101234}])
(?<cb2>[^az])/x
In 16-bit mode with options: S8>testdata/saved16LE-2
FS8>testdata/saved16BE-2
In 32-bit mode with options: S8>testdata/saved32LE-2
FS8>testdata/saved32BE-2
--%8x
<!testsaved16LE-2
Compiled pattern loaded from testsaved16LE-2
@ -35,11 +45,11 @@ Capturing subpattern count = 2
Named capturing subpatterns:
cb2 2
cbra1 1
Options: utf
Options: extended utf
No first char
No need char
Subject length lower bound = 2
No set of starting bytes
No starting char list
<!testsaved32BE-2
Compiled pattern loaded from testsaved32BE-2
@ -62,10 +72,10 @@ Capturing subpattern count = 2
Named capturing subpatterns:
cb2 2
cbra1 1
Options: utf
Options: extended utf
No first char
No need char
Subject length lower bound = 2
No set of starting bytes
No starting char list
/-- End of testinput22 --/

View File

@ -1,5 +1,7 @@
/-- Tests for the 16-bit library only */
< forbid 8W
/-- Check maximum non-UTF character size --/
/\x{ffff}/
@ -7,14 +9,16 @@
0: \x{ffff}
/\x{10000}/
Failed: character value in \x{...} sequence is too large at offset 8
Failed: character value in \x{} or \o{} is too large at offset 8
/\o{20000}/
/-- Check character ranges --/
/[\H]/BZSI
------------------------------------------------------------------
Bra
[\x00-\x08\x0a-\x1f!-\x9f\x{a1}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{ffff}]
[\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{ffff}]
Ket
End
------------------------------------------------------------------
@ -23,12 +27,25 @@ No options
No first char
No need char
Subject length lower bound = 1
No set of starting bytes
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b
\x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a
\x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9
: ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^
_ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80
\x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f
\x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e
\x9f \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae
\xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd
\xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc
\xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb
\xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea
\xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9
\xfa \xfb \xfc \xfd \xfe \xff
/[\V]/BZSI
------------------------------------------------------------------
Bra
[\x00-\x09\x0e-\x84\x{86}-\x{2027}\x{202a}-\x{ffff}]
[\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{ffff}]
Ket
End
------------------------------------------------------------------
@ -37,6 +54,19 @@ No options
No first char
No need char
Subject length lower bound = 1
No set of starting bytes
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0e
\x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d
\x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >
? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c
d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82
\x83 \x84 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
\x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
\xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
\xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
\xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
\xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
\xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
\xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
\xfc \xfd \xfe \xff
/-- End of testinput23 --/

View File

@ -1,138 +1,6 @@
/-- Tests for the 16-bit library with UTF-16 support only */
/noncharacter/8
\x{fffe}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{ffff}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{1fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{1ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{2fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{2ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{3fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{3ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{4fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{4ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{5fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{5ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{6fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{6ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{7fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{7ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{8fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{8ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{9fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{9ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{afffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{affff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{bfffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{bffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{cfffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{cffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{dfffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{dffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{efffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{effff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{ffffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{fffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{10fffe}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{10ffff}
Error -10 (bad UTF-16 string) offset=1 reason=4
\x{fdd0}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdd1}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdd2}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdd3}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdd4}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdd5}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdd6}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdd7}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdd8}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdd9}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdda}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fddb}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fddc}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fddd}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdde}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fddf}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde0}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde1}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde2}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde3}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde4}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde5}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde6}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde7}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde8}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fde9}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdea}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdeb}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdec}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fded}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdee}
Error -10 (bad UTF-16 string) offset=0 reason=4
\x{fdef}
Error -10 (bad UTF-16 string) offset=0 reason=4
< forbid W
/bad/8
\x{d800}

View File

@ -1,5 +1,7 @@
/-- Tests for the 32-bit library only */
< forbid 8W
/-- Check maximum character size --/
/\x{110000}/
@ -10,6 +12,18 @@
/\x{ffffffff}/
/\x{100000000}/
Failed: character value in \x{} or \o{} is too large at offset 12
/\o{17777777777}/
/\o{20000000000}/
/\o{37777777777}/
/\o{40000000000}/
Failed: character value in \x{} or \o{} is too large at offset 14
/\x{7fffffff}\x{7fffffff}/I
Capturing subpattern count = 0
No options
@ -51,7 +65,7 @@ Need char = \x{800000}
/[\H]/BZSI
------------------------------------------------------------------
Bra
[\x00-\x08\x0a-\x1f!-\x9f\x{a1}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{ffffffff}]
[\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{ffffffff}]
Ket
End
------------------------------------------------------------------
@ -60,12 +74,25 @@ No options
No first char
No need char
Subject length lower bound = 1
No set of starting bytes
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b
\x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a
\x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9
: ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^
_ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80
\x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f
\x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e
\x9f \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae
\xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd
\xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc
\xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb
\xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea
\xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9
\xfa \xfb \xfc \xfd \xfe \xff
/[\V]/BZSI
------------------------------------------------------------------
Bra
[\x00-\x09\x0e-\x84\x{86}-\x{2027}\x{202a}-\x{ffffffff}]
[\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{ffffffff}]
Ket
End
------------------------------------------------------------------
@ -74,6 +101,19 @@ No options
No first char
No need char
Subject length lower bound = 1
No set of starting bytes
Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0e
\x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d
\x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >
? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c
d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82
\x83 \x84 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
\x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
\xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
\xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
\xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
\xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
\xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
\xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
\xfc \xfd \xfe \xff
/-- End of testinput25 --/

View File

@ -1,148 +1,17 @@
/-- Tests for the 32-bit library with UTF-32 support only */
< forbid W
/-- Non-UTF characters --/
/\x{110000}/8
Failed: character value in \x{...} sequence is too large at offset 9
Failed: character value in \x{} or \o{} is too large at offset 9
/\o{4200000}/8
Failed: character value in \x{} or \o{} is too large at offset 10
/\C/8
\x{110000}
Error -10 (bad UTF-32 string) offset=0 reason=3
/-- Invalid UTF-32 --/
/noncharacter/8
\x{fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{1fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{1ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{2fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{2ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{3fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{3ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{4fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{4ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{5fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{5ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{6fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{6ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{7fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{7ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{8fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{8ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{9fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{9ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{afffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{affff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{bfffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{bffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{cfffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{cffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{dfffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{dffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{efffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{effff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{ffffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{10fffe}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{10ffff}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd0}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd1}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd2}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd3}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd4}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd5}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd6}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd7}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd8}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdd9}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdda}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fddb}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fddc}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fddd}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdde}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fddf}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde0}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde1}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde2}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde3}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde4}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde5}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde6}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde7}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde8}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fde9}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdea}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdeb}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdec}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fded}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdee}
Error -10 (bad UTF-32 string) offset=0 reason=2
\x{fdef}
Error -10 (bad UTF-32 string) offset=0 reason=2
/-- End of testinput26 --/

View File

@ -1,6 +1,11 @@
/-- This set of tests checks local-specific features, using the fr_FR locale.
It is not Perl-compatible. There is different version called wintestinput3
f or use on Windows, where the locale is called "french". --/
/-- This set of tests checks local-specific features, using the "fr_FR" locale.
It is not Perl-compatible. When run via RunTest, the locale is edited to
be whichever of "fr_FR", "french", or "fr" is found to exist. There is
different version of this file called wintestinput3 for use on Windows,
where the locale is called "french" and the tests are run using
RunTest.bat. --/
< forbid 8W
/^[\w]+/
*** Failers
@ -88,7 +93,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Starting chars: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
/\w/ISLfr_FR
@ -97,7 +102,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Starting chars: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
<20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
<20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>

174
tools/pcre/testdata/testoutput3A vendored Normal file
View File

@ -0,0 +1,174 @@
/-- This set of tests checks local-specific features, using the "fr_FR" locale.
It is not Perl-compatible. When run via RunTest, the locale is edited to
be whichever of "fr_FR", "french", or "fr" is found to exist. There is
different version of this file called wintestinput3 for use on Windows,
where the locale is called "french" and the tests are run using
RunTest.bat. --/
< forbid 8W
/^[\w]+/
*** Failers
No match
<20>cole
No match
/^[\w]+/Lfr_FR
<20>cole
0: <20>cole
/^[\w]+/
*** Failers
No match
<20>cole
No match
/^[\W]+/
<20>cole
0: \xc9
/^[\W]+/Lfr_FR
*** Failers
0: ***
<20>cole
No match
/[\b]/
\b
0: \x08
*** Failers
No match
a
No match
/[\b]/Lfr_FR
\b
0: \x08
*** Failers
No match
a
No match
/^\w+/
*** Failers
No match
<20>cole
No match
/^\w+/Lfr_FR
<20>cole
0: <20>cole
/(.+)\b(.+)/
<20>cole
0: \xc9cole
1: \xc9
2: cole
/(.+)\b(.+)/Lfr_FR
*** Failers
0: *** Failers
1: ***
2: Failers
<20>cole
No match
/<2F>cole/i
<20>cole
0: \xc9cole
*** Failers
No match
<20>cole
No match
/<2F>cole/iLfr_FR
<20>cole
0: <20>cole
<20>cole
0: <20>cole
/\w/IS
Capturing subpattern count = 0
No options
No first char
No need char
Subject length lower bound = 1
Starting chars: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
/\w/ISLfr_FR
Capturing subpattern count = 0
No options
No first char
No need char
Subject length lower bound = 1
Starting chars: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
<20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
<20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
/^[\xc8-\xc9]/iLfr_FR
<20>cole
0: <20>
<20>cole
0: <20>
/^[\xc8-\xc9]/Lfr_FR
<20>cole
0: <20>
*** Failers
No match
<20>cole
No match
/\W+/Lfr_FR
>>>\xaa<<<
0: >>>
>>>\xba<<<
0: >>>
/[\W]+/Lfr_FR
>>>\xaa<<<
0: >>>
>>>\xba<<<
0: >>>
/[^[:alpha:]]+/Lfr_FR
>>>\xaa<<<
0: >>>
>>>\xba<<<
0: >>>
/\w+/Lfr_FR
>>>\xaa<<<
0: <20>
>>>\xba<<<
0: <20>
/[\w]+/Lfr_FR
>>>\xaa<<<
0: <20>
>>>\xba<<<
0: <20>
/[[:alpha:]]+/Lfr_FR
>>>\xaa<<<
0: <20>
>>>\xba<<<
0: <20>
/[[:alpha:]][[:lower:]][[:upper:]]/DZLfr_FR
------------------------------------------------------------------
Bra
[A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff]
[a-z\xaa\xb5\xba\xdf-\xf6\xf8-\xff]
[A-Z\xc0-\xd6\xd8-\xde]
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
No first char
No need char
/-- End of testinput3 --/

174
tools/pcre/testdata/testoutput3B vendored Normal file
View File

@ -0,0 +1,174 @@
/-- This set of tests checks local-specific features, using the "fr_FR" locale.
It is not Perl-compatible. When run via RunTest, the locale is edited to
be whichever of "fr_FR", "french", or "fr" is found to exist. There is
different version of this file called wintestinput3 for use on Windows,
where the locale is called "french" and the tests are run using
RunTest.bat. --/
< forbid 8W
/^[\w]+/
*** Failers
No match
<20>cole
No match
/^[\w]+/Lfr_FR
<20>cole
0: <20>cole
/^[\w]+/
*** Failers
No match
<20>cole
No match
/^[\W]+/
<20>cole
0: \xc9
/^[\W]+/Lfr_FR
*** Failers
0: ***
<20>cole
No match
/[\b]/
\b
0: \x08
*** Failers
No match
a
No match
/[\b]/Lfr_FR
\b
0: \x08
*** Failers
No match
a
No match
/^\w+/
*** Failers
No match
<20>cole
No match
/^\w+/Lfr_FR
<20>cole
0: <20>cole
/(.+)\b(.+)/
<20>cole
0: \xc9cole
1: \xc9
2: cole
/(.+)\b(.+)/Lfr_FR
*** Failers
0: *** Failers
1: ***
2: Failers
<20>cole
No match
/<2F>cole/i
<20>cole
0: \xc9cole
*** Failers
No match
<20>cole
No match
/<2F>cole/iLfr_FR
<20>cole
0: <20>cole
<20>cole
0: <20>cole
/\w/IS
Capturing subpattern count = 0
No options
No first char
No need char
Subject length lower bound = 1
Starting chars: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
/\w/ISLfr_FR
Capturing subpattern count = 0
No options
No first char
No need char
Subject length lower bound = 1
Starting chars: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
<20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
<20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
/^[\xc8-\xc9]/iLfr_FR
<20>cole
0: <20>
<20>cole
0: <20>
/^[\xc8-\xc9]/Lfr_FR
<20>cole
0: <20>
*** Failers
No match
<20>cole
No match
/\W+/Lfr_FR
>>>\xaa<<<
0: >>>
>>>\xba<<<
0: >>>
/[\W]+/Lfr_FR
>>>\xaa<<<
0: >>>
>>>\xba<<<
0: >>>
/[^[:alpha:]]+/Lfr_FR
>>>\xaa<<<
0: >>>
>>>\xba<<<
0: >>>
/\w+/Lfr_FR
>>>\xaa<<<
0: <20>
>>>\xba<<<
0: <20>
/[\w]+/Lfr_FR
>>>\xaa<<<
0: <20>
>>>\xba<<<
0: <20>
/[[:alpha:]]+/Lfr_FR
>>>\xaa<<<
0: <20>
>>>\xba<<<
0: <20>
/[[:alpha:]][[:lower:]][[:upper:]]/DZLfr_FR
------------------------------------------------------------------
Bra
[A-Za-z\x83\x8a\x8c\x8e\x9a\x9c\x9e\x9f\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff]
[a-z\x83\x9a\x9c\x9e\xaa\xb5\xba\xdf-\xf6\xf8-\xff]
[A-Z\x8a\x8c\x8e\x9f\xc0-\xd6\xd8-\xde]
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
No first char
No need char
/-- End of testinput3 --/

View File

@ -1,6 +1,8 @@
/-- This set of tests is for UTF support, excluding Unicode properties. It is
compatible with all versions of Perl >= 5.10 and both the 8-bit and 16-bit
PCRE libraries. --/
< forbid 9?=ABCDEFfGILMNPTUWXZ<
/a.b/8
acb
@ -1091,4 +1093,182 @@ MK: a\x{1234}b
0: a
MK: a\x{a3}b
/-- Noncharacters --/
/./8
\x{fffe}
0: \x{fffe}
\x{ffff}
0: \x{ffff}
\x{1fffe}
0: \x{1fffe}
\x{1ffff}
0: \x{1ffff}
\x{2fffe}
0: \x{2fffe}
\x{2ffff}
0: \x{2ffff}
\x{3fffe}
0: \x{3fffe}
\x{3ffff}
0: \x{3ffff}
\x{4fffe}
0: \x{4fffe}
\x{4ffff}
0: \x{4ffff}
\x{5fffe}
0: \x{5fffe}
\x{5ffff}
0: \x{5ffff}
\x{6fffe}
0: \x{6fffe}
\x{6ffff}
0: \x{6ffff}
\x{7fffe}
0: \x{7fffe}
\x{7ffff}
0: \x{7ffff}
\x{8fffe}
0: \x{8fffe}
\x{8ffff}
0: \x{8ffff}
\x{9fffe}
0: \x{9fffe}
\x{9ffff}
0: \x{9ffff}
\x{afffe}
0: \x{afffe}
\x{affff}
0: \x{affff}
\x{bfffe}
0: \x{bfffe}
\x{bffff}
0: \x{bffff}
\x{cfffe}
0: \x{cfffe}
\x{cffff}
0: \x{cffff}
\x{dfffe}
0: \x{dfffe}
\x{dffff}
0: \x{dffff}
\x{efffe}
0: \x{efffe}
\x{effff}
0: \x{effff}
\x{ffffe}
0: \x{ffffe}
\x{fffff}
0: \x{fffff}
\x{10fffe}
0: \x{10fffe}
\x{10ffff}
0: \x{10ffff}
\x{fdd0}
0: \x{fdd0}
\x{fdd1}
0: \x{fdd1}
\x{fdd2}
0: \x{fdd2}
\x{fdd3}
0: \x{fdd3}
\x{fdd4}
0: \x{fdd4}
\x{fdd5}
0: \x{fdd5}
\x{fdd6}
0: \x{fdd6}
\x{fdd7}
0: \x{fdd7}
\x{fdd8}
0: \x{fdd8}
\x{fdd9}
0: \x{fdd9}
\x{fdda}
0: \x{fdda}
\x{fddb}
0: \x{fddb}
\x{fddc}
0: \x{fddc}
\x{fddd}
0: \x{fddd}
\x{fdde}
0: \x{fdde}
\x{fddf}
0: \x{fddf}
\x{fde0}
0: \x{fde0}
\x{fde1}
0: \x{fde1}
\x{fde2}
0: \x{fde2}
\x{fde3}
0: \x{fde3}
\x{fde4}
0: \x{fde4}
\x{fde5}
0: \x{fde5}
\x{fde6}
0: \x{fde6}
\x{fde7}
0: \x{fde7}
\x{fde8}
0: \x{fde8}
\x{fde9}
0: \x{fde9}
\x{fdea}
0: \x{fdea}
\x{fdeb}
0: \x{fdeb}
\x{fdec}
0: \x{fdec}
\x{fded}
0: \x{fded}
\x{fdee}
0: \x{fdee}
\x{fdef}
0: \x{fdef}
/^\d*\w{4}/8
1234
0: 1234
123
No match
/^[^b]*\w{4}/8
aaaa
0: aaaa
aaa
No match
/^[^b]*\w{4}/8i
aaaa
0: aaaa
aaa
No match
/^\x{100}*.{4}/8
\x{100}\x{100}\x{100}\x{100}
0: \x{100}\x{100}\x{100}\x{100}
\x{100}\x{100}\x{100}
No match
/^\x{100}*.{4}/8i
\x{100}\x{100}\x{100}\x{100}
0: \x{100}\x{100}\x{100}\x{100}
\x{100}\x{100}\x{100}
No match
/^a+[a\x{200}]/8
aa
0: aa
/^.\B.\B./8
\x{10123}\x{10124}\x{10125}
0: \x{10123}\x{10124}\x{10125}
/^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/8
#\x{10000}#\x{100}#\x{10ffff}#
0: #\x{10000}#\x{100}#\x{10ffff}#
/-- End of testinput4 --/

View File

@ -1,26 +1,47 @@
/-- This set of tests checks the API, internals, and non-Perl stuff for UTF
support, excluding Unicode properties. However, tests that give different
results in 8-bit and 16-bit modes are excluded (see tests 16 and 17). --/
< forbid W
/\x{110000}/8DZ
Failed: character value in \x{...} sequence is too large at offset 9
Failed: character value in \x{} or \o{} is too large at offset 9
/\o{4200000}/8DZ
Failed: character value in \x{} or \o{} is too large at offset 10
/\x{ffffffff}/8
Failed: character value in \x{...} sequence is too large at offset 11
Failed: character value in \x{} or \o{} is too large at offset 11
/\o{37777777777}/8
Failed: character value in \x{} or \o{} is too large at offset 14
/\x{100000000}/8
Failed: character value in \x{...} sequence is too large at offset 12
Failed: character value in \x{} or \o{} is too large at offset 12
/\o{77777777777}/8
Failed: character value in \x{} or \o{} is too large at offset 14
/\x{d800}/8
Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
/\o{154000}/8
Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 9
/\x{dfff}/8
Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
/\o{157777}/8
Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 9
/\x{d7ff}/8
/\o{153777}/8
/\x{e000}/8
/\o{170000}/8
/^\x{100}a\x{1234}/8
\x{100}a\x{1234}bcd
0: \x{100}a\x{1234}
@ -146,11 +167,12 @@ No match
/\x{100}*/8DZ
------------------------------------------------------------------
Bra
\x{100}*
\x{100}*+
Ket
End
------------------------------------------------------------------
Capturing subpattern count = 0
May match empty string
Options: utf
No first char
No need char
@ -159,7 +181,7 @@ No need char
------------------------------------------------------------------
Bra
a
\x{100}*
\x{100}*+
Ket
End
------------------------------------------------------------------
@ -172,7 +194,7 @@ No need char
------------------------------------------------------------------
Bra
ab
\x{100}*
\x{100}*+
Ket
End
------------------------------------------------------------------
@ -248,7 +270,7 @@ No match
/[z-\x{100}]/8DZ
------------------------------------------------------------------
Bra
[z-\x{100}]
[z-\xff\x{100}]
Ket
End
------------------------------------------------------------------
@ -373,6 +395,7 @@ Need char = 'z'
End
------------------------------------------------------------------
Capturing subpattern count = 2
May match empty string
Options: utf
No first char
No need char
@ -404,6 +427,7 @@ No need char
End
------------------------------------------------------------------
Capturing subpattern count = 2
May match empty string
Options: utf
No first char
No need char
@ -424,6 +448,7 @@ No need char
End
------------------------------------------------------------------
Capturing subpattern count = 2
May match empty string
Options: utf
No first char
No need char
@ -455,6 +480,7 @@ No need char
End
------------------------------------------------------------------
Capturing subpattern count = 2
May match empty string
Options: utf
No first char
No need char
@ -768,7 +794,7 @@ No match
/[\h]{3,}/8BZ
------------------------------------------------------------------
Bra
[\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]{3,}
[\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]{3,}+
Ket
End
------------------------------------------------------------------
@ -786,7 +812,7 @@ No match
/[\H]/8BZ
------------------------------------------------------------------
Bra
[\x00-\x08\x0a-\x1f!-\x9f\x{a1}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}]
[\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}]
Ket
End
------------------------------------------------------------------
@ -794,7 +820,7 @@ No match
/[\V]/8BZ
------------------------------------------------------------------
Bra
[\x00-\x09\x0e-\x84\x{86}-\x{2027}\x{202a}-\x{10ffff}]
[\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}]
Ket
End
------------------------------------------------------------------
@ -1510,7 +1536,7 @@ Options: caseless utf
Capturing subpattern count = 0
Options: caseless utf
No first char
No need char
No need char
Subject length lower bound = 1
No starting char list
@ -1518,7 +1544,7 @@ Options: caseless utf
Capturing subpattern count = 0
Options: caseless utf
No first char
No need char
No need char
Subject length lower bound = 1
No starting char list
@ -1526,7 +1552,7 @@ Options: caseless utf
Capturing subpattern count = 0
Options: caseless utf
No first char
No need char
No need char
Subject length lower bound = 1
No starting char list
@ -1534,7 +1560,7 @@ Options: caseless utf
Capturing subpattern count = 0
Options: caseless utf
No first char
No need char
No need char
Subject length lower bound = 2
No starting char list
@ -1572,7 +1598,7 @@ Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
0: \x{200a}\x{a0}\x{2000}
/[\h\x{e000}]+/8BZ
------------------------------------------------------------------
------------------------------------------------------------------
Bra
[\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{e000}]++
Ket
@ -1594,7 +1620,7 @@ Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
0: \x{9f}\x{a1}\x{2fff}\x{3001}
/[\H\x{d7ff}]+/8BZ
------------------------------------------------------------------
------------------------------------------------------------------
Bra
[\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}\x{d7ff}]++
Ket
@ -1616,7 +1642,7 @@ Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
/[\v\x{e000}]+/8BZ
------------------------------------------------------------------
------------------------------------------------------------------
Bra
[\x0a-\x0d\x85\x{2028}-\x{2029}\x{e000}]++
Ket
@ -1634,7 +1660,7 @@ Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
0: \x{09}\x{0e}\x{84}\x{86}
/[\V\x{d7ff}]+/8BZ
------------------------------------------------------------------
------------------------------------------------------------------
Bra
[\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}\x{d7ff}]++
Ket
@ -1808,20 +1834,18 @@ Partial match: \x{0d}\x{0d}
/i [^\x{10ffff}]??
/i [^\x{8000}]{4}
/i [^\x{8000}]*
/i [^\x{7fff}]{2}
/i [^\x{7fff}]{2}
Once
/i [^\x{fffff}]{5}
/i [^\x{7fff}]{0,7}?
/i [^\x{fffff}]{5}
/i [^\x{fffff}]?+
Ket
End
------------------------------------------------------------------
/(?<=\x{1234}\x{1234})\bxy/I8
Capturing subpattern count = 0
Max lookbehind = 2
Options: utf
First char = 'x'
First char = 'x'
Need char = 'y'
@ -1846,4 +1870,31 @@ No match
------------------------------------------------------------------
/\ud800/<JS>8
Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 5
/^a+[a\x{200}]/8BZ
------------------------------------------------------------------
Bra
^
a+
[a\x{200}]
Ket
End
------------------------------------------------------------------
aa
0: aa
/[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/8BZ
------------------------------------------------------------------
Bra
[b-d\x{200}-\x{250}]*+
[ae-h]?+
#
[\x{200}-\x{250}]{0,8}+
[\x00-\xff]*
#
[\x{200}-\x{250}]++
[a-z]
Ket
End
------------------------------------------------------------------

View File

@ -1,5 +1,7 @@
/-- This set of tests is for Unicode property support. It is compatible with
Perl >= 5.15. --/
< forbid 9?=ABCDEFfGILMNPTUXZ<
/^\pC\pL\pM\pN\pP\pS\pZ</8
\x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
@ -543,16 +545,6 @@ No match
abc
No match
/\p{Lu}/8i
A
0: A
aZ
0: Z
** Failers
0: F
abc
No match
/\p{Ll}/8
a
0: a
@ -727,6 +719,8 @@ No match
0: \x{6e9}
\x{060b}
0: \x{60b}
\x{061c}
0: \x{61c}
** Failers
No match
X\x{06e9}
@ -1310,7 +1304,7 @@ No match
/^>\s+/8W
>\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{09}
0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{09}\x{0b}
/^>\pZ+/8W
>\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
@ -1338,15 +1332,15 @@ No match
/^[[:graph:]]*/8W
A\x{a1}\x{a0}
0: A
0: A\x{a1}
/^[[:print:]]*/8W
A z\x{a0}\x{a1}
0: A z
0: A z\x{a0}\x{a1}
/^[[:punct:]]*/8W
.+\x{a1}\x{a0}
0: .+
0: .+\x{a1}
/\p{Zs}*?\R/
** Failers
@ -1548,6 +1542,19 @@ No match
0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
0+
/\X*Z/8Y
A\x{300}
No match
/\X*(.)/8Y
A\x{1111}\x{ae4c}\x{1169}
0: A\x{1111}
1: \x{1111}
/\X?abc/8Y
\xff\x7f\x00\x00\x03\x00\x41\xcc\x80\x41\x{300}\x61\x62\x63\x00\>06\?
0: A\x{300}abc
/-- --/
/\x{1e9e}+/8i
@ -2134,4 +2141,320 @@ No match
\x{0053}\x{0073}\x{017f}
0: Ss\x{17f}
/^\p{Any}*\d{4}/8
1234
0: 1234
123
No match
/^\X*\w{4}/8
1234
0: 1234
123
No match
/^A\s+Z/8W
A\x{2005}Z
0: A\x{2005}Z
A\x{85}\x{180e}\x{2005}Z
0: A\x{85}\x{180e}\x{2005}Z
/^A[\s]+Z/8W
A\x{2005}Z
0: A\x{2005}Z
A\x{85}\x{180e}\x{2005}Z
0: A\x{85}\x{180e}\x{2005}Z
/^[[:graph:]]+$/8W
Letter:ABC
0: Letter:ABC
Mark:\x{300}\x{1d172}\x{1d17b}
0: Mark:\x{300}\x{1d172}\x{1d17b}
Number:9\x{660}
0: Number:9\x{660}
Punctuation:\x{66a},;
0: Punctuation:\x{66a},;
Symbol:\x{6de}<>\x{fffc}
0: Symbol:\x{6de}<>\x{fffc}
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
0: Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
0: \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
0: \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
0: \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
0: \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
\x{feff}
0: \x{feff}
\x{fff9}\x{fffa}\x{fffb}
0: \x{fff9}\x{fffa}\x{fffb}
\x{110bd}
0: \x{110bd}
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
0: \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
\x{e0001}
0: \x{e0001}
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
0: \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
** Failers
No match
\x{09}
No match
\x{0a}
No match
\x{1D}
No match
\x{20}
No match
\x{85}
No match
\x{a0}
No match
\x{61c}
No match
\x{1680}
No match
\x{180e}
No match
\x{2028}
No match
\x{2029}
No match
\x{202f}
No match
\x{2065}
No match
\x{2066}
No match
\x{2067}
No match
\x{2068}
No match
\x{2069}
No match
\x{3000}
No match
\x{e0002}
No match
\x{e001f}
No match
\x{e0080}
No match
/^[[:print:]]+$/8W
Space: \x{a0}
0: Space: \x{a0}
\x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
0: \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
\x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
0: \x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
\x{202f}\x{205f}
0: \x{202f}\x{205f}
\x{3000}
0: \x{3000}
Letter:ABC
0: Letter:ABC
Mark:\x{300}\x{1d172}\x{1d17b}
0: Mark:\x{300}\x{1d172}\x{1d17b}
Number:9\x{660}
0: Number:9\x{660}
Punctuation:\x{66a},;
0: Punctuation:\x{66a},;
Symbol:\x{6de}<>\x{fffc}
0: Symbol:\x{6de}<>\x{fffc}
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
0: Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
\x{180e}
0: \x{180e}
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
0: \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
0: \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
\x{202f}
0: \x{202f}
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
0: \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
0: \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
\x{feff}
0: \x{feff}
\x{fff9}\x{fffa}\x{fffb}
0: \x{fff9}\x{fffa}\x{fffb}
\x{110bd}
0: \x{110bd}
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
0: \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
\x{e0001}
0: \x{e0001}
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
0: \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
** Failers
0: ** Failers
\x{09}
No match
\x{1D}
No match
\x{85}
No match
\x{61c}
No match
\x{2028}
No match
\x{2029}
No match
\x{2065}
No match
\x{2066}
No match
\x{2067}
No match
\x{2068}
No match
\x{2069}
No match
\x{e0002}
No match
\x{e001f}
No match
\x{e0080}
No match
/^[[:punct:]]+$/8W
\$+<=>^`|~
0: $+<=>^`|~
!\"#%&'()*,-./:;?@[\\]_{}
0: !"#%&'()*,-./:;?@[\]_{}
\x{a1}\x{a7}
0: \x{a1}\x{a7}
\x{37e}
0: \x{37e}
** Failers
No match
abcde
No match
/^[[:^graph:]]+$/8W
\x{09}\x{0a}\x{1D}\x{20}\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}
\x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069}
0: \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069}
\x{3000}\x{e0002}\x{e001f}\x{e0080}
0: \x{3000}\x{e0002}\x{e001f}\x{e0080}
** Failers
No match
Letter:ABC
No match
Mark:\x{300}\x{1d172}\x{1d17b}
No match
Number:9\x{660}
No match
Punctuation:\x{66a},;
No match
Symbol:\x{6de}<>\x{fffc}
No match
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
No match
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
No match
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
No match
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
No match
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
No match
\x{feff}
No match
\x{fff9}\x{fffa}\x{fffb}
No match
\x{110bd}
No match
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
No match
\x{e0001}
No match
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
No match
/^[[:^print:]]+$/8W
\x{09}\x{1D}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067}
0: \x{09}\x{1d}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067}
\x{2068}\x{2069}\x{e0002}\x{e001f}\x{e0080}
0: \x{2068}\x{2069}\x{e0002}\x{e001f}\x{e0080}
** Failers
No match
Space: \x{a0}
No match
\x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
No match
\x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
No match
\x{202f}\x{205f}
No match
\x{3000}
No match
Letter:ABC
No match
Mark:\x{300}\x{1d172}\x{1d17b}
No match
Number:9\x{660}
No match
Punctuation:\x{66a},;
No match
Symbol:\x{6de}<>\x{fffc}
No match
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
No match
\x{180e}
No match
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
No match
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
No match
\x{202f}
No match
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
No match
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
No match
\x{feff}
No match
\x{fff9}\x{fffa}\x{fffb}
No match
\x{110bd}
No match
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
No match
\x{e0001}
No match
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
No match
/^[[:^punct:]]+$/8W
abcde
0: abcde
** Failers
No match
\$+<=>^`|~
No match
!\"#%&'()*,-./:;?@[\\]_{}
No match
\x{a1}\x{a7}
No match
\x{37e}
No match
/[RST]+/8iW
Ss\x{17f}
0: Ss\x{17f}
/[R-T]+/8iW
Ss\x{17f}
0: Ss\x{17f}
/[q-u]+/8iW
Ss\x{17f}
0: Ss\x{17f}
/-- End of testinput6 --/

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,8 @@
/-- This set of tests check the DFA matching functionality of pcre_dfa_exec().
The -dfa flag must be used with pcretest when running it. --/
/-- This set of tests check the DFA matching functionality of pcre_dfa_exec(),
excluding UTF and Unicode property support. The -dfa flag must be used with
pcretest when running it. --/
< forbid 8W
/abc/
abc
@ -25,7 +28,7 @@ No match
ab
No match
/a*/
/a*/O
a
0: a
1:
@ -49,7 +52,7 @@ No match
16: a
17:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Matched, but too many subsidiary matches
Matched, but offsets vector is too small to show all matches
0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa
@ -341,7 +344,7 @@ No match
axyzq
No match
/[^a]+/
/[^a]+/O
bac
0: b
bcdefax
@ -359,7 +362,7 @@ No match
aaaaa
No match
/[^a]*/
/[^a]*/O
bac
0: b
1:
@ -380,7 +383,7 @@ No match
aaaaa
0:
/[^a]{3,5}/
/[^a]{3,5}/O
xyz
0: xyz
awxyza
@ -408,29 +411,18 @@ No match
/\d*/
1234b567
0: 1234
1: 123
2: 12
3: 1
4:
xyz
0:
/\D*/
a1234b567
0: a
1:
xyz
0: xyz
1: xy
2: x
3:
/\d+/
ab1234c56
0: 1234
1: 123
2: 12
3: 1
*** Failers
No match
xyz
@ -439,19 +431,8 @@ No match
/\D+/
ab123c56
0: ab
1: a
*** Failers
0: *** Failers
1: *** Failer
2: *** Faile
3: *** Fail
4: *** Fai
5: *** Fa
6: *** F
7: ***
8: ***
9: **
10: *
789
No match
@ -478,9 +459,6 @@ No match
/a+/
aaaa
0: aaaa
1: aaa
2: aa
3: a
/^.*xyz/
xyz
@ -886,9 +864,6 @@ No match
0:
aaabcd
0: aaa
1: aa
2: a
3:
xyz
0: xyz
1:
@ -985,7 +960,7 @@ Partial match: abc
xyzfo\P
No match
foob\P\>2
Partial match: foob
Partial match at offset 3: foob
foobar...\R\P\>4
0: ar
xyzfo\P
@ -1577,18 +1552,6 @@ No match
/^[.^$|()*+?{,}]+/
.^\$(*+)|{?,?}
0: .^$(*+)|{?,?}
1: .^$(*+)|{?,?
2: .^$(*+)|{?,
3: .^$(*+)|{?
4: .^$(*+)|{
5: .^$(*+)|
6: .^$(*+)
7: .^$(*+
8: .^$(*
9: .^$(
10: .^$
11: .^
12: .
/^a*\w/
z
@ -1744,38 +1707,16 @@ No match
/foo(?!bar)(.*)/
foobar is foolish see?
0: foolish see?
1: foolish see
2: foolish se
3: foolish s
4: foolish
5: foolish
6: foolis
7: fooli
8: fool
9: foo
/(?:(?!foo)...|^.{0,2})bar(.*)/
foobar crowbar etc
0: rowbar etc
1: rowbar et
2: rowbar e
3: rowbar
4: rowbar
barrel
0: barrel
1: barre
2: barr
3: bar
2barrel
0: 2barrel
1: 2barre
2: 2barr
3: 2bar
A barrel
0: A barrel
1: A barre
2: A barr
3: A bar
/^(\D*)(?=\d)(?!123)/
abc456
@ -1820,7 +1761,7 @@ No match
the abc
No match
/^[ab]{1,3}(ab*|b)/
/^[ab]{1,3}(ab*|b)/O
aabbbbb
0: aabbbbb
1: aabbbb
@ -1829,7 +1770,7 @@ No match
4: aab
5: aa
/^[ab]{1,3}?(ab*|b)/
/^[ab]{1,3}?(ab*|b)/O
aabbbbb
0: aabbbbb
1: aabbbb
@ -1838,7 +1779,7 @@ No match
4: aab
5: aa
/^[ab]{1,3}?(ab*?|b)/
/^[ab]{1,3}?(ab*?|b)/O
aabbbbb
0: aabbbbb
1: aabbbb
@ -1847,7 +1788,7 @@ No match
4: aab
5: aa
/^[ab]{1,3}(ab*?|b)/
/^[ab]{1,3}(ab*?|b)/O
aabbbbb
0: aabbbbb
1: aabbbb
@ -2705,10 +2646,6 @@ No match
/\0*/
\0\0\0\0
0: \x00\x00\x00\x00
1: \x00\x00\x00
2: \x00\x00
3: \x00
4:
/A\x0{2,3}Z/
The A\x0\x0Z
@ -2760,56 +2697,14 @@ No match
/([^.]*)\.([^:]*):[T ]+(.*)/
track1.title:TBlah blah blah
0: track1.title:TBlah blah blah
1: track1.title:TBlah blah bla
2: track1.title:TBlah blah bl
3: track1.title:TBlah blah b
4: track1.title:TBlah blah
5: track1.title:TBlah blah
6: track1.title:TBlah bla
7: track1.title:TBlah bl
8: track1.title:TBlah b
9: track1.title:TBlah
10: track1.title:TBlah
11: track1.title:TBla
12: track1.title:TBl
13: track1.title:TB
14: track1.title:T
/([^.]*)\.([^:]*):[T ]+(.*)/i
track1.title:TBlah blah blah
0: track1.title:TBlah blah blah
1: track1.title:TBlah blah bla
2: track1.title:TBlah blah bl
3: track1.title:TBlah blah b
4: track1.title:TBlah blah
5: track1.title:TBlah blah
6: track1.title:TBlah bla
7: track1.title:TBlah bl
8: track1.title:TBlah b
9: track1.title:TBlah
10: track1.title:TBlah
11: track1.title:TBla
12: track1.title:TBl
13: track1.title:TB
14: track1.title:T
/([^.]*)\.([^:]*):[t ]+(.*)/i
track1.title:TBlah blah blah
0: track1.title:TBlah blah blah
1: track1.title:TBlah blah bla
2: track1.title:TBlah blah bl
3: track1.title:TBlah blah b
4: track1.title:TBlah blah
5: track1.title:TBlah blah
6: track1.title:TBlah bla
7: track1.title:TBlah bl
8: track1.title:TBlah b
9: track1.title:TBlah
10: track1.title:TBlah
11: track1.title:TBla
12: track1.title:TBl
13: track1.title:TB
14: track1.title:T
/^[W-c]+$/
WXY_^abc
@ -2882,13 +2777,10 @@ No match
0: b
c::b
0: ::
1: :
/[-az]+/
az-
0: az-
1: az
2: a
*** Failers
0: a
b
@ -2897,8 +2789,6 @@ No match
/[az-]+/
za-
0: za-
1: za
2: z
*** Failers
0: a
b
@ -2907,8 +2797,6 @@ No match
/[a\-z]+/
a-z
0: a-z
1: a-
2: a
*** Failers
0: a
b
@ -2917,20 +2805,10 @@ No match
/[a-z]+/
abcdxyz
0: abcdxyz
1: abcdxy
2: abcdx
3: abcd
4: abc
5: ab
6: a
/[\d-]+/
12-34
0: 12-34
1: 12-3
2: 12-
3: 12
4: 1
*** Failers
No match
aaa
@ -2939,11 +2817,6 @@ No match
/[\d-z]+/
12-34z
0: 12-34z
1: 12-34
2: 12-3
3: 12-
4: 12
5: 1
*** Failers
No match
aaa
@ -3027,18 +2900,22 @@ No match
abc\100\60
0: abc@0
/abc\81/
abc\081
0: abc\x0081
abc\0\x38\x31
0: abc\x0081
/abc\91/
abc\091
0: abc\x0091
abc\0\x39\x31
0: abc\x0091
/^A\8B\9C$/
A8B9C
0: A8B9C
*** Failers
No match
A\08B\09C
No match
/^[A\8B\9C]+$/
A8B9C
0: A8B9C
*** Failers
No match
A8B9C\x00
No match
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
abcdefghijk\12S
0: abcdefghijk\x0aS
@ -3077,16 +2954,13 @@ No match
1: baNOTccc
2: baNOTcc
3: baNOTc
4: baNOT
baNOTcccd
0: baNOTccc
1: baNOTcc
2: baNOTc
3: baNOT
baNOTccd
0: baNOTcc
1: baNOTc
2: baNOT
bacccd
0: baccc
*** Failers
@ -3096,7 +2970,6 @@ No match
3: *** Fail
4: *** Fai
5: *** Fa
6: *** F
anything
No match
b\bc
@ -3115,23 +2988,14 @@ No match
/[^a]+/
AAAaAbc
0: AAA
1: AA
2: A
/[^a]+/i
AAAaAbc
0: bc
1: b
/[^a]+/
bbb\nccc
0: bbb\x0accc
1: bbb\x0acc
2: bbb\x0ac
3: bbb\x0a
4: bbb
5: bb
6: b
/[^k]$/
abc
@ -3208,20 +3072,8 @@ No match
/(\.\d\d[1-9]?)\d+/
1.230003938
0: .230003938
1: .23000393
2: .2300039
3: .230003
4: .23000
5: .2300
6: .230
1.875000282
0: .875000282
1: .87500028
2: .8750002
3: .875000
4: .87500
5: .8750
6: .875
1.235
0: .235
@ -3243,10 +3095,6 @@ No match
/\b(foo)\s+(\w+)/i
Food is on the foo table
0: foo table
1: foo tabl
2: foo tab
3: foo ta
4: foo t
/foo(.*)bar/
The food is under the bar in the barn.
@ -3258,9 +3106,9 @@ No match
0: food is under the bar in the bar
1: food is under the bar
/(.*)(\d*)/
/(.*)(\d*)/O
I have 2 numbers: 53147
Matched, but too many subsidiary matches
Matched, but offsets vector is too small to show all matches
0: I have 2 numbers: 53147
1: I have 2 numbers: 5314
2: I have 2 numbers: 531
@ -3287,15 +3135,11 @@ Matched, but too many subsidiary matches
/(.*)(\d+)/
I have 2 numbers: 53147
0: I have 2 numbers: 53147
1: I have 2 numbers: 5314
2: I have 2 numbers: 531
3: I have 2 numbers: 53
4: I have 2 numbers: 5
5: I have 2
1: I have 2
/(.*?)(\d*)/
/(.*?)(\d*)/O
I have 2 numbers: 53147
Matched, but too many subsidiary matches
Matched, but offsets vector is too small to show all matches
0: I have 2 numbers: 53147
1: I have 2 numbers: 5314
2: I have 2 numbers: 531
@ -3322,11 +3166,7 @@ Matched, but too many subsidiary matches
/(.*?)(\d+)/
I have 2 numbers: 53147
0: I have 2 numbers: 53147
1: I have 2 numbers: 5314
2: I have 2 numbers: 531
3: I have 2 numbers: 53
4: I have 2 numbers: 5
5: I have 2
1: I have 2
/(.*)(\d+)$/
I have 2 numbers: 53147
@ -3738,13 +3578,8 @@ No match
0: a
ab
0: ab
1: a
abbbb
0: abbbb
1: abbb
2: abb
3: ab
4: a
*** Failers
0: a
bbbbb
@ -3930,19 +3765,8 @@ No match
/(?>(\.\d\d[1-9]?))\d+/
1.230003938
0: .230003938
1: .23000393
2: .2300039
3: .230003
4: .23000
5: .2300
6: .230
1.875000282
0: .875000282
1: .87500028
2: .8750002
3: .875000
4: .87500
5: .8750
*** Failers
No match
1.235
@ -4561,7 +4385,6 @@ No match
/.{3,4}/
abbbbc
0: abbb
1: abb
/ab{0,}bc/
abbbbc
@ -4929,9 +4752,6 @@ No match
/[^ab]*/
cde
0: cde
1: cd
2: c
3:
/abc/
*** Failers
@ -4966,7 +4786,6 @@ No match
/ab*/
xabyabbbz
0: ab
1: a
xayabbbz
0: a
@ -4995,8 +4814,7 @@ No match
/a([bc]*)c*/
abc
0: abc
1: ab
2: a
1: a
/a([bc]*)(c*d)/
abcd
@ -5033,10 +4851,6 @@ No match
/[a-zA-Z_][a-zA-Z0-9_]*/
alpha
0: alpha
1: alph
2: alp
3: al
4: a
/^a(bc+|b[eh])g|.h$/
abh
@ -5079,8 +4893,6 @@ No match
/(.*)c(.*)/
abcde
0: abcde
1: abcd
2: abc
/\((.*), (.*)\)/
(a, b)
@ -5395,9 +5207,6 @@ No match
/[^ab]*/i
CDE
0: CDE
1: CD
2: C
3:
/abc/i
@ -5427,7 +5236,6 @@ No match
/ab*/i
XABYABBBZ
0: AB
1: A
XAYABBBZ
0: A
@ -5458,8 +5266,7 @@ No match
/a([bc]*)c*/i
ABC
0: ABC
1: AB
2: A
1: A
/a([bc]*)(c*d)/i
ABCD
@ -5490,10 +5297,6 @@ No match
/[a-zA-Z_][a-zA-Z0-9_]*/i
ALPHA
0: ALPHA
1: ALPH
2: ALP
3: AL
4: A
/^a(bc+|b[eh])g|.h$/i
ABH
@ -5546,8 +5349,6 @@ No match
/(.*)c(.*)/i
ABCDE
0: ABCDE
1: ABCD
2: ABC
/\((.*), (.*)\)/i
(A, B)
@ -6052,17 +5853,14 @@ No match
/([[:]+)/
a:[b]:
0: :[
1: :
/([[=]+)/
a=[b]=
0: =[
1: =
/([[.]+)/
a.[b].
0: .[
1: .
/((?>a+)b)/
aaab
@ -6196,26 +5994,12 @@ No match
/a*/g
abbab
0: a
1:
0:
0:
0: a
1:
0:
0:
/^[a-\d]/
abcde
0: a
-things
0: -
0digit
0: 0
*** Failers
No match
bcdef
No match
/^[\d-a]/
abcde
0: a
@ -6231,36 +6015,22 @@ No match
/[[:space:]]+/
> \x09\x0a\x0c\x0d\x0b<
0: \x09\x0a\x0c\x0d\x0b
1: \x09\x0a\x0c\x0d
2: \x09\x0a\x0c
3: \x09\x0a
4: \x09
5:
/[[:blank:]]+/
> \x09\x0a\x0c\x0d\x0b<
0: \x09
1:
/[\s]+/
> \x09\x0a\x0c\x0d\x0b<
0: \x09\x0a\x0c\x0d
1: \x09\x0a\x0c
2: \x09\x0a
3: \x09
4:
0: \x09\x0a\x0c\x0d\x0b
/\s+/
> \x09\x0a\x0c\x0d\x0b<
0: \x09\x0a\x0c\x0d
1: \x09\x0a\x0c
2: \x09\x0a
3: \x09
4:
0: \x09\x0a\x0c\x0d\x0b
/a b/x
ab
No match
0: ab
/(?!\A)x/m
a\nxb\n
@ -6563,8 +6333,6 @@ Partial match: 123
/Content-Type\x3A[^\r\n]{6,}/
Content-Type:xxxxxyyy
0: Content-Type:xxxxxyyy
1: Content-Type:xxxxxyy
2: Content-Type:xxxxxy
/Content-Type\x3A[^\r\n]{6,}z/
Content-Type:xxxxxyyyz
@ -6661,66 +6429,22 @@ No match
/.*/<lf>
abc\ndef
0: abc
1: ab
2: a
3:
abc\rdef
0: abc\x0ddef
1: abc\x0dde
2: abc\x0dd
3: abc\x0d
4: abc
5: ab
6: a
7:
abc\r\ndef
0: abc\x0d
1: abc
2: ab
3: a
4:
\<cr>abc\ndef
0: abc\x0adef
1: abc\x0ade
2: abc\x0ad
3: abc\x0a
4: abc
5: ab
6: a
7:
\<cr>abc\rdef
0: abc
1: ab
2: a
3:
\<cr>abc\r\ndef
0: abc
1: ab
2: a
3:
\<crlf>abc\ndef
0: abc\x0adef
1: abc\x0ade
2: abc\x0ad
3: abc\x0a
4: abc
5: ab
6: a
7:
\<crlf>abc\rdef
0: abc\x0ddef
1: abc\x0dde
2: abc\x0dd
3: abc\x0d
4: abc
5: ab
6: a
7:
\<crlf>abc\r\ndef
0: abc
1: ab
2: a
3:
/\w+(.)(.)?def/s
abc\ndef
@ -7033,10 +6757,8 @@ No match
/\H*\h+\V?\v{3,4}/
\x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
0: \x09 \xa0X\x0a\x0b\x0c\x0d
1: \x09 \xa0X\x0a\x0b\x0c
\x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
0: \x09 \xa0\x0a\x0b\x0c\x0d
1: \x09 \xa0\x0a\x0b\x0c
\x09\x20\xa0\x0a\x0b\x0c
0: \x09 \xa0\x0a\x0b\x0c
** Failers
@ -7047,7 +6769,6 @@ No match
/\H{3,4}/
XY ABCDE
0: ABCD
1: ABC
XY PQR ST
0: PQR
@ -7466,17 +7187,17 @@ Error -16 (item unsupported for DFA matching)
xyzabc123pqr
0: 123
xyzabc12\P
Partial match: abc12
Partial match at offset 6: abc12
xyzabc12\P\P
Partial match: abc12
Partial match at offset 6: abc12
/\babc\b/
+++abc+++
0: abc
+++ab\P
Partial match: +ab
Partial match at offset 3: +ab
+++ab\P\P
Partial match: +ab
Partial match at offset 3: +ab
/(?=C)/g+
ABCDECBA
@ -7511,7 +7232,7 @@ No options
No first char
No need char
Subject length lower bound = 3
Starting byte set: a d x
Starting chars: a d x
terhjk;abcdaadsfe
0: abc
the quick xyz brown fox
@ -7531,15 +7252,11 @@ No match
xxxxabcd\P
0: abcd
0+
1: abc
xxxxabcd\P\P
Partial match: abcd
dddxxx\R
0: ddd
0+ xxx
1: dd
2: d
3:
xxxxabcd\P\P
Partial match: abcd
xxx\R
@ -7549,27 +7266,22 @@ Partial match: abcd
/abcd*/i
xxxxabcd\P
0: abcd
1: abc
xxxxabcd\P\P
Partial match: abcd
XXXXABCD\P
0: ABCD
1: ABC
XXXXABCD\P\P
Partial match: ABCD
/abc\d*/
xxxxabc1\P
0: abc1
1: abc
xxxxabc1\P\P
Partial match: abc1
/abc[de]*/
xxxxabcde\P
0: abcde
1: abcd
2: abc
xxxxabcde\P\P
Partial match: abcde
@ -7625,7 +7337,7 @@ Error -16 (item unsupported for DFA matching)
/(?<=abc)def/
abc\P\P
Partial match: abc
Partial match at offset 3: abc
/abc$/
abc
@ -7684,11 +7396,8 @@ Partial match: abc
/.+/
abc\>0
0: abc
1: ab
2: a
abc\>1
0: bc
1: b
abc\>2
0: c
abc\>3
@ -7811,10 +7520,6 @@ No match
/^(?!a){0}\w+/
aaaaa
0: aaaaa
1: aaaa
2: aaa
3: aa
4: a
/(?<=(abc))?xyz/
abcxyz
@ -7846,9 +7551,9 @@ Error -17 (backreference condition or recursion test not supported for DFA match
aaaabcde
Error -26 (nested recursion at the same subject position)
/(a+)/
/(a+)/O
\O6aaaa
Matched, but too many subsidiary matches
Matched, but offsets vector is too small to show all matches
0: aaaa
1: aaa
2: aa
@ -7971,7 +7676,6 @@ Partial match: \x0d
Partial match: \x0d\x0d
\r\r\r\P
0: \x0d\x0d\x0d
1: \x0d\x0d
\r\r\r\P\P
Partial match: \x0d\x0d\x0d
@ -8016,4 +7720,61 @@ Error -30 (invalid data in workspace for DFA restart)
0: xx\xa0xxxxxabcd
1: xx\xa0xxxxxabc
/abcd/
abcd\O0
Matched, but offsets vector is too small to show all matches
/-- These tests show up auto-possessification --/
/[ab]*/
aaaa
0: aaaa
/[ab]*?/
aaaa
0: aaaa
1: aaa
2: aa
3: a
4:
/[ab]?/
aaaa
0: a
/[ab]??/
aaaa
0: a
1:
/[ab]+/
aaaa
0: aaaa
/[ab]+?/
aaaa
0: aaaa
1: aaa
2: aa
3: a
/[ab]{2,3}/
aaaa
0: aaa
/[ab]{2,3}?/
aaaa
0: aaa
1: aa
/[ab]{2,}/
aaaa
0: aaaa
/[ab]{2,}?/
aaaa
0: aaaa
1: aaa
2: aa
/-- End of testinput8 --/

View File

@ -1,6 +1,8 @@
/-- This set of tests checks UTF-8 support with the DFA matching functionality
of pcre_dfa_exec(). The -dfa flag must be used with pcretest when running
it. --/
of pcre_dfa_exec(), excluding Unicode property support. The -dfa flag must
be used with pcretest when running it. --/
< forbid W
/\x{100}ab/8
\x{100}ab
@ -313,13 +315,9 @@ No match
/[^a]+/8g
bcd
0: bcd
1: bc
2: b
\x{100}aY\x{256}Z
0: \x{100}
0: Y\x{256}Z
1: Y\x{256}
2: Y
/^[^a]{2}/8
\x{100}bc
@ -328,8 +326,6 @@ No match
/^[^a]{2,}/8
\x{100}bcAa
0: \x{100}bcA
1: \x{100}bc
2: \x{100}b
/^[^a]{2,}?/8
\x{100}bca
@ -339,13 +335,9 @@ No match
/[^a]+/8ig
bcd
0: bcd
1: bc
2: b
\x{100}aY\x{256}Z
0: \x{100}
0: Y\x{256}Z
1: Y\x{256}
2: Y
/^[^a]{2}/8i
\x{100}bc
@ -354,7 +346,6 @@ No match
/^[^a]{2,}/8i
\x{100}bcAa
0: \x{100}bc
1: \x{100}b
/^[^a]{2,}?/8i
\x{100}bca
@ -370,28 +361,18 @@ No match
0:
\x{100}\x{100}
0: \x{100}
1:
/\x{100}{0,3}/8
\x{100}\x{100}
0: \x{100}\x{100}
1: \x{100}
2:
\x{100}\x{100}\x{100}\x{100}
0: \x{100}\x{100}\x{100}
1: \x{100}\x{100}
2: \x{100}
3:
/\x{100}*/8
abce
0:
\x{100}\x{100}\x{100}\x{100}
0: \x{100}\x{100}\x{100}\x{100}
1: \x{100}\x{100}\x{100}
2: \x{100}\x{100}
3: \x{100}
4:
/\x{100}{1,1}/8
abcd\x{100}\x{100}\x{100}\x{100}
@ -400,15 +381,10 @@ No match
/\x{100}{1,3}/8
abcd\x{100}\x{100}\x{100}\x{100}
0: \x{100}\x{100}\x{100}
1: \x{100}\x{100}
2: \x{100}
/\x{100}+/8
abcd\x{100}\x{100}\x{100}\x{100}
0: \x{100}\x{100}\x{100}\x{100}
1: \x{100}\x{100}\x{100}
2: \x{100}\x{100}
3: \x{100}
/\x{100}{3}/8
abcd\x{100}\x{100}\x{100}XX
@ -417,10 +393,8 @@ No match
/\x{100}{3,5}/8
abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
0: \x{100}\x{100}\x{100}\x{100}\x{100}
1: \x{100}\x{100}\x{100}\x{100}
2: \x{100}\x{100}\x{100}
/\x{100}{3,}/8
/\x{100}{3,}/8O
abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
1: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
@ -432,9 +406,9 @@ No match
Xyyya\x{100}\x{100}bXzzz
0: X
/\D*/8
/\D*/8O
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Matched, but too many subsidiary matches
Matched, but offsets vector is too small to show all matches
0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@ -458,9 +432,9 @@ Matched, but too many subsidiary matches
20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
/\D*/8
/\D*/8O
\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
Matched, but too many subsidiary matches
Matched, but offsets vector is too small to show all matches
0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
1: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
2: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
@ -507,33 +481,18 @@ Matched, but too many subsidiary matches
/\D+/8
12abcd34
0: abcd
1: abc
2: ab
3: a
*** Failers
0: *** Failers
1: *** Failer
2: *** Faile
3: *** Fail
4: *** Fai
5: *** Fa
6: *** F
7: ***
8: ***
9: **
10: *
1234
No match
/\D{2,3}/8
12abcd34
0: abc
1: ab
12ab34
0: ab
*** Failers
0: ***
1: **
1234
No match
12a34
@ -556,7 +515,6 @@ No match
/\d+/8
12abcd34
0: 12
1: 1
*** Failers
No match
@ -565,7 +523,6 @@ No match
0: 12
1234abcd
0: 123
1: 12
*** Failers
No match
1.4
@ -585,30 +542,18 @@ No match
/\S+/8
12abcd34
0: 12abcd34
1: 12abcd3
2: 12abcd
3: 12abc
4: 12ab
5: 12a
6: 12
7: 1
*** Failers
0: ***
1: **
2: *
\ \
No match
/\S{2,3}/8
12abcd34
0: 12a
1: 12
1234abcd
0: 123
1: 12
*** Failers
0: ***
1: **
\ \
No match
@ -654,15 +599,8 @@ No match
/\w+/8
12 34
0: 12
1: 1
*** Failers
0: Failers
1: Failer
2: Faile
3: Fail
4: Fai
5: Fa
6: F
+++=*!
No match
@ -671,10 +609,8 @@ No match
0: ab
abcd ce
0: abc
1: ab
*** Failers
0: Fai
1: Fa
a.b.c
No match
@ -693,26 +629,18 @@ No match
/\W+/8
12====34
0: ====
1: ===
2: ==
3: =
*** Failers
0: ***
1: ***
2: **
3: *
abcd
No match
/\W{2,3}/8
ab====cd
0: ===
1: ==
ab==cd
0: ==
*** Failers
0: ***
1: **
a.b.c
No match
@ -825,8 +753,6 @@ No match
0: \x{200}
ab\x{200}\x{100}\x{200}\x{100}cd
0: \x{200}\x{100}\x{200}
1: \x{200}\x{100}
2: \x{200}
*** Failers
No match
@ -849,8 +775,6 @@ No match
0: \x{200}
ab\x{200}\x{100}\x{200}\x{100}cd
0: \x{200}\x{100}\x{200}
1: \x{200}\x{100}
2: \x{200}
*** Failers
No match
@ -1126,21 +1050,21 @@ No match
a\r
No match
/\h+\V?\v{3,4}/8
/\h+\V?\v{3,4}/8O
\x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
1: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}
/\V?\v{3,4}/8
/\V?\v{3,4}/8O
\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
0: X\x{0a}\x{0b}\x{0c}\x{0d}
1: X\x{0a}\x{0b}\x{0c}
/\h+\V?\v{3,4}/8
/\h+\V?\v{3,4}/8O
>\x09\x20\x{a0}X\x0a\x0a\x0a<
0: \x{09} \x{a0}X\x{0a}\x{0a}\x{0a}
/\V?\v{3,4}/8
/\V?\v{3,4}/8O
>\x09\x20\x{a0}X\x0a\x0a\x0a<
0: X\x{0a}\x{0a}\x{0a}
@ -1154,7 +1078,7 @@ No match
\x{a0} X\x0a
No match
/\H*\h+\V?\v{3,4}/8
/\H*\h+\V?\v{3,4}/8O
\x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
1: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}
@ -1178,7 +1102,7 @@ No match
\x{2009} X\x0a
No match
/\H*\h+\V?\v{3,4}/8
/\H*\h+\V?\v{3,4}/8O
\x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d}
1: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}
@ -1279,34 +1203,28 @@ No match
/abcd*/8
xxxxabcd\P
0: abcd
1: abc
xxxxabcd\P\P
Partial match: abcd
/abcd*/i8
xxxxabcd\P
0: abcd
1: abc
xxxxabcd\P\P
Partial match: abcd
XXXXABCD\P
0: ABCD
1: ABC
XXXXABCD\P\P
Partial match: ABCD
/abc\d*/8
xxxxabc1\P
0: abc1
1: abc
xxxxabc1\P\P
Partial match: abc1
/abc[de]*/8
xxxxabcde\P
0: abcde
1: abcd
2: abc
xxxxabcde\P\P
Partial match: abcde
@ -1340,7 +1258,6 @@ Partial match: \x{0d}
Partial match: \x{0d}\x{0d}
\r\r\r\P
0: \x{0d}\x{0d}\x{0d}
1: \x{0d}\x{0d}
\r\r\r\P\P
Partial match: \x{0d}\x{0d}\x{0d}
@ -1366,6 +1283,5 @@ Partial match: \x{0d}\x{0d}\x{0d}
/[^\x{100}]+/8
\x{100}\x{101}X
0: \x{101}X
1: \x{101}
/-- End of testinput9 --/

View File

@ -84,7 +84,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Starting chars: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
/\w/ISLfrench
@ -93,7 +93,7 @@ No options
No first char
No need char
Subject length lower bound = 1
Starting byte set: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Starting chars: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
<20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>
<20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>