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