1 |
/(?<!bar)foo/ |
/^[\w]+/ |
|
foo |
|
|
catfood |
|
|
arfootle |
|
|
rfoosh |
|
2 |
*** Failers |
*** Failers |
3 |
barfoo |
École |
|
towbarfoo |
|
4 |
|
|
5 |
/\w{3}(?<!bar)foo/ |
/^[\w]+/Lfr |
6 |
catfood |
École |
|
*** Failers |
|
|
foo |
|
|
barfoo |
|
|
towbarfoo |
|
|
|
|
|
/(?<=(foo)a)bar/ |
|
|
fooabar |
|
|
*** Failers |
|
|
bar |
|
|
foobbar |
|
|
|
|
|
/\Aabc\z/m |
|
|
abc |
|
|
*** Failers |
|
|
abc\n |
|
|
qqq\nabc |
|
|
abc\nzzz |
|
|
qqq\nabc\nzzz |
|
|
|
|
|
"(?>.*/)foo" |
|
|
/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ |
|
|
|
|
|
"(?>.*/)foo" |
|
|
/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo |
|
|
|
|
|
/(?>(\.\d\d[1-9]?))\d+/ |
|
|
1.230003938 |
|
|
1.875000282 |
|
|
*** Failers |
|
|
1.235 |
|
|
|
|
|
/^((?>\w+)|(?>\s+))*$/ |
|
|
now is the time for all good men to come to the aid of the party |
|
|
*** Failers |
|
|
this is not a line with only words and spaces! |
|
|
|
|
|
/(\d+)(\w)/ |
|
|
12345a |
|
|
12345+ |
|
|
|
|
|
/((?>\d+))(\w)/ |
|
|
12345a |
|
|
*** Failers |
|
|
12345+ |
|
|
|
|
|
/(?>a+)b/ |
|
|
aaab |
|
|
|
|
|
/((?>a+)b)/ |
|
|
aaab |
|
|
|
|
|
/(?>(a+))b/ |
|
|
aaab |
|
|
|
|
|
/(?>b)+/ |
|
|
aaabbbccc |
|
|
|
|
|
/(?>a+|b+|c+)*c/ |
|
|
aaabbbbccccd |
|
|
|
|
|
/((?>[^()]+)|\([^()]*\))+/ |
|
|
((abc(ade)ufh()()x |
|
|
|
|
|
/\(((?>[^()]+)|\([^()]+\))+\)/ |
|
|
(abc) |
|
|
(abc(def)xyz) |
|
|
*** Failers |
|
|
((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
|
|
|
|
/a(?-i)b/i |
|
|
ab |
|
|
*** Failers |
|
|
Ab |
|
|
aB |
|
|
AB |
|
|
|
|
|
/(a (?x)b c)d e/ |
|
|
a bcd e |
|
|
*** Failers |
|
|
a b cd e |
|
|
abcd e |
|
|
a bcde |
|
|
|
|
|
/(a b(?x)c d (?-x)e f)/ |
|
|
a bcde f |
|
|
*** Failers |
|
|
abcdef |
|
|
|
|
|
/(a(?i)b)c/ |
|
|
abc |
|
|
aBc |
|
|
*** Failers |
|
|
abC |
|
|
aBC |
|
|
Abc |
|
|
ABc |
|
|
ABC |
|
|
AbC |
|
|
|
|
|
/a(?i:b)c/ |
|
|
abc |
|
|
aBc |
|
|
*** Failers |
|
|
ABC |
|
|
abC |
|
|
aBC |
|
|
|
|
|
/a(?i:b)*c/ |
|
|
aBc |
|
|
aBBc |
|
|
*** Failers |
|
|
aBC |
|
|
aBBC |
|
|
|
|
|
/a(?=b(?i)c)\w\wd/ |
|
|
abcd |
|
|
abCd |
|
|
*** Failers |
|
|
aBCd |
|
|
abcD |
|
|
|
|
|
/(?s-i:more.*than).*million/i |
|
|
more than million |
|
|
more than MILLION |
|
|
more \n than Million |
|
|
*** Failers |
|
|
MORE THAN MILLION |
|
|
more \n than \n million |
|
|
|
|
|
/(?:(?s-i)more.*than).*million/i |
|
|
more than million |
|
|
more than MILLION |
|
|
more \n than Million |
|
|
*** Failers |
|
|
MORE THAN MILLION |
|
|
more \n than \n million |
|
|
|
|
|
/(?>a(?i)b+)+c/ |
|
|
abc |
|
|
aBbc |
|
|
aBBc |
|
|
*** Failers |
|
|
Abc |
|
|
abAb |
|
|
abbC |
|
|
|
|
|
/(?=a(?i)b)\w\wc/ |
|
|
abc |
|
|
aBc |
|
|
*** Failers |
|
|
Ab |
|
|
abC |
|
|
aBC |
|
|
|
|
|
/(?<=a(?i)b)(\w\w)c/ |
|
|
abxxc |
|
|
aBxxc |
|
|
*** Failers |
|
|
Abxxc |
|
|
ABxxc |
|
|
abxxC |
|
|
|
|
|
/(?:(a)|b)(?(1)A|B)/ |
|
|
aA |
|
|
bB |
|
|
*** Failers |
|
|
aB |
|
|
bA |
|
|
|
|
|
/^(a)?(?(1)a|b)+$/ |
|
|
aa |
|
|
b |
|
|
bb |
|
|
*** Failers |
|
|
ab |
|
|
|
|
|
/^(?(?=abc)\w{3}:|\d\d)$/ |
|
|
abc: |
|
|
12 |
|
|
*** Failers |
|
|
123 |
|
|
xyz |
|
|
|
|
|
/^(?(?!abc)\d\d|\w{3}:)$/ |
|
|
abc: |
|
|
12 |
|
|
*** Failers |
|
|
123 |
|
|
xyz |
|
|
|
|
|
/(?(?<=foo)bar|cat)/ |
|
|
foobar |
|
|
cat |
|
|
fcat |
|
|
focat |
|
|
*** Failers |
|
|
foocat |
|
7 |
|
|
8 |
/(?(?<!foo)cat|bar)/ |
/^[\w]+/ |
|
foobar |
|
|
cat |
|
|
fcat |
|
|
focat |
|
9 |
*** Failers |
*** Failers |
10 |
foocat |
École |
11 |
|
|
12 |
/( \( )? [^()]+ (?(1) \) |) /x |
/^[\W]+/ |
13 |
abcd |
École |
|
(abcd) |
|
|
the quick (abcd) fox |
|
|
(abcd |
|
14 |
|
|
15 |
/( \( )? [^()]+ (?(1) \) ) /x |
/^[\W]+/Lfr |
|
abcd |
|
|
(abcd) |
|
|
the quick (abcd) fox |
|
|
(abcd |
|
|
|
|
|
/^(?(2)a|(1)(2))+$/ |
|
|
12 |
|
|
12a |
|
|
12aa |
|
16 |
*** Failers |
*** Failers |
17 |
1234 |
École |
18 |
|
|
19 |
/((?i)blah)\s+\1/ |
/[\b]/ |
20 |
blah blah |
\b |
|
BLAH BLAH |
|
|
Blah Blah |
|
|
blaH blaH |
|
21 |
*** Failers |
*** Failers |
|
blah BLAH |
|
|
Blah blah |
|
|
blaH blah |
|
|
|
|
|
/((?i)blah)\s+(?i:\1)/ |
|
|
blah blah |
|
|
BLAH BLAH |
|
|
Blah Blah |
|
|
blaH blaH |
|
|
blah BLAH |
|
|
Blah blah |
|
|
blaH blah |
|
|
|
|
|
/(?>a*)*/ |
|
22 |
a |
a |
|
aa |
|
|
aaaa |
|
|
|
|
|
/(abc|)+/ |
|
|
abc |
|
|
abcabc |
|
|
abcabcabc |
|
|
xyz |
|
|
|
|
|
/([a]*)*/ |
|
|
a |
|
|
aaaaa |
|
|
|
|
|
/([ab]*)*/ |
|
|
a |
|
|
b |
|
|
ababab |
|
|
aaaabcde |
|
|
bbbb |
|
|
|
|
|
/([^a]*)*/ |
|
|
b |
|
|
bbbb |
|
|
aaa |
|
|
|
|
|
/([^ab]*)*/ |
|
|
cccc |
|
|
abab |
|
|
|
|
|
/([a]*?)*/ |
|
|
a |
|
|
aaaa |
|
|
|
|
|
/([ab]*?)*/ |
|
|
a |
|
|
b |
|
|
abab |
|
|
baba |
|
|
|
|
|
/([^a]*?)*/ |
|
|
b |
|
|
bbbb |
|
|
aaa |
|
|
|
|
|
/([^ab]*?)*/ |
|
|
c |
|
|
cccc |
|
|
baba |
|
|
|
|
|
/(?>a*)*/ |
|
|
a |
|
|
aaabcde |
|
|
|
|
|
/((?>a*))*/ |
|
|
aaaaa |
|
|
aabbaa |
|
|
|
|
|
/((?>a*?))*/ |
|
|
aaaaa |
|
|
aabbaa |
|
|
|
|
|
/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x |
|
|
12-sep-98 |
|
|
12-09-98 |
|
|
*** Failers |
|
|
sep-12-98 |
|
|
|
|
|
/(?<=(foo))bar\1/ |
|
|
foobarfoo |
|
|
foobarfootling |
|
|
*** Failers |
|
|
foobar |
|
|
barfoo |
|
|
|
|
|
/(?i:saturday|sunday)/ |
|
|
saturday |
|
|
sunday |
|
|
Saturday |
|
|
Sunday |
|
|
SATURDAY |
|
|
SUNDAY |
|
|
SunDay |
|
|
|
|
|
/(a(?i)bc|BB)x/ |
|
|
abcx |
|
|
aBCx |
|
|
bbx |
|
|
BBx |
|
|
*** Failers |
|
|
abcX |
|
|
aBCX |
|
|
bbX |
|
|
BBX |
|
|
|
|
|
/^([ab](?i)[cd]|[ef])/ |
|
|
ac |
|
|
aC |
|
|
bD |
|
|
elephant |
|
|
Europe |
|
|
frog |
|
|
France |
|
|
*** Failers |
|
|
Africa |
|
|
|
|
|
/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/ |
|
|
ab |
|
|
aBd |
|
|
xy |
|
|
xY |
|
|
zebra |
|
|
Zambesi |
|
|
*** Failers |
|
|
aCD |
|
|
XY |
|
|
|
|
|
/(?<=foo\n)^bar/m |
|
|
foo\nbar |
|
|
*** Failers |
|
|
bar |
|
|
baz\nbar |
|
23 |
|
|
24 |
/(?<=(?<!foo)bar)baz/ |
/[\b]/Lfr |
25 |
barbaz |
\b |
|
barbarbaz |
|
|
koobarbaz |
|
26 |
*** Failers |
*** Failers |
|
baz |
|
|
foobarbaz |
|
|
|
|
|
/The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/ |
|
|
/it wrong; it sets $1 to aaa rather than aa. Compare the following test,/ |
|
|
/where it does set $1 to aa when matching aaaaaa./ |
|
|
|
|
|
/^(a\1?){4}$/ |
|
|
a |
|
|
aa |
|
|
aaa |
|
|
aaaa |
|
|
aaaaa |
|
|
aaaaaaa |
|
|
aaaaaaaa |
|
|
aaaaaaaaa |
|
|
aaaaaaaaaa |
|
|
aaaaaaaaaaa |
|
|
aaaaaaaaaaaa |
|
|
aaaaaaaaaaaaa |
|
|
aaaaaaaaaaaaaa |
|
|
aaaaaaaaaaaaaaa |
|
|
aaaaaaaaaaaaaaaa |
|
|
|
|
|
/^(a\1?)(a\1?)(a\2?)(a\3?)$/ |
|
27 |
a |
a |
|
aa |
|
|
aaa |
|
|
aaaa |
|
|
aaaaa |
|
|
aaaaaa |
|
|
aaaaaaa |
|
|
aaaaaaaa |
|
|
aaaaaaaaa |
|
|
aaaaaaaaaa |
|
|
aaaaaaaaaaa |
|
|
aaaaaaaaaaaa |
|
|
aaaaaaaaaaaaa |
|
|
aaaaaaaaaaaaaa |
|
|
aaaaaaaaaaaaaaa |
|
|
aaaaaaaaaaaaaaaa |
|
|
|
|
|
/The following tests are taken from the Perl 5.005 test suite; some of them/ |
|
|
/are compatible with 5.004, but I'd rather not have to sort them out./ |
|
|
|
|
|
/abc/ |
|
|
abc |
|
|
xabcy |
|
|
ababc |
|
|
*** Failers |
|
|
xbc |
|
|
axc |
|
|
abx |
|
|
|
|
|
/ab*c/ |
|
|
abc |
|
|
|
|
|
/ab*bc/ |
|
|
abc |
|
|
abbc |
|
|
abbbbc |
|
|
|
|
|
/.{1}/ |
|
|
abbbbc |
|
|
|
|
|
/.{3,4}/ |
|
|
abbbbc |
|
|
|
|
|
/ab{0,}bc/ |
|
|
abbbbc |
|
|
|
|
|
/ab+bc/ |
|
|
abbc |
|
|
*** Failers |
|
|
abc |
|
|
abq |
|
|
|
|
|
/ab{1,}bc/ |
|
|
|
|
|
/ab+bc/ |
|
|
abbbbc |
|
|
|
|
|
/ab{1,}bc/ |
|
|
abbbbc |
|
|
|
|
|
/ab{1,3}bc/ |
|
|
abbbbc |
|
|
|
|
|
/ab{3,4}bc/ |
|
|
abbbbc |
|
|
|
|
|
/ab{4,5}bc/ |
|
|
*** Failers |
|
|
abq |
|
|
abbbbc |
|
|
|
|
|
/ab?bc/ |
|
|
abbc |
|
|
abc |
|
|
|
|
|
/ab{0,1}bc/ |
|
|
abc |
|
|
|
|
|
/ab?bc/ |
|
|
|
|
|
/ab?c/ |
|
|
abc |
|
|
|
|
|
/ab{0,1}c/ |
|
|
abc |
|
|
|
|
|
/^abc$/ |
|
|
abc |
|
|
*** Failers |
|
|
abbbbc |
|
|
abcc |
|
|
|
|
|
/^abc/ |
|
|
abcc |
|
|
|
|
|
/^abc$/ |
|
28 |
|
|
29 |
/abc$/ |
/^\w+/ |
|
aabc |
|
30 |
*** Failers |
*** Failers |
31 |
aabc |
École |
|
aabcd |
|
32 |
|
|
33 |
/^/ |
/^\w+/Lfr |
34 |
abc |
École |
35 |
|
|
36 |
/$/ |
/(.+)\b(.+)/ |
37 |
abc |
École |
38 |
|
|
39 |
/a.c/ |
/(.+)\b(.+)/Lfr |
|
abc |
|
|
axc |
|
|
|
|
|
/a.*c/ |
|
|
axyzc |
|
|
|
|
|
/a[bc]d/ |
|
|
abd |
|
|
*** Failers |
|
|
axyzd |
|
|
abc |
|
|
|
|
|
/a[b-d]e/ |
|
|
ace |
|
|
|
|
|
/a[b-d]/ |
|
|
aac |
|
|
|
|
|
/a[-b]/ |
|
|
a- |
|
|
|
|
|
/a[b-]/ |
|
|
a- |
|
|
|
|
|
/a]/ |
|
|
a] |
|
|
|
|
|
/a[]]b/ |
|
|
a]b |
|
|
|
|
|
/a[^bc]d/ |
|
|
aed |
|
|
*** Failers |
|
|
abd |
|
|
abd |
|
|
|
|
|
/a[^-b]c/ |
|
|
adc |
|
|
|
|
|
/a[^]b]c/ |
|
|
adc |
|
|
*** Failers |
|
|
a-c |
|
|
a]c |
|
|
|
|
|
/\ba\b/ |
|
|
a- |
|
|
-a |
|
|
-a- |
|
|
|
|
|
/\by\b/ |
|
40 |
*** Failers |
*** Failers |
41 |
xy |
École |
|
yz |
|
|
xyz |
|
42 |
|
|
43 |
/\Ba\B/ |
/École/i |
44 |
|
École |
45 |
*** Failers |
*** Failers |
46 |
a- |
école |
|
-a |
|
|
-a- |
|
47 |
|
|
48 |
/\By\b/ |
/École/iLfr |
49 |
xy |
École |
50 |
|
école |
51 |
|
|
52 |
/\by\B/ |
/\w/IS |
|
yz |
|
53 |
|
|
54 |
/\By\B/ |
/\w/ISLfr |
|
xyz |
|
55 |
|
|
56 |
/\w/ |
/^[\xc8-\xc9]/iLfr |
57 |
a |
École |
58 |
|
école |
|
/\W/ |
|
|
- |
|
|
*** Failers |
|
|
- |
|
|
a |
|
|
|
|
|
/a\sb/ |
|
|
a b |
|
|
|
|
|
/a\Sb/ |
|
|
a-b |
|
|
*** Failers |
|
|
a-b |
|
|
a b |
|
|
|
|
|
/\d/ |
|
|
1 |
|
|
|
|
|
/\D/ |
|
|
- |
|
|
*** Failers |
|
|
- |
|
|
1 |
|
|
|
|
|
/[\w]/ |
|
|
a |
|
|
|
|
|
/[\W]/ |
|
|
- |
|
|
*** Failers |
|
|
- |
|
|
a |
|
|
|
|
|
/a[\s]b/ |
|
|
a b |
|
|
|
|
|
/a[\S]b/ |
|
|
a-b |
|
|
*** Failers |
|
|
a-b |
|
|
a b |
|
|
|
|
|
/[\d]/ |
|
|
1 |
|
|
|
|
|
/[\D]/ |
|
|
- |
|
|
*** Failers |
|
|
- |
|
|
1 |
|
|
|
|
|
/ab|cd/ |
|
|
abc |
|
|
abcd |
|
|
|
|
|
/()ef/ |
|
|
def |
|
|
|
|
|
/$b/ |
|
|
|
|
|
/a\(b/ |
|
|
a(b |
|
|
|
|
|
/a\(*b/ |
|
|
ab |
|
|
a((b |
|
|
|
|
|
/a\\b/ |
|
|
a\b |
|
|
|
|
|
/((a))/ |
|
|
abc |
|
|
|
|
|
/(a)b(c)/ |
|
|
abc |
|
|
|
|
|
/a+b+c/ |
|
|
aabbabc |
|
|
|
|
|
/a{1,}b{1,}c/ |
|
|
aabbabc |
|
|
|
|
|
/a.+?c/ |
|
|
abcabc |
|
|
|
|
|
/(a+|b)*/ |
|
|
ab |
|
|
|
|
|
/(a+|b){0,}/ |
|
|
ab |
|
|
|
|
|
/(a+|b)+/ |
|
|
ab |
|
|
|
|
|
/(a+|b){1,}/ |
|
|
ab |
|
|
|
|
|
/(a+|b)?/ |
|
|
ab |
|
|
|
|
|
/(a+|b){0,1}/ |
|
|
ab |
|
|
|
|
|
/[^ab]*/ |
|
|
cde |
|
|
|
|
|
/abc/ |
|
|
*** Failers |
|
|
b |
|
|
|
|
|
|
|
|
/a*/ |
|
|
|
|
|
|
|
|
/([abc])*d/ |
|
|
abbbcd |
|
|
|
|
|
/([abc])*bcd/ |
|
|
abcd |
|
|
|
|
|
/a|b|c|d|e/ |
|
|
e |
|
|
|
|
|
/(a|b|c|d|e)f/ |
|
|
ef |
|
|
|
|
|
/abcd*efg/ |
|
|
abcdefg |
|
|
|
|
|
/ab*/ |
|
|
xabyabbbz |
|
|
xayabbbz |
|
|
|
|
|
/(ab|cd)e/ |
|
|
abcde |
|
|
|
|
|
/[abhgefdc]ij/ |
|
|
hij |
|
|
|
|
|
/^(ab|cd)e/ |
|
|
|
|
|
/(abc|)ef/ |
|
|
abcdef |
|
|
|
|
|
/(a|b)c*d/ |
|
|
abcd |
|
|
|
|
|
/(ab|ab*)bc/ |
|
|
abc |
|
|
|
|
|
/a([bc]*)c*/ |
|
|
abc |
|
|
|
|
|
/a([bc]*)(c*d)/ |
|
|
abcd |
|
|
|
|
|
/a([bc]+)(c*d)/ |
|
|
abcd |
|
|
|
|
|
/a([bc]*)(c+d)/ |
|
|
abcd |
|
|
|
|
|
/a[bcd]*dcdcde/ |
|
|
adcdcde |
|
|
|
|
|
/a[bcd]+dcdcde/ |
|
|
*** Failers |
|
|
abcde |
|
|
adcdcde |
|
|
|
|
|
/(ab|a)b*c/ |
|
|
abc |
|
|
|
|
|
/((a)(b)c)(d)/ |
|
|
abcd |
|
|
|
|
|
/[a-zA-Z_][a-zA-Z0-9_]*/ |
|
|
alpha |
|
|
|
|
|
/^a(bc+|b[eh])g|.h$/ |
|
|
abh |
|
|
|
|
|
/(bc+d$|ef*g.|h?i(j|k))/ |
|
|
effgz |
|
|
ij |
|
|
reffgz |
|
|
*** Failers |
|
|
effg |
|
|
bcdd |
|
|
|
|
|
/((((((((((a))))))))))/ |
|
|
a |
|
|
|
|
|
/((((((((((a))))))))))\10/ |
|
|
aa |
|
|
|
|
|
/(((((((((a)))))))))/ |
|
|
a |
|
|
|
|
|
/multiple words of text/ |
|
|
*** Failers |
|
|
aa |
|
|
uh-uh |
|
|
|
|
|
/multiple words/ |
|
|
multiple words, yeah |
|
|
|
|
|
/(.*)c(.*)/ |
|
|
abcde |
|
|
|
|
|
/\((.*), (.*)\)/ |
|
|
(a, b) |
|
|
|
|
|
/[k]/ |
|
|
|
|
|
/abcd/ |
|
|
abcd |
|
|
|
|
|
/a(bc)d/ |
|
|
abcd |
|
|
|
|
|
/a[-]?c/ |
|
|
ac |
|
|
|
|
|
/(abc)\1/ |
|
|
abcabc |
|
|
|
|
|
/([a-c]*)\1/ |
|
|
abcabc |
|
|
|
|
|
/(a)|\1/ |
|
|
a |
|
|
*** Failers |
|
|
ab |
|
|
x |
|
|
|
|
|
/(([a-c])b*?\2)*/ |
|
|
ababbbcbc |
|
|
|
|
|
/(([a-c])b*?\2){3}/ |
|
|
ababbbcbc |
|
|
|
|
|
/((\3|b)\2(a)x)+/ |
|
|
aaaxabaxbaaxbbax |
|
|
|
|
|
/((\3|b)\2(a)){2,}/ |
|
|
bbaababbabaaaaabbaaaabba |
|
|
|
|
|
/abc/i |
|
|
ABC |
|
|
XABCY |
|
|
ABABC |
|
|
*** Failers |
|
|
aaxabxbaxbbx |
|
|
XBC |
|
|
AXC |
|
|
ABX |
|
|
|
|
|
/ab*c/i |
|
|
ABC |
|
|
|
|
|
/ab*bc/i |
|
|
ABC |
|
|
ABBC |
|
|
|
|
|
/ab*?bc/i |
|
|
ABBBBC |
|
|
|
|
|
/ab{0,}?bc/i |
|
|
ABBBBC |
|
|
|
|
|
/ab+?bc/i |
|
|
ABBC |
|
|
|
|
|
/ab+bc/i |
|
|
*** Failers |
|
|
ABC |
|
|
ABQ |
|
|
|
|
|
/ab{1,}bc/i |
|
|
|
|
|
/ab+bc/i |
|
|
ABBBBC |
|
|
|
|
|
/ab{1,}?bc/i |
|
|
ABBBBC |
|
|
|
|
|
/ab{1,3}?bc/i |
|
|
ABBBBC |
|
|
|
|
|
/ab{3,4}?bc/i |
|
|
ABBBBC |
|
|
|
|
|
/ab{4,5}?bc/i |
|
|
*** Failers |
|
|
ABQ |
|
|
ABBBBC |
|
|
|
|
|
/ab??bc/i |
|
|
ABBC |
|
|
ABC |
|
|
|
|
|
/ab{0,1}?bc/i |
|
|
ABC |
|
|
|
|
|
/ab??bc/i |
|
|
|
|
|
/ab??c/i |
|
|
ABC |
|
|
|
|
|
/ab{0,1}?c/i |
|
|
ABC |
|
|
|
|
|
/^abc$/i |
|
|
ABC |
|
|
*** Failers |
|
|
ABBBBC |
|
|
ABCC |
|
|
|
|
|
/^abc/i |
|
|
ABCC |
|
|
|
|
|
/^abc$/i |
|
|
|
|
|
/abc$/i |
|
|
AABC |
|
|
|
|
|
/^/i |
|
|
ABC |
|
|
|
|
|
/$/i |
|
|
ABC |
|
|
|
|
|
/a.c/i |
|
|
ABC |
|
|
AXC |
|
|
|
|
|
/a.*?c/i |
|
|
AXYZC |
|
|
|
|
|
/a.*c/i |
|
|
*** Failers |
|
|
AABC |
|
|
AXYZD |
|
|
|
|
|
/a[bc]d/i |
|
|
ABD |
|
|
|
|
|
/a[b-d]e/i |
|
|
ACE |
|
|
*** Failers |
|
|
ABC |
|
|
ABD |
|
|
|
|
|
/a[b-d]/i |
|
|
AAC |
|
|
|
|
|
/a[-b]/i |
|
|
A- |
|
|
|
|
|
/a[b-]/i |
|
|
A- |
|
|
|
|
|
/a]/i |
|
|
A] |
|
|
|
|
|
/a[]]b/i |
|
|
A]B |
|
|
|
|
|
/a[^bc]d/i |
|
|
AED |
|
|
|
|
|
/a[^-b]c/i |
|
|
ADC |
|
|
*** Failers |
|
|
ABD |
|
|
A-C |
|
|
|
|
|
/a[^]b]c/i |
|
|
ADC |
|
|
|
|
|
/ab|cd/i |
|
|
ABC |
|
|
ABCD |
|
|
|
|
|
/()ef/i |
|
|
DEF |
|
|
|
|
|
/$b/i |
|
|
*** Failers |
|
|
A]C |
|
|
B |
|
59 |
|
|
60 |
/a\(b/i |
/^[\xc8-\xc9]/Lfr |
61 |
A(B |
École |
62 |
|
*** Failers |
63 |
/a\(*b/i |
école |
|
AB |
|
|
A((B |
|
|
|
|
|
/a\\b/i |
|
|
A\B |
|
|
|
|
|
/((a))/i |
|
|
ABC |
|
|
|
|
|
/(a)b(c)/i |
|
|
ABC |
|
|
|
|
|
/a+b+c/i |
|
|
AABBABC |
|
|
|
|
|
/a{1,}b{1,}c/i |
|
|
AABBABC |
|
|
|
|
|
/a.+?c/i |
|
|
ABCABC |
|
|
|
|
|
/a.*?c/i |
|
|
ABCABC |
|
|
|
|
|
/a.{0,5}?c/i |
|
|
ABCABC |
|
|
|
|
|
/(a+|b)*/i |
|
|
AB |
|
|
|
|
|
/(a+|b){0,}/i |
|
|
AB |
|
|
|
|
|
/(a+|b)+/i |
|
|
AB |
|
|
|
|
|
/(a+|b){1,}/i |
|
|
AB |
|
|
|
|
|
/(a+|b)?/i |
|
|
AB |
|
|
|
|
|
/(a+|b){0,1}/i |
|
|
AB |
|
|
|
|
|
/(a+|b){0,1}?/i |
|
|
AB |
|
|
|
|
|
/[^ab]*/i |
|
|
CDE |
|
|
|
|
|
/abc/i |
|
|
|
|
|
/a*/i |
|
|
|
|
|
|
|
|
/([abc])*d/i |
|
|
ABBBCD |
|
|
|
|
|
/([abc])*bcd/i |
|
|
ABCD |
|
|
|
|
|
/a|b|c|d|e/i |
|
|
E |
|
|
|
|
|
/(a|b|c|d|e)f/i |
|
|
EF |
|
|
|
|
|
/abcd*efg/i |
|
|
ABCDEFG |
|
|
|
|
|
/ab*/i |
|
|
XABYABBBZ |
|
|
XAYABBBZ |
|
|
|
|
|
/(ab|cd)e/i |
|
|
ABCDE |
|
|
|
|
|
/[abhgefdc]ij/i |
|
|
HIJ |
|
|
|
|
|
/^(ab|cd)e/i |
|
|
ABCDE |
|
|
|
|
|
/(abc|)ef/i |
|
|
ABCDEF |
|
|
|
|
|
/(a|b)c*d/i |
|
|
ABCD |
|
|
|
|
|
/(ab|ab*)bc/i |
|
|
ABC |
|
|
|
|
|
/a([bc]*)c*/i |
|
|
ABC |
|
|
|
|
|
/a([bc]*)(c*d)/i |
|
|
ABCD |
|
|
|
|
|
/a([bc]+)(c*d)/i |
|
|
ABCD |
|
|
|
|
|
/a([bc]*)(c+d)/i |
|
|
ABCD |
|
|
|
|
|
/a[bcd]*dcdcde/i |
|
|
ADCDCDE |
|
|
|
|
|
/a[bcd]+dcdcde/i |
|
|
|
|
|
/(ab|a)b*c/i |
|
|
ABC |
|
|
|
|
|
/((a)(b)c)(d)/i |
|
|
ABCD |
|
|
|
|
|
/[a-zA-Z_][a-zA-Z0-9_]*/i |
|
|
ALPHA |
|
|
|
|
|
/^a(bc+|b[eh])g|.h$/i |
|
|
ABH |
|
|
|
|
|
/(bc+d$|ef*g.|h?i(j|k))/i |
|
|
EFFGZ |
|
|
IJ |
|
|
REFFGZ |
|
|
*** Failers |
|
|
ADCDCDE |
|
|
EFFG |
|
|
BCDD |
|
|
|
|
|
/((((((((((a))))))))))/i |
|
|
A |
|
|
|
|
|
/((((((((((a))))))))))\10/i |
|
|
AA |
|
|
|
|
|
/(((((((((a)))))))))/i |
|
|
A |
|
|
|
|
|
/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i |
|
|
A |
|
|
|
|
|
/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i |
|
|
C |
|
|
|
|
|
/multiple words of text/i |
|
|
*** Failers |
|
|
AA |
|
|
UH-UH |
|
|
|
|
|
/multiple words/i |
|
|
MULTIPLE WORDS, YEAH |
|
|
|
|
|
/(.*)c(.*)/i |
|
|
ABCDE |
|
|
|
|
|
/\((.*), (.*)\)/i |
|
|
(A, B) |
|
|
|
|
|
/[k]/i |
|
|
|
|
|
/abcd/i |
|
|
ABCD |
|
|
|
|
|
/a(bc)d/i |
|
|
ABCD |
|
|
|
|
|
/a[-]?c/i |
|
|
AC |
|
|
|
|
|
/(abc)\1/i |
|
|
ABCABC |
|
|
|
|
|
/([a-c]*)\1/i |
|
|
ABCABC |
|
|
|
|
|
/a(?!b)./ |
|
|
abad |
|
|
|
|
|
/a(?=d)./ |
|
|
abad |
|
|
|
|
|
/a(?=c|d)./ |
|
|
abad |
|
|
|
|
|
/a(?:b|c|d)(.)/ |
|
|
ace |
|
|
|
|
|
/a(?:b|c|d)*(.)/ |
|
|
ace |
|
|
|
|
|
/a(?:b|c|d)+?(.)/ |
|
|
ace |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|c|d)+(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|c|d){2}(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|c|d){4,5}(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|c|d){4,5}?(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/((foo)|(bar))*/ |
|
|
foobar |
|
|
|
|
|
/a(?:b|c|d){6,7}(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|c|d){6,7}?(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|c|d){5,6}(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|c|d){5,6}?(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|c|d){5,7}(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|c|d){5,7}?(.)/ |
|
|
acdbcdbe |
|
|
|
|
|
/a(?:b|(c|e){1,2}?|d)+?(.)/ |
|
|
ace |
|
|
|
|
|
/^(.+)?B/ |
|
|
AB |
|
|
|
|
|
/^([^a-z])|(\^)$/ |
|
|
. |
|
|
|
|
|
/^[<>]&/ |
|
|
<&OUT |
|
|
|
|
|
/^(a\1?){4}$/ |
|
|
aaaaaaaaaa |
|
|
*** Failers |
|
|
AB |
|
|
aaaaaaaaa |
|
|
aaaaaaaaaaa |
|
|
|
|
|
/^(a(?(1)\1)){4}$/ |
|
|
aaaaaaaaaa |
|
|
*** Failers |
|
|
aaaaaaaaa |
|
|
aaaaaaaaaaa |
|
|
|
|
|
/(?:(f)(o)(o)|(b)(a)(r))*/ |
|
|
foobar |
|
|
|
|
|
/(?<=a)b/ |
|
|
ab |
|
|
*** Failers |
|
|
cb |
|
|
b |
|
|
|
|
|
/(?<!c)b/ |
|
|
ab |
|
|
b |
|
|
b |
|
|
|
|
|
/(?:..)*a/ |
|
|
aba |
|
|
|
|
|
/(?:..)*?a/ |
|
|
aba |
|
|
|
|
|
/^(?:b|a(?=(.)))*\1/ |
|
|
abc |
|
|
|
|
|
/^(){3,5}/ |
|
|
abc |
|
|
|
|
|
/^(a+)*ax/ |
|
|
aax |
|
|
|
|
|
/^((a|b)+)*ax/ |
|
|
aax |
|
|
|
|
|
/^((a|bc)+)*ax/ |
|
|
aax |
|
|
|
|
|
/(a|x)*ab/ |
|
|
cab |
|
|
|
|
|
/(a)*ab/ |
|
|
cab |
|
|
|
|
|
/(?:(?i)a)b/ |
|
|
ab |
|
|
|
|
|
/((?i)a)b/ |
|
|
ab |
|
|
|
|
|
/(?:(?i)a)b/ |
|
|
Ab |
|
|
|
|
|
/((?i)a)b/ |
|
|
Ab |
|
|
|
|
|
/(?:(?i)a)b/ |
|
|
*** Failers |
|
|
cb |
|
|
aB |
|
|
|
|
|
/((?i)a)b/ |
|
|
|
|
|
/(?i:a)b/ |
|
|
ab |
|
|
|
|
|
/((?i:a))b/ |
|
|
ab |
|
|
|
|
|
/(?i:a)b/ |
|
|
Ab |
|
|
|
|
|
/((?i:a))b/ |
|
|
Ab |
|
|
|
|
|
/(?i:a)b/ |
|
|
*** Failers |
|
|
aB |
|
|
aB |
|
|
|
|
|
/((?i:a))b/ |
|
|
|
|
|
/(?:(?-i)a)b/i |
|
|
ab |
|
|
|
|
|
/((?-i)a)b/i |
|
|
ab |
|
|
|
|
|
/(?:(?-i)a)b/i |
|
|
aB |
|
|
|
|
|
/((?-i)a)b/i |
|
|
aB |
|
|
|
|
|
/(?:(?-i)a)b/i |
|
|
*** Failers |
|
|
aB |
|
|
Ab |
|
|
|
|
|
/((?-i)a)b/i |
|
|
|
|
|
/(?:(?-i)a)b/i |
|
|
aB |
|
|
|
|
|
/((?-i)a)b/i |
|
|
aB |
|
|
|
|
|
/(?:(?-i)a)b/i |
|
|
*** Failers |
|
|
Ab |
|
|
AB |
|
|
|
|
|
/((?-i)a)b/i |
|
|
|
|
|
/(?-i:a)b/i |
|
|
ab |
|
|
|
|
|
/((?-i:a))b/i |
|
|
ab |
|
|
|
|
|
/(?-i:a)b/i |
|
|
aB |
|
|
|
|
|
/((?-i:a))b/i |
|
|
aB |
|
|
|
|
|
/(?-i:a)b/i |
|
|
*** Failers |
|
|
AB |
|
|
Ab |
|
|
|
|
|
/((?-i:a))b/i |
|
|
|
|
|
/(?-i:a)b/i |
|
|
aB |
|
|
|
|
|
/((?-i:a))b/i |
|
|
aB |
|
|
|
|
|
/(?-i:a)b/i |
|
|
*** Failers |
|
|
Ab |
|
|
AB |
|
|
|
|
|
/((?-i:a))b/i |
|
|
|
|
|
/((?-i:a.))b/i |
|
|
*** Failers |
|
|
AB |
|
|
a\nB |
|
|
|
|
|
/((?s-i:a.))b/i |
|
|
a\nB |
|
|
|
|
|
/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/ |
|
|
cabbbb |
|
|
|
|
|
/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/ |
|
|
caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |
|
|
|
|
|
/(ab)\d\1/i |
|
|
Ab4ab |
|
|
ab4Ab |
|
|
|
|
|
/foo\w*\d{4}baz/ |
|
|
foobar1234baz |
|
|
|
|
|
/x(~~)*(?:(?:F)?)?/ |
|
|
x~~ |
|
|
|
|
|
/^a(?#xxx){3}c/ |
|
|
aaac |
|
|
|
|
|
/^a (?#xxx) (?#yyy) {3}c/x |
|
|
aaac |
|
|
|
|
|
/(?<![cd])b/ |
|
|
*** Failers |
|
|
B\nB |
|
|
dbcb |
|
|
|
|
|
/(?<![cd])[ab]/ |
|
|
dbaacb |
|
|
|
|
|
/(?<!(c|d))b/ |
|
|
|
|
|
/(?<!(c|d))[ab]/ |
|
|
dbaacb |
|
|
|
|
|
/(?<!cd)[ab]/ |
|
|
cdaccb |
|
|
|
|
|
/^(?:a?b?)*$/ |
|
|
*** Failers |
|
|
dbcb |
|
|
a-- |
|
|
|
|
|
/((?s)^a(.))((?m)^b$)/ |
|
|
a\nb\nc\n |
|
|
|
|
|
/((?m)^b$)/ |
|
|
a\nb\nc\n |
|
|
|
|
|
/(?m)^b/ |
|
|
a\nb\n |
|
|
|
|
|
/(?m)^(b)/ |
|
|
a\nb\n |
|
|
|
|
|
/((?m)^b)/ |
|
|
a\nb\n |
|
|
|
|
|
/\n((?m)^b)/ |
|
|
a\nb\n |
|
|
|
|
|
/((?s).)c(?!.)/ |
|
|
a\nb\nc\n |
|
|
a\nb\nc\n |
|
|
|
|
|
/((?s)b.)c(?!.)/ |
|
|
a\nb\nc\n |
|
|
a\nb\nc\n |
|
|
|
|
|
/^b/ |
|
|
|
|
|
/()^b/ |
|
|
*** Failers |
|
|
a\nb\nc\n |
|
|
a\nb\nc\n |
|
|
|
|
|
/((?m)^b)/ |
|
|
a\nb\nc\n |
|
|
|
|
|
/(?(1)a|b)/ |
|
|
|
|
|
/(?(1)b|a)/ |
|
|
a |
|
|
|
|
|
/(x)?(?(1)a|b)/ |
|
|
*** Failers |
|
|
a |
|
|
a |
|
|
|
|
|
/(x)?(?(1)b|a)/ |
|
|
a |
|
|
|
|
|
/()?(?(1)b|a)/ |
|
|
a |
|
|
|
|
|
/()(?(1)b|a)/ |
|
|
|
|
|
/()?(?(1)a|b)/ |
|
|
a |
|
|
|
|
|
/^(\()?blah(?(1)(\)))$/ |
|
|
(blah) |
|
|
blah |
|
|
*** Failers |
|
|
a |
|
|
blah) |
|
|
(blah |
|
|
|
|
|
/^(\(+)?blah(?(1)(\)))$/ |
|
|
(blah) |
|
|
blah |
|
|
*** Failers |
|
|
blah) |
|
|
(blah |
|
|
|
|
|
/(?(?!a)a|b)/ |
|
|
|
|
|
/(?(?!a)b|a)/ |
|
|
a |
|
|
|
|
|
/(?(?=a)b|a)/ |
|
|
*** Failers |
|
|
a |
|
|
a |
|
|
|
|
|
/(?(?=a)a|b)/ |
|
|
a |
|
|
|
|
|
/(?=(a+?))(\1ab)/ |
|
|
aaab |
|
|
|
|
|
/^(?=(a+?))\1ab/ |
|
|
|
|
|
/(\w+:)+/ |
|
|
one: |
|
|
|
|
|
/$(?<=^(a))/ |
|
|
a |
|
|
|
|
|
/(?=(a+?))(\1ab)/ |
|
|
aaab |
|
|
|
|
|
/^(?=(a+?))\1ab/ |
|
|
*** Failers |
|
|
aaab |
|
|
aaab |
|
|
|
|
|
/([\w:]+::)?(\w+)$/ |
|
|
abcd |
|
|
xy:z:::abcd |
|
|
|
|
|
/^[^bcd]*(c+)/ |
|
|
aexycd |
|
|
|
|
|
/(a*)b+/ |
|
|
caab |
|
|
|
|
|
/([\w:]+::)?(\w+)$/ |
|
|
abcd |
|
|
xy:z:::abcd |
|
|
*** Failers |
|
|
abcd: |
|
|
abcd: |
|
|
|
|
|
/^[^bcd]*(c+)/ |
|
|
aexycd |
|
|
|
|
|
/(>a+)ab/ |
|
|
|
|
|
/(?>a+)b/ |
|
|
aaab |
|
|
|
|
|
/([[:]+)/ |
|
|
a:[b]: |
|
|
|
|
|
/([[=]+)/ |
|
|
a=[b]= |
|
|
|
|
|
/([[.]+)/ |
|
|
a.[b]. |
|
|
|
|
|
/((?>a+)b)/ |
|
|
aaab |
|
|
|
|
|
/(?>(a+))b/ |
|
|
aaab |
|
|
|
|
|
/((?>[^()]+)|\([^()]*\))+/ |
|
|
((abc(ade)ufh()()x |
|
|
|
|
|
/a\Z/ |
|
|
*** Failers |
|
|
aaab |
|
|
a\nb\n |
|
|
|
|
|
/b\Z/ |
|
|
a\nb\n |
|
|
|
|
|
/b\z/ |
|
|
|
|
|
/b\Z/ |
|
|
a\nb |
|
|
|
|
|
/b\z/ |
|
|
a\nb |
|
|
*** Failers |
|
|
|
|
|
/^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/ |
|
|
a |
|
|
abc |
|
|
a-b |
|
|
0-9 |
|
|
a.b |
|
|
5.6.7 |
|
|
the.quick.brown.fox |
|
|
a100.b200.300c |
|
|
12-ab.1245 |
|
|
***Failers |
|
|
\ |
|
|
.a |
|
|
-a |
|
|
a- |
|
|
a. |
|
|
a_b |
|
|
a.- |
|
|
a.. |
|
|
ab..bc |
|
|
the.quick.brown.fox- |
|
|
the.quick.brown.fox. |
|
|
the.quick.brown.fox_ |
|
|
the.quick.brown.fox+ |
|
|
|
|
|
/(?>.*)(?<=(abcd|wxyz))/ |
|
|
alphabetabcd |
|
|
endingwxyz |
|
|
*** Failers |
|
|
a rather long string that doesn't end with one of them |
|
|
|
|
|
/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/ |
|
|
word cat dog elephant mussel cow horse canary baboon snake shark otherword |
|
|
word cat dog elephant mussel cow horse canary baboon snake shark |
|
|
|
|
|
/word (?>[a-zA-Z0-9]+ ){0,30}otherword/ |
|
|
word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope |
|
|
|
|
|
/(?<=\d{3}(?!999))foo/ |
|
|
999foo |
|
|
123999foo |
|
|
*** Failers |
|
|
123abcfoo |
|
|
|
|
|
/(?<=(?!...999)\d{3})foo/ |
|
|
999foo |
|
|
123999foo |
|
|
*** Failers |
|
|
123abcfoo |
|
|
|
|
|
/(?<=\d{3}(?!999)...)foo/ |
|
|
123abcfoo |
|
|
123456foo |
|
|
*** Failers |
|
|
123999foo |
|
|
|
|
|
/(?<=\d{3}...)(?<!999)foo/ |
|
|
123abcfoo |
|
|
123456foo |
|
|
*** Failers |
|
|
123999foo |
|
|
|
|
|
/<a[\s]+href[\s]*=[\s]* # find <a href= |
|
|
([\"\'])? # find single or double quote |
|
|
(?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching |
|
|
# quote, otherwise match up to next space |
|
|
/isx |
|
|
<a href=abcd xyz |
|
|
<a href=\"abcd xyz pqr\" cats |
|
|
<a href=\'abcd xyz pqr\' cats |
|
|
|
|
|
/<a\s+href\s*=\s* # find <a href= |
|
|
(["'])? # find single or double quote |
|
|
(?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching |
|
|
# quote, otherwise match up to next space |
|
|
/isx |
|
|
<a href=abcd xyz |
|
|
<a href=\"abcd xyz pqr\" cats |
|
|
<a href = \'abcd xyz pqr\' cats |
|
|
|
|
|
/<a\s+href(?>\s*)=(?>\s*) # find <a href= |
|
|
(["'])? # find single or double quote |
|
|
(?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching |
|
|
# quote, otherwise match up to next space |
|
|
/isx |
|
|
<a href=abcd xyz |
|
|
<a href=\"abcd xyz pqr\" cats |
|
|
<a href = \'abcd xyz pqr\' cats |
|
|
|
|
|
/((Z)+|A)*/ |
|
|
ZABCDEFG |
|
|
|
|
|
/(Z()|A)*/ |
|
|
ZABCDEFG |
|
|
|
|
|
/(Z(())|A)*/ |
|
|
ZABCDEFG |
|
|
|
|
|
/((?>Z)+|A)*/ |
|
|
ZABCDEFG |
|
|
|
|
|
/((?>)+|A)*/ |
|
|
ZABCDEFG |
|
|
|
|
|
/a*/g |
|
|
abbab |
|
|
|
|
|
/^[a-\d]/ |
|
|
abcde |
|
|
-things |
|
|
0digit |
|
|
*** Failers |
|
|
bcdef |
|
|
|
|
|
/^[\d-a]/ |
|
|
abcde |
|
|
-things |
|
|
0digit |
|
|
*** Failers |
|
|
bcdef |
|
64 |
|
|
65 |
/ End of testinput3 / |
/ End of testinput3 / |