|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/the quick brown fox/ |
|
|
the quick brown fox |
|
|
What do you know about the quick brown fox? |
|
|
\= Expect no match |
|
|
The quick brown FOX |
|
|
What do you know about THE QUICK BROWN FOX? |
|
|
|
|
|
/The quick brown fox/i |
|
|
the quick brown fox |
|
|
The quick brown FOX |
|
|
What do you know about the quick brown fox? |
|
|
What do you know about THE QUICK BROWN FOX? |
|
|
|
|
|
|
|
|
|
|
|
/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/ |
|
|
abcd\t\n\r\f\a\e9;\$\\?caxyz |
|
|
|
|
|
|
|
|
|
|
|
/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ |
|
|
abxyzpqrrrabbxyyyypqAzz |
|
|
abxyzpqrrrabbxyyyypqAzz |
|
|
aabxyzpqrrrabbxyyyypqAzz |
|
|
aaabxyzpqrrrabbxyyyypqAzz |
|
|
aaaabxyzpqrrrabbxyyyypqAzz |
|
|
abcxyzpqrrrabbxyyyypqAzz |
|
|
aabcxyzpqrrrabbxyyyypqAzz |
|
|
aaabcxyzpqrrrabbxyyyypAzz |
|
|
aaabcxyzpqrrrabbxyyyypqAzz |
|
|
aaabcxyzpqrrrabbxyyyypqqAzz |
|
|
aaabcxyzpqrrrabbxyyyypqqqAzz |
|
|
aaabcxyzpqrrrabbxyyyypqqqqAzz |
|
|
aaabcxyzpqrrrabbxyyyypqqqqqAzz |
|
|
aaabcxyzpqrrrabbxyyyypqqqqqqAzz |
|
|
aaaabcxyzpqrrrabbxyyyypqAzz |
|
|
abxyzzpqrrrabbxyyyypqAzz |
|
|
aabxyzzzpqrrrabbxyyyypqAzz |
|
|
aaabxyzzzzpqrrrabbxyyyypqAzz |
|
|
aaaabxyzzzzpqrrrabbxyyyypqAzz |
|
|
abcxyzzpqrrrabbxyyyypqAzz |
|
|
aabcxyzzzpqrrrabbxyyyypqAzz |
|
|
aaabcxyzzzzpqrrrabbxyyyypqAzz |
|
|
aaaabcxyzzzzpqrrrabbxyyyypqAzz |
|
|
aaaabcxyzzzzpqrrrabbbxyyyypqAzz |
|
|
aaaabcxyzzzzpqrrrabbbxyyyyypqAzz |
|
|
aaabcxyzpqrrrabbxyyyypABzz |
|
|
aaabcxyzpqrrrabbxyyyypABBzz |
|
|
>>>aaabxyzpqrrrabbxyyyypqAzz |
|
|
>aaaabxyzpqrrrabbxyyyypqAzz |
|
|
>>>>abcxyzpqrrrabbxyyyypqAzz |
|
|
\= Expect no match |
|
|
abxyzpqrrabbxyyyypqAzz |
|
|
abxyzpqrrrrabbxyyyypqAzz |
|
|
abxyzpqrrrabxyyyypqAzz |
|
|
aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz |
|
|
aaaabcxyzzzzpqrrrabbbxyyypqAzz |
|
|
aaabcxyzpqrrrabbxyyyypqqqqqqqAzz |
|
|
|
|
|
/^(abc){1,2}zz/ |
|
|
abczz |
|
|
abcabczz |
|
|
\= Expect no match |
|
|
zz |
|
|
abcabcabczz |
|
|
>>abczz |
|
|
|
|
|
/^(b+?|a){1,2}?c/ |
|
|
bc |
|
|
bbc |
|
|
bbbc |
|
|
bac |
|
|
bbac |
|
|
aac |
|
|
abbbbbbbbbbbc |
|
|
bbbbbbbbbbbac |
|
|
\= Expect no match |
|
|
aaac |
|
|
abbbbbbbbbbbac |
|
|
|
|
|
/^(b+|a){1,2}c/ |
|
|
bc |
|
|
bbc |
|
|
bbbc |
|
|
bac |
|
|
bbac |
|
|
aac |
|
|
abbbbbbbbbbbc |
|
|
bbbbbbbbbbbac |
|
|
\= Expect no match |
|
|
aaac |
|
|
abbbbbbbbbbbac |
|
|
|
|
|
/^(ba|b*){1,2}?bc/ |
|
|
babc |
|
|
bbabc |
|
|
bababc |
|
|
\= Expect no match |
|
|
bababbc |
|
|
babababc |
|
|
|
|
|
|
|
|
|
|
|
/^\ca\cA\c[;\c:/ |
|
|
\x01\x01\e;z |
|
|
|
|
|
#endif |
|
|
|
|
|
/^[ab\]cde]/ |
|
|
athing |
|
|
bthing |
|
|
]thing |
|
|
cthing |
|
|
dthing |
|
|
ething |
|
|
\= Expect no match |
|
|
fthing |
|
|
[thing |
|
|
\\thing |
|
|
|
|
|
/^[]cde]/ |
|
|
]thing |
|
|
cthing |
|
|
dthing |
|
|
ething |
|
|
\= Expect no match |
|
|
athing |
|
|
fthing |
|
|
|
|
|
/^[^ab\]cde]/ |
|
|
fthing |
|
|
[thing |
|
|
\\thing |
|
|
\= Expect no match |
|
|
athing |
|
|
bthing |
|
|
]thing |
|
|
cthing |
|
|
dthing |
|
|
ething |
|
|
|
|
|
/^[^]cde]/ |
|
|
athing |
|
|
fthing |
|
|
\= Expect no match |
|
|
]thing |
|
|
cthing |
|
|
dthing |
|
|
ething |
|
|
|
|
|
/^\�/ |
|
|
� |
|
|
|
|
|
/^�/ |
|
|
� |
|
|
|
|
|
/^[0-9]+$/ |
|
|
0 |
|
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
100 |
|
|
\= Expect no match |
|
|
abc |
|
|
|
|
|
/^.*nter/ |
|
|
enter |
|
|
inter |
|
|
uponter |
|
|
|
|
|
/^xxx[0-9]+$/ |
|
|
xxx0 |
|
|
xxx1234 |
|
|
\= Expect no match |
|
|
xxx |
|
|
|
|
|
/^.+[0-9][0-9][0-9]$/ |
|
|
x123 |
|
|
x1234 |
|
|
xx123 |
|
|
123456 |
|
|
\= Expect no match |
|
|
123 |
|
|
|
|
|
/^.+?[0-9][0-9][0-9]$/ |
|
|
x123 |
|
|
x1234 |
|
|
xx123 |
|
|
123456 |
|
|
\= Expect no match |
|
|
123 |
|
|
|
|
|
/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ |
|
|
abc!pqr=apquxz.ixr.zzz.ac.uk |
|
|
\= Expect no match |
|
|
!pqr=apquxz.ixr.zzz.ac.uk |
|
|
abc!=apquxz.ixr.zzz.ac.uk |
|
|
abc!pqr=apquxz:ixr.zzz.ac.uk |
|
|
abc!pqr=apquxz.ixr.zzz.ac.ukk |
|
|
|
|
|
/:/ |
|
|
Well, we need a colon: somewhere |
|
|
\= Expect no match |
|
|
Fail without a colon |
|
|
|
|
|
/([\da-f:]+)$/i |
|
|
0abc |
|
|
abc |
|
|
fed |
|
|
E |
|
|
:: |
|
|
5f03:12C0::932e |
|
|
fed def |
|
|
Any old stuff |
|
|
\= Expect no match |
|
|
0zzz |
|
|
gzzz |
|
|
fed\x20 |
|
|
Any old rubbish |
|
|
|
|
|
/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ |
|
|
.1.2.3 |
|
|
A.12.123.0 |
|
|
\= Expect no match |
|
|
.1.2.3333 |
|
|
1.2.3 |
|
|
1234.2.3 |
|
|
|
|
|
/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ |
|
|
1 IN SOA non-sp1 non-sp2( |
|
|
1 IN SOA non-sp1 non-sp2 ( |
|
|
\= Expect no match |
|
|
1IN SOA non-sp1 non-sp2( |
|
|
|
|
|
/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-Z\d\-]*)*\.$/ |
|
|
a. |
|
|
Z. |
|
|
2. |
|
|
ab-c.pq-r. |
|
|
sxk.zzz.ac.uk. |
|
|
x-.y-. |
|
|
\= Expect no match |
|
|
-abc.peq. |
|
|
|
|
|
/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/ |
|
|
*.a |
|
|
*.b0-a |
|
|
*.c3-b.c |
|
|
*.c-a.b-c |
|
|
\= Expect no match |
|
|
*.0 |
|
|
*.a- |
|
|
*.a-b.c- |
|
|
*.c-a.0-c |
|
|
|
|
|
/^(?=ab(de))(abd)(e)/ |
|
|
abde |
|
|
|
|
|
/^(?!(ab)de|x)(abd)(f)/ |
|
|
abdf |
|
|
|
|
|
/^(?=(ab(cd)))(ab)/ |
|
|
abcd |
|
|
|
|
|
/^[\da-f](\.[\da-f])*$/i |
|
|
a.b.c.d |
|
|
A.B.C.D |
|
|
a.b.c.1.2.3.C |
|
|
|
|
|
/^\".*\"\s*(;.*)?$/ |
|
|
\"1234\" |
|
|
\"abcd\" ; |
|
|
\"\" ; rhubarb |
|
|
\= Expect no match |
|
|
\"1234\" : things |
|
|
|
|
|
/^$/ |
|
|
\ |
|
|
\= Expect no match |
|
|
A non-empty line |
|
|
|
|
|
/ ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x |
|
|
ab c |
|
|
\= Expect no match |
|
|
abc |
|
|
ab cde |
|
|
|
|
|
/(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/ |
|
|
ab c |
|
|
\= Expect no match |
|
|
abc |
|
|
ab cde |
|
|
|
|
|
/^ a\ b[c ]d $/x |
|
|
a bcd |
|
|
a b d |
|
|
\= Expect no match |
|
|
abcd |
|
|
ab d |
|
|
|
|
|
/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ |
|
|
abcdefhijklm |
|
|
|
|
|
/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/ |
|
|
abcdefhijklm |
|
|
|
|
|
/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/ |
|
|
a+ Z0+\x08\n\x1d\x12 |
|
|
|
|
|
/^[.^$|()*+?{,}]+/ |
|
|
.^\$(*+)|{?,?} |
|
|
|
|
|
/^a*\w/ |
|
|
z |
|
|
az |
|
|
aaaz |
|
|
a |
|
|
aa |
|
|
aaaa |
|
|
a+ |
|
|
aa+ |
|
|
|
|
|
/^a*?\w/ |
|
|
z |
|
|
az |
|
|
aaaz |
|
|
a |
|
|
aa |
|
|
aaaa |
|
|
a+ |
|
|
aa+ |
|
|
|
|
|
/^a+\w/ |
|
|
az |
|
|
aaaz |
|
|
aa |
|
|
aaaa |
|
|
aa+ |
|
|
|
|
|
/^a+?\w/ |
|
|
az |
|
|
aaaz |
|
|
aa |
|
|
aaaa |
|
|
aa+ |
|
|
|
|
|
/^\d{8}\w{2,}/ |
|
|
1234567890 |
|
|
12345678ab |
|
|
12345678__ |
|
|
\= Expect no match |
|
|
1234567 |
|
|
|
|
|
/^[aeiou\d]{4,5}$/ |
|
|
uoie |
|
|
1234 |
|
|
12345 |
|
|
aaaaa |
|
|
\= Expect no match |
|
|
123456 |
|
|
|
|
|
/^[aeiou\d]{4,5}?/ |
|
|
uoie |
|
|
1234 |
|
|
12345 |
|
|
aaaaa |
|
|
123456 |
|
|
|
|
|
/\A(abc|def)=(\1){2,3}\Z/ |
|
|
abc=abcabc |
|
|
def=defdefdef |
|
|
\= Expect no match |
|
|
abc=defdef |
|
|
|
|
|
/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/ |
|
|
abcdefghijkcda2 |
|
|
abcdefghijkkkkcda2 |
|
|
|
|
|
/(cat(a(ract|tonic)|erpillar)) \1()2(3)/ |
|
|
cataract cataract23 |
|
|
catatonic catatonic23 |
|
|
caterpillar caterpillar23 |
|
|
|
|
|
|
|
|
/^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/ |
|
|
From abcd Mon Sep 01 12:33:02 1997 |
|
|
|
|
|
/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ |
|
|
From abcd Mon Sep 01 12:33:02 1997 |
|
|
From abcd Mon Sep 1 12:33:02 1997 |
|
|
\= Expect no match |
|
|
From abcd Sep 01 12:33:02 1997 |
|
|
|
|
|
/^12.34/s |
|
|
12\n34 |
|
|
12\r34 |
|
|
|
|
|
/\w+(?=\t)/ |
|
|
the quick brown\t fox |
|
|
|
|
|
/foo(?!bar)(.*)/ |
|
|
foobar is foolish see? |
|
|
|
|
|
/(?:(?!foo)...|^.{0,2})bar(.*)/ |
|
|
foobar crowbar etc |
|
|
barrel |
|
|
2barrel |
|
|
A barrel |
|
|
|
|
|
/^(\D*)(?=\d)(?!123)/ |
|
|
abc456 |
|
|
\= Expect no match |
|
|
abc123 |
|
|
|
|
|
/^1234(?# test newlines |
|
|
inside)/ |
|
|
1234 |
|
|
|
|
|
/^1234 #comment in extended re |
|
|
/x |
|
|
1234 |
|
|
|
|
|
/#rhubarb |
|
|
abcd/x |
|
|
abcd |
|
|
|
|
|
/^abcd#rhubarb/x |
|
|
abcd |
|
|
|
|
|
/^(a)\1{2,3}(.)/ |
|
|
aaab |
|
|
aaaab |
|
|
aaaaab |
|
|
aaaaaab |
|
|
|
|
|
/(?!^)abc/ |
|
|
the abc |
|
|
\= Expect no match |
|
|
abc |
|
|
|
|
|
/(?=^)abc/ |
|
|
abc |
|
|
\= Expect no match |
|
|
the abc |
|
|
|
|
|
/^[ab]{1,3}(ab*|b)/ |
|
|
aabbbbb |
|
|
|
|
|
/^[ab]{1,3}?(ab*|b)/ |
|
|
aabbbbb |
|
|
|
|
|
/^[ab]{1,3}?(ab*?|b)/ |
|
|
aabbbbb |
|
|
|
|
|
/^[ab]{1,3}(ab*?|b)/ |
|
|
aabbbbb |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/ (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* # optional leading comment |
|
|
(?: (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
| |
|
|
" (?: |
|
|
[^\\\x80-\xff\n\015"] # Anything except backslash and quote |
|
|
| # or |
|
|
\\ [^\x80-\xff] # Escaped something (something != CR) |
|
|
)* " |
|
|
) |
|
|
(?: (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* \. (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| |
|
|
" (?: # opening quote... |
|
|
[^\\\x80-\xff\n\015"] |
|
|
| |
|
|
\\ [^\x80-\xff] |
|
|
)* " # closing quote |
|
|
) )* # further okay, if led by a period |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* @ (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
| \[ # [ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff |
|
|
\] # ] |
|
|
) # initial subdomain |
|
|
(?: # |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* \. # if led by a period... |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
| \[ # [ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff |
|
|
\] # ] |
|
|
) # ...further okay |
|
|
)* |
|
|
# address |
|
|
| # or |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
| |
|
|
" (?: |
|
|
[^\\\x80-\xff\n\015"] # Anything except backslash and quote |
|
|
| # or |
|
|
\\ [^\x80-\xff] # Escaped something (something != CR) |
|
|
)* " |
|
|
) |
|
|
(?: |
|
|
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or... |
|
|
\( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) | # comments, or... |
|
|
|
|
|
" (?: |
|
|
[^\\\x80-\xff\n\015"] # Anything except backslash and quote |
|
|
| # or |
|
|
\\ [^\x80-\xff] # Escaped something (something != CR) |
|
|
)* " |
|
|
|
|
|
)* |
|
|
< (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* |
|
|
(?: @ (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| \[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
(?: |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* \. |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| \[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
)* |
|
|
|
|
|
(?: (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* , (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* @ (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| \[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
(?: |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* \. |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| \[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
)* |
|
|
)* |
|
|
: |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* )? |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| |
|
|
" (?: # opening quote... |
|
|
[^\\\x80-\xff\n\015"] |
|
|
| |
|
|
\\ [^\x80-\xff] |
|
|
)* " # closing quote |
|
|
) # initial word |
|
|
(?: (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* \. (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
| |
|
|
" (?: |
|
|
[^\\\x80-\xff\n\015"] # Anything except backslash and quote |
|
|
| # or |
|
|
\\ [^\x80-\xff] # Escaped something (something != CR) |
|
|
)* " |
|
|
) )* |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* @ (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| \[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
(?: |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* \. |
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* (?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| \[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
)* |
|
|
|
|
|
(?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* > |
|
|
|
|
|
) (?: [\040\t] | \( |
|
|
(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* |
|
|
\) )* |
|
|
/x |
|
|
Alan Other <user\@dom.ain> |
|
|
<user\@dom.ain> |
|
|
user\@dom.ain |
|
|
\"A. Other\" <user.1234\@dom.ain> (a comment) |
|
|
A. Other <user.1234\@dom.ain> (a comment) |
|
|
\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay |
|
|
A missing angle <user\@some.where |
|
|
\= Expect no match |
|
|
The quick brown fox |
|
|
|
|
|
/[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
# optional leading comment |
|
|
(?: |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
# Atom |
|
|
| # or |
|
|
" |
|
|
[^\\\x80-\xff\n\015"] * # normal |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* |
|
|
" # " |
|
|
|
|
|
) |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
(?: |
|
|
\. |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
|
|
|
| |
|
|
" # " |
|
|
[^\\\x80-\xff\n\015"] * # normal |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* |
|
|
" # " |
|
|
|
|
|
) |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
|
|
|
)* |
|
|
@ |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| |
|
|
\[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
|
|
|
(?: |
|
|
\. |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| |
|
|
\[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
|
|
|
)* |
|
|
|
|
|
| |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
|
|
|
| |
|
|
" # " |
|
|
[^\\\x80-\xff\n\015"] * # normal |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* |
|
|
" # " |
|
|
|
|
|
) |
|
|
|
|
|
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces |
|
|
(?: |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
| |
|
|
" |
|
|
[^\\\x80-\xff\n\015"] * # normal |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* |
|
|
" # " |
|
|
) |
|
|
[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal" |
|
|
)* |
|
|
< |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
# < |
|
|
(?: |
|
|
@ |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
| |
|
|
\[ # [ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff |
|
|
\] # ] |
|
|
) |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
# optional trailing comments |
|
|
(?: |
|
|
\. |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
| |
|
|
\[ # [ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff |
|
|
\] # ] |
|
|
) |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
# optional trailing comments |
|
|
)* |
|
|
(?: , |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
@ |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
| |
|
|
\[ # [ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff |
|
|
\] # ] |
|
|
) |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
# optional trailing comments |
|
|
(?: |
|
|
\. |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
| |
|
|
\[ # [ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff |
|
|
\] # ] |
|
|
) |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
# optional trailing comments |
|
|
)* |
|
|
)* # additional domains |
|
|
: |
|
|
[\040\t]* # Nab whitespace. |
|
|
(?: |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: # ( |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( # ( |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* |
|
|
\) # ) |
|
|
) # special |
|
|
[^\\\x80-\xff\n\015()] * # normal* |
|
|
)* # )* |
|
|
\) # ) |
|
|
[\040\t]* )* # If comment found, allow more spaces. |
|
|
# optional trailing comments |
|
|
)? # optional route |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom |
|
|
# Atom |
|
|
| # or |
|
|
" |
|
|
[^\\\x80-\xff\n\015"] * # normal |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* |
|
|
" # " |
|
|
|
|
|
) |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
(?: |
|
|
\. |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
|
|
|
| |
|
|
" # " |
|
|
[^\\\x80-\xff\n\015"] * # normal |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* |
|
|
" # " |
|
|
|
|
|
) |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
|
|
|
)* |
|
|
@ |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| |
|
|
\[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
|
|
|
(?: |
|
|
\. |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
(?: |
|
|
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... |
|
|
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) |
|
|
| |
|
|
\[ |
|
|
(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* |
|
|
\] |
|
|
) |
|
|
[\040\t]* |
|
|
(?: |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: |
|
|
(?: \\ [^\x80-\xff] | |
|
|
\( |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* |
|
|
\) |
|
|
) |
|
|
[^\\\x80-\xff\n\015()] * |
|
|
)* |
|
|
\) |
|
|
[\040\t]* )* |
|
|
|
|
|
)* |
|
|
|
|
|
> |
|
|
|
|
|
) |
|
|
/x |
|
|
Alan Other <user\@dom.ain> |
|
|
<user\@dom.ain> |
|
|
user\@dom.ain |
|
|
\"A. Other\" <user.1234\@dom.ain> (a comment) |
|
|
A. Other <user.1234\@dom.ain> (a comment) |
|
|
\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay |
|
|
A missing angle <user\@some.where |
|
|
\= Expect no match |
|
|
The quick brown fox |
|
|
|
|
|
#endif |
|
|
|
|
|
/abc\0def\00pqr\000xyz\0000AB/ |
|
|
abc\0def\00pqr\000xyz\0000AB |
|
|
abc456 abc\0def\00pqr\000xyz\0000ABCDE |
|
|
|
|
|
/abc\x0def\x00pqr\x000xyz\x0000AB/ |
|
|
abc\x0def\x00pqr\x000xyz\x0000AB |
|
|
abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE |
|
|
|
|
|
/^[\000-\037]/ |
|
|
\0A |
|
|
\01B |
|
|
\037C |
|
|
|
|
|
/\0*/ |
|
|
\0\0\0\0 |
|
|
|
|
|
/A\x0{2,3}Z/ |
|
|
The A\x0\x0Z |
|
|
An A\0\x0\0Z |
|
|
\= Expect no match |
|
|
A\0Z |
|
|
A\0\x0\0\x0Z |
|
|
|
|
|
/^(cow|)\1(bell)/ |
|
|
cowcowbell |
|
|
bell |
|
|
\= Expect no match |
|
|
cowbell |
|
|
|
|
|
/^\s/ |
|
|
\040abc |
|
|
\x0cabc |
|
|
\nabc |
|
|
\rabc |
|
|
\tabc |
|
|
\= Expect no match |
|
|
abc |
|
|
|
|
|
/^a b |
|
|
c/x |
|
|
abc |
|
|
|
|
|
/^(a|)\1*b/ |
|
|
ab |
|
|
aaaab |
|
|
b |
|
|
\= Expect no match |
|
|
acb |
|
|
|
|
|
/^(a|)\1+b/ |
|
|
aab |
|
|
aaaab |
|
|
b |
|
|
\= Expect no match |
|
|
ab |
|
|
|
|
|
/^(a|)\1?b/ |
|
|
ab |
|
|
aab |
|
|
b |
|
|
\= Expect no match |
|
|
acb |
|
|
|
|
|
/^(a|)\1{2}b/ |
|
|
aaab |
|
|
b |
|
|
\= Expect no match |
|
|
ab |
|
|
aab |
|
|
aaaab |
|
|
|
|
|
/^(a|)\1{2,3}b/ |
|
|
aaab |
|
|
aaaab |
|
|
b |
|
|
\= Expect no match |
|
|
ab |
|
|
aab |
|
|
aaaaab |
|
|
|
|
|
/ab{1,3}bc/ |
|
|
abbbbc |
|
|
abbbc |
|
|
abbc |
|
|
\= Expect no match |
|
|
abc |
|
|
abbbbbc |
|
|
|
|
|
/([^.]*)\.([^:]*):[T ]+(.*)/ |
|
|
track1.title:TBlah blah blah |
|
|
|
|
|
/([^.]*)\.([^:]*):[T ]+(.*)/i |
|
|
track1.title:TBlah blah blah |
|
|
|
|
|
/([^.]*)\.([^:]*):[t ]+(.*)/i |
|
|
track1.title:TBlah blah blah |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/^[W-c]+$/ |
|
|
WXY_^abc |
|
|
\= Expect no match |
|
|
wxy |
|
|
|
|
|
/^[W-c]+$/i |
|
|
WXY_^abc |
|
|
wxy_^ABC |
|
|
|
|
|
/^[\x3f-\x5F]+$/i |
|
|
WXY_^abc |
|
|
wxy_^ABC |
|
|
|
|
|
#endif |
|
|
|
|
|
/^abc$/m |
|
|
abc |
|
|
qqq\nabc |
|
|
abc\nzzz |
|
|
qqq\nabc\nzzz |
|
|
|
|
|
/^abc$/ |
|
|
abc |
|
|
\= Expect no match |
|
|
qqq\nabc |
|
|
abc\nzzz |
|
|
qqq\nabc\nzzz |
|
|
|
|
|
/\Aabc\Z/m |
|
|
abc |
|
|
abc\n |
|
|
\= Expect no match |
|
|
qqq\nabc |
|
|
abc\nzzz |
|
|
qqq\nabc\nzzz |
|
|
|
|
|
/\A(.)*\Z/s |
|
|
abc\ndef |
|
|
|
|
|
/\A(.)*\Z/m |
|
|
\= Expect no match |
|
|
abc\ndef |
|
|
|
|
|
/(?:b)|(?::+)/ |
|
|
b::c |
|
|
c::b |
|
|
|
|
|
/[-az]+/ |
|
|
az- |
|
|
\= Expect no match |
|
|
b |
|
|
|
|
|
/[az-]+/ |
|
|
za- |
|
|
\= Expect no match |
|
|
b |
|
|
|
|
|
/[a\-z]+/ |
|
|
a-z |
|
|
\= Expect no match |
|
|
b |
|
|
|
|
|
/[a-z]+/ |
|
|
abcdxyz |
|
|
|
|
|
/[\d-]+/ |
|
|
12-34 |
|
|
\= Expect no match |
|
|
aaa |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/\x5c/ |
|
|
\\ |
|
|
|
|
|
/\x20Z/ |
|
|
the Zoo |
|
|
\= Expect no match |
|
|
Zulu |
|
|
|
|
|
#endif |
|
|
|
|
|
/(abc)\1/i |
|
|
abcabc |
|
|
ABCabc |
|
|
abcABC |
|
|
|
|
|
/abc$/ |
|
|
abc |
|
|
abc\n |
|
|
\= Expect no match |
|
|
abc\ndef |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/(abc)\123/ |
|
|
abc\x53 |
|
|
|
|
|
/(abc)\223/ |
|
|
abc\x93 |
|
|
|
|
|
/(abc)\323/ |
|
|
abc\xd3 |
|
|
|
|
|
/(abc)\100/ |
|
|
abc\x40 |
|
|
abc\100 |
|
|
|
|
|
/(abc)\1000/ |
|
|
abc\x400 |
|
|
abc\x40\x30 |
|
|
abc\1000 |
|
|
abc\100\x30 |
|
|
abc\100\060 |
|
|
abc\100\60 |
|
|
|
|
|
#endif |
|
|
|
|
|
/^(A)(B)(C)(D)(E)(F)(G)(H)(I)\8\9$/ |
|
|
ABCDEFGHIHI |
|
|
|
|
|
/^[A\8B\9C]+$/ |
|
|
A8B9C |
|
|
\= Expect no match |
|
|
A8B9C\x00 |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/ |
|
|
abcdefghijkllS |
|
|
|
|
|
/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/ |
|
|
abcdefghijk\12S |
|
|
|
|
|
#endif |
|
|
|
|
|
/a{0}bc/ |
|
|
bc |
|
|
|
|
|
/(a|(bc)){0,0}?xyz/ |
|
|
xyz |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/abc[\10]de/ |
|
|
abc\010de |
|
|
|
|
|
#endif |
|
|
|
|
|
/abc[\1]de/ |
|
|
abc\1de |
|
|
|
|
|
/(abc)[\1]de/ |
|
|
abc\1de |
|
|
|
|
|
/(?s)a.b/ |
|
|
a\nb |
|
|
|
|
|
/^([^a])([^\b])([^c]*)([^d]{3,4})/ |
|
|
baNOTccccd |
|
|
baNOTcccd |
|
|
baNOTccd |
|
|
bacccd |
|
|
\= Expect no match |
|
|
anything |
|
|
b\bc |
|
|
baccd |
|
|
|
|
|
/[^a]/ |
|
|
Abc |
|
|
|
|
|
/[^a]/i |
|
|
Abc |
|
|
|
|
|
/[^a]+/ |
|
|
AAAaAbc |
|
|
|
|
|
/[^a]+/i |
|
|
AAAaAbc |
|
|
|
|
|
/[^a]+/ |
|
|
bbb\nccc |
|
|
|
|
|
/[^k]$/ |
|
|
abc |
|
|
\= Expect no match |
|
|
abk |
|
|
|
|
|
/[^k]{2,3}$/ |
|
|
abc |
|
|
kbc |
|
|
kabc |
|
|
\= Expect no match |
|
|
abk |
|
|
akb |
|
|
akk |
|
|
|
|
|
/^\d{8,}\@.+[^k]$/ |
|
|
12345678\@a.b.c.d |
|
|
123456789\@x.y.z |
|
|
\= Expect no match |
|
|
12345678\@x.y.uk |
|
|
1234567\@a.b.c.d |
|
|
|
|
|
/(a)\1{8,}/ |
|
|
aaaaaaaaa |
|
|
aaaaaaaaaa |
|
|
\= Expect no match |
|
|
aaaaaaa |
|
|
|
|
|
/[^a]/ |
|
|
aaaabcd |
|
|
aaAabcd |
|
|
|
|
|
/[^a]/i |
|
|
aaaabcd |
|
|
aaAabcd |
|
|
|
|
|
/[^az]/ |
|
|
aaaabcd |
|
|
aaAabcd |
|
|
|
|
|
/[^az]/i |
|
|
aaaabcd |
|
|
aaAabcd |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377/ |
|
|
\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377 |
|
|
|
|
|
#endif |
|
|
|
|
|
/P[^*]TAIRE[^*]{1,6}?LL/ |
|
|
xxxxxxxxxxxPSTAIREISLLxxxxxxxxx |
|
|
|
|
|
/P[^*]TAIRE[^*]{1,}?LL/ |
|
|
xxxxxxxxxxxPSTAIREISLLxxxxxxxxx |
|
|
|
|
|
/(\.\d\d[1-9]?)\d+/ |
|
|
1.230003938 |
|
|
1.875000282 |
|
|
1.235 |
|
|
|
|
|
/(\.\d\d((?=0)|\d(?=\d)))/ |
|
|
1.230003938 |
|
|
1.875000282 |
|
|
\= Expect no match |
|
|
1.235 |
|
|
|
|
|
/a(?)b/ |
|
|
ab |
|
|
|
|
|
/\b(foo)\s+(\w+)/i |
|
|
Food is on the foo table |
|
|
|
|
|
/foo(.*)bar/ |
|
|
The food is under the bar in the barn. |
|
|
|
|
|
/foo(.*?)bar/ |
|
|
The food is under the bar in the barn. |
|
|
|
|
|
/(.*)(\d*)/ |
|
|
I have 2 numbers: 53147 |
|
|
|
|
|
/(.*)(\d+)/ |
|
|
I have 2 numbers: 53147 |
|
|
|
|
|
/(.*?)(\d*)/ |
|
|
I have 2 numbers: 53147 |
|
|
|
|
|
/(.*?)(\d+)/ |
|
|
I have 2 numbers: 53147 |
|
|
|
|
|
/(.*)(\d+)$/ |
|
|
I have 2 numbers: 53147 |
|
|
|
|
|
/(.*?)(\d+)$/ |
|
|
I have 2 numbers: 53147 |
|
|
|
|
|
/(.*)\b(\d+)$/ |
|
|
I have 2 numbers: 53147 |
|
|
|
|
|
/(.*\D)(\d+)$/ |
|
|
I have 2 numbers: 53147 |
|
|
|
|
|
/^\D*(?!123)/ |
|
|
ABC123 |
|
|
|
|
|
/^(\D*)(?=\d)(?!123)/ |
|
|
ABC445 |
|
|
\= Expect no match |
|
|
ABC123 |
|
|
|
|
|
/^[W-]46]/ |
|
|
W46]789 |
|
|
-46]789 |
|
|
\= Expect no match |
|
|
Wall |
|
|
Zebra |
|
|
42 |
|
|
[abcd] |
|
|
]abcd[ |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/^[W-\]46]/ |
|
|
W46]789 |
|
|
Wall |
|
|
Zebra |
|
|
Xylophone |
|
|
42 |
|
|
[abcd] |
|
|
]abcd[ |
|
|
\\backslash |
|
|
\= Expect no match |
|
|
-46]789 |
|
|
well |
|
|
|
|
|
#endif |
|
|
|
|
|
/\d\d\/\d\d\/\d\d\d\d/ |
|
|
01/01/2000 |
|
|
|
|
|
/word (?:[a-zA-Z0-9]+ ){0,10}otherword/ |
|
|
word cat dog elephant mussel cow horse canary baboon snake shark otherword |
|
|
\= Expect no match |
|
|
word cat dog elephant mussel cow horse canary baboon snake shark |
|
|
|
|
|
/word (?:[a-zA-Z0-9]+ ){0,300}otherword/ |
|
|
\= Expect no match |
|
|
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 |
|
|
|
|
|
/^(a){0,0}/ |
|
|
bcd |
|
|
abc |
|
|
aab |
|
|
|
|
|
/^(a){0,1}/ |
|
|
bcd |
|
|
abc |
|
|
aab |
|
|
|
|
|
/^(a){0,2}/ |
|
|
bcd |
|
|
abc |
|
|
aab |
|
|
|
|
|
/^(a){0,3}/ |
|
|
bcd |
|
|
abc |
|
|
aab |
|
|
aaa |
|
|
|
|
|
/^(a){0,}/ |
|
|
bcd |
|
|
abc |
|
|
aab |
|
|
aaa |
|
|
aaaaaaaa |
|
|
|
|
|
/^(a){1,1}/ |
|
|
abc |
|
|
aab |
|
|
\= Expect no match |
|
|
bcd |
|
|
|
|
|
/^(a){1,2}/ |
|
|
abc |
|
|
aab |
|
|
\= Expect no match |
|
|
bcd |
|
|
|
|
|
/^(a){1,3}/ |
|
|
abc |
|
|
aab |
|
|
aaa |
|
|
\= Expect no match |
|
|
bcd |
|
|
|
|
|
/^(a){1,}/ |
|
|
abc |
|
|
aab |
|
|
aaa |
|
|
aaaaaaaa |
|
|
\= Expect no match |
|
|
bcd |
|
|
|
|
|
/.*\.gif/ |
|
|
borfle\nbib.gif\nno |
|
|
|
|
|
/.{0,}\.gif/ |
|
|
borfle\nbib.gif\nno |
|
|
|
|
|
/.*\.gif/m |
|
|
borfle\nbib.gif\nno |
|
|
|
|
|
/.*\.gif/s |
|
|
borfle\nbib.gif\nno |
|
|
|
|
|
/.*\.gif/ms |
|
|
borfle\nbib.gif\nno |
|
|
|
|
|
/.*$/ |
|
|
borfle\nbib.gif\nno |
|
|
|
|
|
/.*$/m |
|
|
borfle\nbib.gif\nno |
|
|
|
|
|
/.*$/s |
|
|
borfle\nbib.gif\nno |
|
|
|
|
|
/.*$/ms |
|
|
borfle\nbib.gif\nno |
|
|
|
|
|
/.*$/ |
|
|
borfle\nbib.gif\nno\n |
|
|
|
|
|
/.*$/m |
|
|
borfle\nbib.gif\nno\n |
|
|
|
|
|
/.*$/s |
|
|
borfle\nbib.gif\nno\n |
|
|
|
|
|
/.*$/ms |
|
|
borfle\nbib.gif\nno\n |
|
|
|
|
|
/(.*X|^B)/ |
|
|
abcde\n1234Xyz |
|
|
BarFoo |
|
|
\= Expect no match |
|
|
abcde\nBar |
|
|
|
|
|
/(.*X|^B)/m |
|
|
abcde\n1234Xyz |
|
|
BarFoo |
|
|
abcde\nBar |
|
|
|
|
|
/(.*X|^B)/s |
|
|
abcde\n1234Xyz |
|
|
BarFoo |
|
|
\= Expect no match |
|
|
abcde\nBar |
|
|
|
|
|
/(.*X|^B)/ms |
|
|
abcde\n1234Xyz |
|
|
BarFoo |
|
|
abcde\nBar |
|
|
|
|
|
/(?s)(.*X|^B)/ |
|
|
abcde\n1234Xyz |
|
|
BarFoo |
|
|
\= Expect no match |
|
|
abcde\nBar |
|
|
|
|
|
/(?s:.*X|^B)/ |
|
|
abcde\n1234Xyz |
|
|
BarFoo |
|
|
\= Expect no match |
|
|
abcde\nBar |
|
|
|
|
|
/^.*B/ |
|
|
\= Expect no match |
|
|
abc\nB |
|
|
|
|
|
/(?s)^.*B/ |
|
|
abc\nB |
|
|
|
|
|
/(?m)^.*B/ |
|
|
abc\nB |
|
|
|
|
|
/(?ms)^.*B/ |
|
|
abc\nB |
|
|
|
|
|
/(?ms)^B/ |
|
|
abc\nB |
|
|
|
|
|
/(?s)B$/ |
|
|
B\n |
|
|
|
|
|
/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ |
|
|
123456654321 |
|
|
|
|
|
/^\d\d\d\d\d\d\d\d\d\d\d\d/ |
|
|
123456654321 |
|
|
|
|
|
/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/ |
|
|
123456654321 |
|
|
|
|
|
/^[abc]{12}/ |
|
|
abcabcabcabc |
|
|
|
|
|
/^[a-c]{12}/ |
|
|
abcabcabcabc |
|
|
|
|
|
/^(a|b|c){12}/ |
|
|
abcabcabcabc |
|
|
|
|
|
/^[abcdefghijklmnopqrstuvwxy0123456789]/ |
|
|
n |
|
|
\= Expect no match |
|
|
z |
|
|
|
|
|
/abcde{0,0}/ |
|
|
abcd |
|
|
\= Expect no match |
|
|
abce |
|
|
|
|
|
/ab[cd]{0,0}e/ |
|
|
abe |
|
|
\= Expect no match |
|
|
abcde |
|
|
|
|
|
/ab(c){0,0}d/ |
|
|
abd |
|
|
\= Expect no match |
|
|
abcd |
|
|
|
|
|
/a(b*)/ |
|
|
a |
|
|
ab |
|
|
abbbb |
|
|
\= Expect no match |
|
|
bbbbb |
|
|
|
|
|
/ab\d{0}e/ |
|
|
abe |
|
|
\= Expect no match |
|
|
ab1e |
|
|
|
|
|
/"([^\\"]+|\\.)*"/ |
|
|
the \"quick\" brown fox |
|
|
\"the \\\"quick\\\" brown fox\" |
|
|
|
|
|
/.*?/g,aftertext |
|
|
abc |
|
|
|
|
|
/\b/g,aftertext |
|
|
abc |
|
|
|
|
|
/\b/g,aftertext |
|
|
abc |
|
|
|
|
|
//g |
|
|
abc |
|
|
|
|
|
/<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is |
|
|
<TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR> |
|
|
|
|
|
/a[^a]b/ |
|
|
acb |
|
|
a\nb |
|
|
|
|
|
/a.b/ |
|
|
acb |
|
|
\= Expect no match |
|
|
a\nb |
|
|
|
|
|
/a[^a]b/s |
|
|
acb |
|
|
a\nb |
|
|
|
|
|
/a.b/s |
|
|
acb |
|
|
a\nb |
|
|
|
|
|
/^(b+?|a){1,2}?c/ |
|
|
bac |
|
|
bbac |
|
|
bbbac |
|
|
bbbbac |
|
|
bbbbbac |
|
|
|
|
|
/^(b+|a){1,2}?c/ |
|
|
bac |
|
|
bbac |
|
|
bbbac |
|
|
bbbbac |
|
|
bbbbbac |
|
|
|
|
|
/(?!\A)x/m |
|
|
a\bx\n |
|
|
a\nx\n |
|
|
\= Expect no match |
|
|
x\nb\n |
|
|
|
|
|
/(A|B)*?CD/ |
|
|
CD |
|
|
|
|
|
/(A|B)*CD/ |
|
|
CD |
|
|
|
|
|
/(AB)*?\1/ |
|
|
ABABAB |
|
|
|
|
|
/(AB)*\1/ |
|
|
ABABAB |
|
|
|
|
|
/(?<!bar)foo/ |
|
|
foo |
|
|
catfood |
|
|
arfootle |
|
|
rfoosh |
|
|
\= Expect no match |
|
|
barfoo |
|
|
towbarfoo |
|
|
|
|
|
/\w{3}(?<!bar)foo/ |
|
|
catfood |
|
|
\= Expect no match |
|
|
foo |
|
|
barfoo |
|
|
towbarfoo |
|
|
|
|
|
/(?<=(foo)a)bar/ |
|
|
fooabar |
|
|
\= Expect no match |
|
|
bar |
|
|
foobbar |
|
|
|
|
|
/\Aabc\z/m |
|
|
abc |
|
|
\= Expect no match |
|
|
abc\n |
|
|
qqq\nabc |
|
|
abc\nzzz |
|
|
qqq\nabc\nzzz |
|
|
|
|
|
/(?>.*\/)foo/ |
|
|
/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo |
|
|
\= Expect no match |
|
|
/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ |
|
|
|
|
|
/(?>(\.\d\d[1-9]?))\d+/ |
|
|
1.230003938 |
|
|
1.875000282 |
|
|
\= Expect no match |
|
|
1.235 |
|
|
|
|
|
/^((?>\w+)|(?>\s+))*$/ |
|
|
now is the time for all good men to come to the aid of the party |
|
|
\= Expect no match |
|
|
this is not a line with only words and spaces! |
|
|
|
|
|
/(\d+)(\w)/ |
|
|
12345a |
|
|
12345+ |
|
|
|
|
|
/((?>\d+))(\w)/ |
|
|
12345a |
|
|
\= Expect no match |
|
|
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) |
|
|
\= Expect no match |
|
|
((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
|
|
|
|
/a(?-i)b/i |
|
|
ab |
|
|
Ab |
|
|
\= Expect no match |
|
|
aB |
|
|
AB |
|
|
|
|
|
/(a (?x)b c)d e/ |
|
|
a bcd e |
|
|
\= Expect no match |
|
|
a b cd e |
|
|
abcd e |
|
|
a bcde |
|
|
|
|
|
/(a b(?x)c d (?-x)e f)/ |
|
|
a bcde f |
|
|
\= Expect no match |
|
|
abcdef |
|
|
|
|
|
/(a(?i)b)c/ |
|
|
abc |
|
|
aBc |
|
|
\= Expect no match |
|
|
abC |
|
|
aBC |
|
|
Abc |
|
|
ABc |
|
|
ABC |
|
|
AbC |
|
|
|
|
|
/a(?i:b)c/ |
|
|
abc |
|
|
aBc |
|
|
\= Expect no match |
|
|
ABC |
|
|
abC |
|
|
aBC |
|
|
|
|
|
/a(?i:b)*c/ |
|
|
aBc |
|
|
aBBc |
|
|
\= Expect no match |
|
|
aBC |
|
|
aBBC |
|
|
|
|
|
/a(?=b(?i)c)\w\wd/ |
|
|
abcd |
|
|
abCd |
|
|
\= Expect no match |
|
|
aBCd |
|
|
abcD |
|
|
|
|
|
/(?s-i:more.*than).*million/i |
|
|
more than million |
|
|
more than MILLION |
|
|
more \n than Million |
|
|
\= Expect no match |
|
|
MORE THAN MILLION |
|
|
more \n than \n million |
|
|
|
|
|
/(?:(?s-i)more.*than).*million/i |
|
|
more than million |
|
|
more than MILLION |
|
|
more \n than Million |
|
|
\= Expect no match |
|
|
MORE THAN MILLION |
|
|
more \n than \n million |
|
|
|
|
|
/(?>a(?i)b+)+c/ |
|
|
abc |
|
|
aBbc |
|
|
aBBc |
|
|
\= Expect no match |
|
|
Abc |
|
|
abAb |
|
|
abbC |
|
|
|
|
|
/(?=a(?i)b)\w\wc/ |
|
|
abc |
|
|
aBc |
|
|
\= Expect no match |
|
|
Ab |
|
|
abC |
|
|
aBC |
|
|
|
|
|
/(?<=a(?i)b)(\w\w)c/ |
|
|
abxxc |
|
|
aBxxc |
|
|
\= Expect no match |
|
|
Abxxc |
|
|
ABxxc |
|
|
abxxC |
|
|
|
|
|
/(?:(a)|b)(?(1)A|B)/ |
|
|
aA |
|
|
bB |
|
|
\= Expect no match |
|
|
aB |
|
|
bA |
|
|
|
|
|
/^(a)?(?(1)a|b)+$/ |
|
|
aa |
|
|
b |
|
|
bb |
|
|
\= Expect no match |
|
|
ab |
|
|
|
|
|
# Perl gets this next one wrong if the pattern ends with $; in that case it |
|
|
# fails to match "12". |
|
|
|
|
|
/^(?(?=abc)\w{3}:|\d\d)/ |
|
|
abc: |
|
|
12 |
|
|
123 |
|
|
\= Expect no match |
|
|
xyz |
|
|
|
|
|
/^(?(?!abc)\d\d|\w{3}:)$/ |
|
|
abc: |
|
|
12 |
|
|
\= Expect no match |
|
|
123 |
|
|
xyz |
|
|
|
|
|
/(?(?<=foo)bar|cat)/ |
|
|
foobar |
|
|
cat |
|
|
fcat |
|
|
focat |
|
|
\= Expect no match |
|
|
foocat |
|
|
|
|
|
/(?(?<!foo)cat|bar)/ |
|
|
foobar |
|
|
cat |
|
|
fcat |
|
|
focat |
|
|
\= Expect no match |
|
|
foocat |
|
|
|
|
|
/( \( )? [^()]+ (?(1) \) |) /x |
|
|
abcd |
|
|
(abcd) |
|
|
the quick (abcd) fox |
|
|
(abcd |
|
|
|
|
|
/( \( )? [^()]+ (?(1) \) ) /x |
|
|
abcd |
|
|
(abcd) |
|
|
the quick (abcd) fox |
|
|
(abcd |
|
|
|
|
|
/^(?(2)a|(1)(2))+$/ |
|
|
12 |
|
|
12a |
|
|
12aa |
|
|
\= Expect no match |
|
|
1234 |
|
|
|
|
|
/((?i)blah)\s+\1/ |
|
|
blah blah |
|
|
BLAH BLAH |
|
|
Blah Blah |
|
|
blaH blaH |
|
|
\= Expect no match |
|
|
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 |
|
|
|
|
|
/((?i)blah)\s+(?m)A(?i:\1)/ |
|
|
blah ABLAH |
|
|
\= Expect no match |
|
|
blah aBLAH |
|
|
|
|
|
/(?>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 |
|
|
\= Expect no match |
|
|
sep-12-98 |
|
|
|
|
|
/(?<=(foo))bar\1/ |
|
|
foobarfoo |
|
|
foobarfootling |
|
|
\= Expect no match |
|
|
foobar |
|
|
barfoo |
|
|
|
|
|
/(?i:saturday|sunday)/ |
|
|
saturday |
|
|
sunday |
|
|
Saturday |
|
|
Sunday |
|
|
SATURDAY |
|
|
SUNDAY |
|
|
SunDay |
|
|
|
|
|
/(a(?i)bc|BB)x/ |
|
|
abcx |
|
|
aBCx |
|
|
bbx |
|
|
BBx |
|
|
\= Expect no match |
|
|
abcX |
|
|
aBCX |
|
|
bbX |
|
|
BBX |
|
|
|
|
|
/^([ab](?i)[cd]|[ef])/ |
|
|
ac |
|
|
aC |
|
|
bD |
|
|
elephant |
|
|
Europe |
|
|
frog |
|
|
France |
|
|
\= Expect no match |
|
|
Africa |
|
|
|
|
|
/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/ |
|
|
ab |
|
|
aBd |
|
|
xy |
|
|
xY |
|
|
zebra |
|
|
Zambesi |
|
|
\= Expect no match |
|
|
aCD |
|
|
XY |
|
|
|
|
|
/(?<=foo\n)^bar/m |
|
|
foo\nbar |
|
|
\= Expect no match |
|
|
bar |
|
|
baz\nbar |
|
|
|
|
|
/(?<=(?<!foo)bar)baz/ |
|
|
barbaz |
|
|
barbarbaz |
|
|
koobarbaz |
|
|
\= Expect no match |
|
|
baz |
|
|
foobarbaz |
|
|
|
|
|
# The cases of aaaa and aaaaaa are missed out below because Perl does things |
|
|
# differently. We know that odd, and maybe incorrect, things happen with |
|
|
# recursive references in Perl, as far as 5.11.3 - see some stuff in test #2. |
|
|
|
|
|
/^(a\1?){4}$/ |
|
|
aaaaa |
|
|
aaaaaaa |
|
|
aaaaaaaaaa |
|
|
\= Expect no match |
|
|
a |
|
|
aa |
|
|
aaa |
|
|
aaaaaaaa |
|
|
aaaaaaaaa |
|
|
aaaaaaaaaaa |
|
|
aaaaaaaaaaaa |
|
|
aaaaaaaaaaaaa |
|
|
aaaaaaaaaaaaaa |
|
|
aaaaaaaaaaaaaaa |
|
|
aaaaaaaaaaaaaaaa |
|
|
|
|
|
/^(a\1?)(a\1?)(a\2?)(a\3?)$/ |
|
|
aaaa |
|
|
aaaaa |
|
|
aaaaaa |
|
|
aaaaaaa |
|
|
aaaaaaaaaa |
|
|
\= Expect no match |
|
|
a |
|
|
aa |
|
|
aaa |
|
|
aaaaaaaa |
|
|
aaaaaaaaa |
|
|
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 |
|
|
\= Expect no match |
|
|
xbc |
|
|
axc |
|
|
abx |
|
|
|
|
|
/ab*c/ |
|
|
abc |
|
|
|
|
|
/ab*bc/ |
|
|
abc |
|
|
abbc |
|
|
abbbbc |
|
|
|
|
|
/.{1}/ |
|
|
abbbbc |
|
|
|
|
|
/.{3,4}/ |
|
|
abbbbc |
|
|
|
|
|
/ab{0,}bc/ |
|
|
abbbbc |
|
|
|
|
|
/ab+bc/ |
|
|
abbc |
|
|
\= Expect no match |
|
|
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/ |
|
|
\= Expect no match |
|
|
abq |
|
|
abbbbc |
|
|
|
|
|
/ab?bc/ |
|
|
abbc |
|
|
abc |
|
|
|
|
|
/ab{0,1}bc/ |
|
|
abc |
|
|
|
|
|
/ab?bc/ |
|
|
|
|
|
/ab?c/ |
|
|
abc |
|
|
|
|
|
/ab{0,1}c/ |
|
|
abc |
|
|
|
|
|
/^abc$/ |
|
|
abc |
|
|
\= Expect no match |
|
|
abbbbc |
|
|
abcc |
|
|
|
|
|
/^abc/ |
|
|
abcc |
|
|
|
|
|
/^abc$/ |
|
|
|
|
|
/abc$/ |
|
|
aabc |
|
|
\= Expect no match |
|
|
aabcd |
|
|
|
|
|
/^/ |
|
|
abc |
|
|
|
|
|
/$/ |
|
|
abc |
|
|
|
|
|
/a.c/ |
|
|
abc |
|
|
axc |
|
|
|
|
|
/a.*c/ |
|
|
axyzc |
|
|
|
|
|
/a[bc]d/ |
|
|
abd |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
abd |
|
|
abd |
|
|
|
|
|
/a[^-b]c/ |
|
|
adc |
|
|
|
|
|
/a[^]b]c/ |
|
|
adc |
|
|
a-c |
|
|
\= Expect no match |
|
|
a]c |
|
|
|
|
|
/\ba\b/ |
|
|
a- |
|
|
-a |
|
|
-a- |
|
|
|
|
|
/\by\b/ |
|
|
\= Expect no match |
|
|
xy |
|
|
yz |
|
|
xyz |
|
|
|
|
|
/\Ba\B/ |
|
|
\= Expect no match |
|
|
a- |
|
|
-a |
|
|
-a- |
|
|
|
|
|
/\By\b/ |
|
|
xy |
|
|
|
|
|
/\by\B/ |
|
|
yz |
|
|
|
|
|
/\By\B/ |
|
|
xyz |
|
|
|
|
|
/\w/ |
|
|
a |
|
|
|
|
|
/\W/ |
|
|
- |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/a\sb/ |
|
|
a b |
|
|
|
|
|
/a\Sb/ |
|
|
a-b |
|
|
\= Expect no match |
|
|
a b |
|
|
|
|
|
/\d/ |
|
|
1 |
|
|
|
|
|
/\D/ |
|
|
- |
|
|
\= Expect no match |
|
|
1 |
|
|
|
|
|
/[\w]/ |
|
|
a |
|
|
|
|
|
/[\W]/ |
|
|
- |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/a[\s]b/ |
|
|
a b |
|
|
|
|
|
/a[\S]b/ |
|
|
a-b |
|
|
\= Expect no match |
|
|
a b |
|
|
|
|
|
/[\d]/ |
|
|
1 |
|
|
|
|
|
/[\D]/ |
|
|
- |
|
|
\= Expect no match |
|
|
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/ |
|
|
\= Expect no match |
|
|
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/ |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
effg |
|
|
bcdd |
|
|
|
|
|
/((((((((((a))))))))))/ |
|
|
a |
|
|
|
|
|
/((((((((((a))))))))))\10/ |
|
|
aa |
|
|
|
|
|
/(((((((((a)))))))))/ |
|
|
a |
|
|
|
|
|
/multiple words of text/ |
|
|
\= Expect no match |
|
|
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 |
|
|
ab |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
ABQ |
|
|
ABBBBC |
|
|
|
|
|
/ab??bc/i |
|
|
ABBC |
|
|
ABC |
|
|
|
|
|
/ab{0,1}?bc/i |
|
|
ABC |
|
|
|
|
|
/ab??bc/i |
|
|
|
|
|
/ab??c/i |
|
|
ABC |
|
|
|
|
|
/x?(x|b)/ |
|
|
xb |
|
|
|
|
|
/x??(x|b)/ |
|
|
x |
|
|
|
|
|
/x?(x|b)/i |
|
|
Xb |
|
|
|
|
|
/x??(x|b)/i |
|
|
X |
|
|
|
|
|
/x{,2}(x|b)/ |
|
|
xb |
|
|
|
|
|
/x{,2}?(x|b)/ |
|
|
x |
|
|
|
|
|
/x{,2}(x|b)/i |
|
|
Xb |
|
|
|
|
|
/x{,2}?(x|b)/i |
|
|
X |
|
|
|
|
|
/[^b]?([^b]|b)/ |
|
|
xb |
|
|
|
|
|
/[^b]??([^b]|b)/ |
|
|
x |
|
|
|
|
|
/[^b]?([^b]|b)/i |
|
|
Xb |
|
|
|
|
|
/[^b]??([^b]|b)/i |
|
|
X |
|
|
|
|
|
/[^b]{,2}([^b]|b)/ |
|
|
xb |
|
|
|
|
|
/[^b]{,2}?([^b]|b)/ |
|
|
x |
|
|
|
|
|
/[^b]{,2}([^b]|b)/i |
|
|
Xb |
|
|
|
|
|
/[^b]{,2}?([^b]|b)/i |
|
|
X |
|
|
|
|
|
/ab{0,1}?c/i |
|
|
ABC |
|
|
|
|
|
/^abc$/i |
|
|
ABC |
|
|
\= Expect no match |
|
|
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 |
|
|
AABC |
|
|
\= Expect no match |
|
|
AXYZD |
|
|
|
|
|
/a[bc]d/i |
|
|
ABD |
|
|
|
|
|
/a[b-d]e/i |
|
|
ACE |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
ABD |
|
|
A-C |
|
|
|
|
|
/a[^]b]c/i |
|
|
ADC |
|
|
|
|
|
/ab|cd/i |
|
|
ABC |
|
|
ABCD |
|
|
|
|
|
/()ef/i |
|
|
DEF |
|
|
|
|
|
/$b/i |
|
|
\= Expect no match |
|
|
A]C |
|
|
B |
|
|
|
|
|
/a\(b/i |
|
|
A(B |
|
|
|
|
|
/a\(*b/i |
|
|
AB |
|
|
A((B |
|
|
|
|
|
/a\\b/i |
|
|
A\\b |
|
|
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])*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 |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
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 |
|
|
|
|
|
/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 |
|
|
\= Expect no match |
|
|
AB |
|
|
aaaaaaaaa |
|
|
aaaaaaaaaaa |
|
|
|
|
|
/^(a(?(1)\1)){4}$/ |
|
|
aaaaaaaaaa |
|
|
\= Expect no match |
|
|
aaaaaaaaa |
|
|
aaaaaaaaaaa |
|
|
|
|
|
/(?<=a)b/ |
|
|
ab |
|
|
\= Expect no match |
|
|
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/ |
|
|
\= Expect no match |
|
|
cb |
|
|
aB |
|
|
|
|
|
/((?i)a)b/ |
|
|
|
|
|
/(?i:a)b/ |
|
|
ab |
|
|
|
|
|
/((?i:a))b/ |
|
|
ab |
|
|
|
|
|
/(?i:a)b/ |
|
|
Ab |
|
|
|
|
|
/((?i:a))b/ |
|
|
Ab |
|
|
|
|
|
/(?i:a)b/ |
|
|
\= Expect no match |
|
|
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 |
|
|
aB |
|
|
\= Expect no match |
|
|
Ab |
|
|
AB |
|
|
|
|
|
/(?-i:a)b/i |
|
|
ab |
|
|
|
|
|
/((?-i:a))b/i |
|
|
ab |
|
|
|
|
|
/(?-i:a)b/i |
|
|
aB |
|
|
|
|
|
/((?-i:a))b/i |
|
|
aB |
|
|
|
|
|
/(?-i:a)b/i |
|
|
\= Expect no match |
|
|
AB |
|
|
Ab |
|
|
|
|
|
/((?-i:a))b/i |
|
|
|
|
|
/(?-i:a)b/i |
|
|
aB |
|
|
|
|
|
/((?-i:a))b/i |
|
|
aB |
|
|
|
|
|
/(?-i:a)b/i |
|
|
\= Expect no match |
|
|
Ab |
|
|
AB |
|
|
|
|
|
/((?-i:a))b/i |
|
|
|
|
|
/((?-i:a.))b/i |
|
|
\= Expect no match |
|
|
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/ |
|
|
\= Expect no match |
|
|
B\nB |
|
|
dbcb |
|
|
|
|
|
/(?<![cd])[ab]/ |
|
|
dbaacb |
|
|
|
|
|
/(?<!(c|d))b/ |
|
|
|
|
|
/(?<!(c|d))[ab]/ |
|
|
dbaacb |
|
|
|
|
|
/(?<!cd)[ab]/ |
|
|
cdaccb |
|
|
|
|
|
/^(?:a?b?)*$/ |
|
|
\ |
|
|
a |
|
|
ab |
|
|
aaa |
|
|
\= Expect no match |
|
|
dbcb |
|
|
a-- |
|
|
aa-- |
|
|
|
|
|
/((?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/ |
|
|
\= Expect no match |
|
|
a\nb\nc\n |
|
|
a\nb\nc\n |
|
|
|
|
|
/((?m)^b)/ |
|
|
a\nb\nc\n |
|
|
|
|
|
/(x)?(?(1)a|b)/ |
|
|
\= Expect no match |
|
|
a |
|
|
a |
|
|
|
|
|
/(x)?(?(1)b|a)/ |
|
|
a |
|
|
|
|
|
/()?(?(1)b|a)/ |
|
|
a |
|
|
|
|
|
/()(?(1)b|a)/ |
|
|
|
|
|
/()?(?(1)a|b)/ |
|
|
a |
|
|
|
|
|
/^(\()?blah(?(1)(\)))$/ |
|
|
(blah) |
|
|
blah |
|
|
\= Expect no match |
|
|
a |
|
|
blah) |
|
|
(blah |
|
|
|
|
|
/^(\(+)?blah(?(1)(\)))$/ |
|
|
(blah) |
|
|
blah |
|
|
\= Expect no match |
|
|
blah) |
|
|
(blah |
|
|
|
|
|
/(?(?!a)a|b)/ |
|
|
|
|
|
/(?(?!a)b|a)/ |
|
|
a |
|
|
|
|
|
/(?(?=a)b|a)/ |
|
|
\= Expect no match |
|
|
a |
|
|
a |
|
|
|
|
|
/(?(?=a)a|b)/ |
|
|
a |
|
|
|
|
|
/(?=(a+?))(\1ab)/ |
|
|
aaab |
|
|
|
|
|
/^(?=(a+?))\1ab/ |
|
|
|
|
|
/(\w+:)+/ |
|
|
one: |
|
|
|
|
|
/$(?<=^(a))/ |
|
|
a |
|
|
|
|
|
/(?=(a+?))(\1ab)/ |
|
|
aaab |
|
|
|
|
|
/^(?=(a+?))\1ab/ |
|
|
\= Expect no match |
|
|
aaab |
|
|
aaab |
|
|
|
|
|
/([\w:]+::)?(\w+)$/ |
|
|
abcd |
|
|
xy:z:::abcd |
|
|
|
|
|
/^[^bcd]*(c+)/ |
|
|
aexycd |
|
|
|
|
|
/(a*)b+/ |
|
|
caab |
|
|
|
|
|
/([\w:]+::)?(\w+)$/ |
|
|
abcd |
|
|
xy:z:::abcd |
|
|
\= Expect no match |
|
|
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/ |
|
|
\= Expect no match |
|
|
aaab |
|
|
a\nb\n |
|
|
|
|
|
/b\Z/ |
|
|
a\nb\n |
|
|
|
|
|
/b\z/ |
|
|
|
|
|
/b\Z/ |
|
|
a\nb |
|
|
|
|
|
/b\z/ |
|
|
a\nb |
|
|
|
|
|
/^(?>(?(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 |
|
|
\= Expect no match |
|
|
\ |
|
|
.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 |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
word cat dog elephant mussel cow horse canary baboon snake shark |
|
|
|
|
|
/word (?>[a-zA-Z0-9]+ ){0,30}otherword/ |
|
|
\= Expect no match |
|
|
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 |
|
|
\= Expect no match |
|
|
123abcfoo |
|
|
|
|
|
/(?<=(?!...999)\d{3})foo/ |
|
|
999foo |
|
|
123999foo |
|
|
\= Expect no match |
|
|
123abcfoo |
|
|
|
|
|
/(?<=\d{3}(?!999)...)foo/ |
|
|
123abcfoo |
|
|
123456foo |
|
|
\= Expect no match |
|
|
123999foo |
|
|
|
|
|
/(?<=\d{3}...)(?<!999)foo/ |
|
|
123abcfoo |
|
|
123456foo |
|
|
\= Expect no match |
|
|
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= |
|
|
(["'])? |
|
|
(?(1) (.*?)\1 | (\S+)) |
|
|
|
|
|
/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 |
|
|
|
|
|
/((?>)+|A)*/ |
|
|
ZABCDEFG |
|
|
|
|
|
/a*/g |
|
|
abbab |
|
|
|
|
|
/[[:space:]]+/ |
|
|
> \x09\x0a\x0c\x0d\x0b< |
|
|
|
|
|
/[[:blank:]]+/ |
|
|
> \x09\x0a\x0c\x0d\x0b< |
|
|
|
|
|
/[\s]+/ |
|
|
> \x09\x0a\x0c\x0d\x0b< |
|
|
|
|
|
/\s+/ |
|
|
> \x09\x0a\x0c\x0d\x0b< |
|
|
|
|
|
/ab/x |
|
|
ab |
|
|
|
|
|
/(?!\A)x/m |
|
|
a\nxb\n |
|
|
|
|
|
/(?!^)x/m |
|
|
\= Expect no match |
|
|
a\nxb\n |
|
|
|
|
|
/abc\Qabc\Eabc/ |
|
|
abcabcabc |
|
|
|
|
|
/abc\Q(*+|\Eabc/ |
|
|
abc(*+|abc |
|
|
|
|
|
/ abc\Q abc\Eabc/x |
|
|
abc abcabc |
|
|
\= Expect no match |
|
|
abcabcabc |
|
|
|
|
|
/abc#comment |
|
|
\Q#not comment |
|
|
literal\E/x |
|
|
abc#not comment\n literal |
|
|
|
|
|
/abc#comment |
|
|
\Q#not comment |
|
|
literal/x |
|
|
abc#not comment\n literal |
|
|
|
|
|
/abc#comment |
|
|
\Q#not comment |
|
|
literal\E #more comment |
|
|
/x |
|
|
abc#not comment\n literal |
|
|
|
|
|
/abc#comment |
|
|
\Q#not comment |
|
|
literal\E #more comment/x |
|
|
abc#not comment\n literal |
|
|
|
|
|
/\Qabc\$xyz\E/ |
|
|
abc\\\$xyz |
|
|
|
|
|
/\Qabc\E\$\Qxyz\E/ |
|
|
abc\$xyz |
|
|
|
|
|
/\Gabc/ |
|
|
abc |
|
|
\= Expect no match |
|
|
xyzabc |
|
|
|
|
|
/\Gabc./g |
|
|
abc1abc2xyzabc3 |
|
|
|
|
|
/abc./g |
|
|
abc1abc2xyzabc3 |
|
|
|
|
|
/a(?x: b c )d/ |
|
|
XabcdY |
|
|
\= Expect no match |
|
|
Xa b c d Y |
|
|
|
|
|
/((?x)x y z | a b c)/ |
|
|
XabcY |
|
|
AxyzB |
|
|
|
|
|
/(?i)AB(?-i)C/ |
|
|
XabCY |
|
|
\= Expect no match |
|
|
XabcY |
|
|
|
|
|
/((?i)AB(?-i)C|D)E/ |
|
|
abCE |
|
|
DE |
|
|
\= Expect no match |
|
|
abcE |
|
|
abCe |
|
|
dE |
|
|
De |
|
|
|
|
|
/(.*)\d+\1/ |
|
|
abc123abc |
|
|
abc123bc |
|
|
|
|
|
/(.*)\d+\1/s |
|
|
abc123abc |
|
|
abc123bc |
|
|
|
|
|
/((.*))\d+\1/ |
|
|
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. |
|
|
|
|
|
/^(?!:) # colon disallowed at start |
|
|
(?: # start of item |
|
|
(?: [0-9a-f]{1,4} | # 1-4 hex digits or |
|
|
(?(1)0 | () ) ) # if null previously matched, fail; else null |
|
|
: # followed by colon |
|
|
){1,7} # end item; 1-7 of them required |
|
|
[0-9a-f]{1,4} $ # final hex number at end of string |
|
|
(?(1)|.) # check that there was an empty component |
|
|
/ix |
|
|
a123::a123 |
|
|
a123:b342::abcd |
|
|
a123:b342::324e:abcd |
|
|
a123:ddde:b342::324e:abcd |
|
|
a123:ddde:b342::324e:dcba:abcd |
|
|
a123:ddde:9999:b342::324e:dcba:abcd |
|
|
\= Expect no match |
|
|
1:2:3:4:5:6:7:8 |
|
|
a123:bce:ddde:9999:b342::324e:dcba:abcd |
|
|
a123::9999:b342::324e:dcba:abcd |
|
|
abcde:2:3:4:5:6:7:8 |
|
|
::1 |
|
|
abcd:fee0:123:: |
|
|
:1 |
|
|
1: |
|
|
|
|
|
/[z\Qa-d]\E]/ |
|
|
z |
|
|
a |
|
|
- |
|
|
d |
|
|
] |
|
|
\= Expect no match |
|
|
b |
|
|
|
|
|
/(a+)*b/ |
|
|
\= Expect no match |
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
|
|
|
|
/(?i)reg(?:ul(?:[a�]|ae)r|ex)/ |
|
|
REGular |
|
|
regulaer |
|
|
Regex |
|
|
regul�r |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/����[�-��-�]+/ |
|
|
����� |
|
|
����� |
|
|
����� |
|
|
����� |
|
|
|
|
|
#endif |
|
|
|
|
|
/(?<=Z)X./ |
|
|
\x84XAZXB |
|
|
|
|
|
/ab cd (?x) de fg/ |
|
|
ab cd defg |
|
|
|
|
|
/ab cd(?x) de fg/ |
|
|
ab cddefg |
|
|
\= Expect no match |
|
|
abcddefg |
|
|
|
|
|
/(?<![^f]oo)(bar)/ |
|
|
foobarX |
|
|
\= Expect no match |
|
|
boobarX |
|
|
|
|
|
/(?<![^f])X/ |
|
|
offX |
|
|
\= Expect no match |
|
|
onyX |
|
|
|
|
|
/(?<=[^f])X/ |
|
|
onyX |
|
|
\= Expect no match |
|
|
offX |
|
|
|
|
|
/^/gm |
|
|
a\nb\nc\n |
|
|
\ |
|
|
|
|
|
/(?<=C\n)^/gm |
|
|
A\nC\nC\n |
|
|
|
|
|
/(?:(?(1)a|b)(X))+/ |
|
|
bXaX |
|
|
|
|
|
/(?:(?(1)\1a|b)(X|Y))+/ |
|
|
bXXaYYaY |
|
|
bXYaXXaX |
|
|
|
|
|
/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/ |
|
|
bXXaYYaY |
|
|
|
|
|
/[[,abc,]+]/ |
|
|
abc] |
|
|
a,b] |
|
|
[a,b,c] |
|
|
|
|
|
/(?-x: )/x |
|
|
A\x20B |
|
|
|
|
|
/(?x)(?-x: \s*#\s*)/ |
|
|
A # B |
|
|
\= Expect no match |
|
|
# |
|
|
A s#s B |
|
|
|
|
|
/(?x-is)(?:(?-ixs) \s*#\s*) include/ |
|
|
A #include |
|
|
\= Expect no match |
|
|
A#include |
|
|
A #Include |
|
|
|
|
|
/a*b*\w/ |
|
|
aaabbbb |
|
|
aaaa |
|
|
a |
|
|
|
|
|
/a*b?\w/ |
|
|
aaabbbb |
|
|
aaaa |
|
|
a |
|
|
|
|
|
/a*b{0,4}\w/ |
|
|
aaabbbb |
|
|
aaaa |
|
|
a |
|
|
|
|
|
/a*b{0,}\w/ |
|
|
aaabbbb |
|
|
aaaa |
|
|
a |
|
|
|
|
|
/a*\d*\w/ |
|
|
0a |
|
|
a |
|
|
|
|
|
/a*b *\w/x |
|
|
a |
|
|
|
|
|
/a*b#comment |
|
|
*\w/x |
|
|
a |
|
|
|
|
|
/a* b *\w/x |
|
|
a |
|
|
|
|
|
/^\w+=.*(\\\n.*)*/ |
|
|
abc=xyz\\\npqr |
|
|
|
|
|
/(?=(\w+))\1:/ |
|
|
abcd: |
|
|
|
|
|
/^(?=(\w+))\1:/ |
|
|
abcd: |
|
|
|
|
|
/^\Eabc/ |
|
|
abc |
|
|
|
|
|
/^[\Eabc]/ |
|
|
a |
|
|
\= Expect no match |
|
|
E |
|
|
|
|
|
/^[a-\Ec]/ |
|
|
b |
|
|
\= Expect no match |
|
|
- |
|
|
E |
|
|
|
|
|
/^[a\E\E-\Ec]/ |
|
|
b |
|
|
\= Expect no match |
|
|
- |
|
|
E |
|
|
|
|
|
/^[\E\Qa\E-\Qz\E]+/ |
|
|
b |
|
|
\= Expect no match |
|
|
- |
|
|
|
|
|
/^[a\Q]bc\E]/ |
|
|
a |
|
|
] |
|
|
c |
|
|
|
|
|
/^[a-\Q\E]/ |
|
|
a |
|
|
- |
|
|
|
|
|
/^(a()*)*/ |
|
|
aaaa |
|
|
|
|
|
/^(?:a(?:(?:))*)*/ |
|
|
aaaa |
|
|
|
|
|
/^(a()+)+/ |
|
|
aaaa |
|
|
|
|
|
/^(?:a(?:(?:))+)+/ |
|
|
aaaa |
|
|
|
|
|
/(a){0,3}(?(1)b|(c|))*D/ |
|
|
abbD |
|
|
ccccD |
|
|
D |
|
|
|
|
|
/(a|)*\d/ |
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 |
|
|
\= Expect no match |
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
|
|
|
|
/(?>a|)*\d/ |
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 |
|
|
\= Expect no match |
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
|
|
|
|
/(?:a|)*\d/ |
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 |
|
|
\= Expect no match |
|
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
|
|
|
|
/\Z/g |
|
|
abc\n |
|
|
|
|
|
/^(?s)(?>.*)(?<!\n)/ |
|
|
abc |
|
|
\= Expect no match |
|
|
abc\n |
|
|
|
|
|
/^(?![^\n]*\n\z)/ |
|
|
abc |
|
|
\= Expect no match |
|
|
abc\n |
|
|
|
|
|
/\z(?<!\n)/ |
|
|
abc |
|
|
\= Expect no match |
|
|
abc\n |
|
|
|
|
|
/(.*(.)?)*/ |
|
|
abcd |
|
|
|
|
|
/( (A | (?(1)0|) )* )/x |
|
|
abcd |
|
|
|
|
|
/( ( (?(1)0|) )* )/x |
|
|
abcd |
|
|
|
|
|
/( (?(1)0|)* )/x |
|
|
abcd |
|
|
|
|
|
/[[:abcd:xyz]]/ |
|
|
a] |
|
|
:] |
|
|
|
|
|
/[abc[:x\]pqr]/ |
|
|
a |
|
|
[ |
|
|
: |
|
|
] |
|
|
p |
|
|
|
|
|
/.*[op][xyz]/ |
|
|
\= Expect no match |
|
|
fooabcfoo |
|
|
|
|
|
/(?(?=.*b)b|^)/ |
|
|
adc |
|
|
abc |
|
|
|
|
|
/(?(?=^.*b)b|^)/ |
|
|
adc |
|
|
\= Expect no match |
|
|
abc |
|
|
|
|
|
/(?(?=.*b)b|^)*/ |
|
|
adc |
|
|
abc |
|
|
|
|
|
/(?(?=.*b)b|^)+/ |
|
|
adc |
|
|
abc |
|
|
|
|
|
/(?(?=b).*b|^d)/ |
|
|
abc |
|
|
|
|
|
/(?(?=.*b).*b|^d)/ |
|
|
abc |
|
|
|
|
|
/^%((?(?=[a])[^%])|b)*%$/ |
|
|
%ab% |
|
|
|
|
|
/(?i)a(?-i)b|c/ |
|
|
XabX |
|
|
XAbX |
|
|
CcC |
|
|
\= Expect no match |
|
|
XABX |
|
|
|
|
|
/[\x00-\xff\s]+/ |
|
|
\x0a\x0b\x0c\x0d |
|
|
|
|
|
/(abc)\1/i |
|
|
\= Expect no match |
|
|
abc |
|
|
|
|
|
/(abc)\1/ |
|
|
\= Expect no match |
|
|
abc |
|
|
|
|
|
/[^a]*/i |
|
|
12abc |
|
|
12ABC |
|
|
|
|
|
/[^a]*+/i |
|
|
12abc |
|
|
12ABC |
|
|
|
|
|
/[^a]*?X/i |
|
|
\= Expect no match |
|
|
12abc |
|
|
12ABC |
|
|
|
|
|
/[^a]+?X/i |
|
|
\= Expect no match |
|
|
12abc |
|
|
12ABC |
|
|
|
|
|
/[^a]?X/i |
|
|
12aXbcX |
|
|
12AXBCX |
|
|
BCX |
|
|
|
|
|
/[^a]??X/i |
|
|
12aXbcX |
|
|
12AXBCX |
|
|
BCX |
|
|
|
|
|
/[^a]?+X/i |
|
|
12aXbcX |
|
|
12AXBCX |
|
|
BCX |
|
|
|
|
|
/[^a]{2,3}/i |
|
|
abcdef |
|
|
ABCDEF |
|
|
|
|
|
/[^a]{2,3}?/i |
|
|
abcdef |
|
|
ABCDEF |
|
|
|
|
|
/[^a]{2,3}+/i |
|
|
abcdef |
|
|
ABCDEF |
|
|
|
|
|
/((a|)+)+Z/ |
|
|
Z |
|
|
|
|
|
/(a)b|(a)c/ |
|
|
ac |
|
|
|
|
|
/(?>(a))b|(a)c/ |
|
|
ac |
|
|
|
|
|
/(?=(a))ab|(a)c/ |
|
|
ac |
|
|
|
|
|
/((?>(a))b|(a)c)/ |
|
|
ac |
|
|
|
|
|
/((?>(a))b|(a)c)++/ |
|
|
ac |
|
|
|
|
|
/(?:(?>(a))b|(a)c)++/ |
|
|
ac |
|
|
|
|
|
/(?=(?>(a))b|(a)c)(..)/ |
|
|
ac |
|
|
|
|
|
/(?>(?>(a))b|(a)c)/ |
|
|
ac |
|
|
|
|
|
/(?:(?>([ab])))+a=/aftertext |
|
|
=ba= |
|
|
|
|
|
/(?>([ab]))+a=/aftertext |
|
|
=ba= |
|
|
|
|
|
/((?>(a+)b)+(aabab))/ |
|
|
aaaabaaabaabab |
|
|
|
|
|
/(?>a+|ab)+?c/ |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
/(?>a+|ab)+c/ |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
/(?:a+|ab)+c/ |
|
|
aabc |
|
|
|
|
|
/(?(?=(a))a)/ |
|
|
a |
|
|
|
|
|
/(?(?=(a))a)(b)/ |
|
|
ab |
|
|
|
|
|
/^(?:a|ab)++c/ |
|
|
\= Expect no match |
|
|
aaaabc |
|
|
|
|
|
/^(?>a|ab)++c/ |
|
|
\= Expect no match |
|
|
aaaabc |
|
|
|
|
|
/^(?:a|ab)+c/ |
|
|
aaaabc |
|
|
|
|
|
/(?=abc){3}abc/aftertext |
|
|
abcabcabc |
|
|
\= Expect no match |
|
|
xyz |
|
|
|
|
|
/(?=abc)+abc/aftertext |
|
|
abcabcabc |
|
|
\= Expect no match |
|
|
xyz |
|
|
|
|
|
/(?=abc)++abc/aftertext |
|
|
abcabcabc |
|
|
\= Expect no match |
|
|
xyz |
|
|
|
|
|
/(?=abc){0}xyz/ |
|
|
xyz |
|
|
|
|
|
/(?=abc){1}xyz/ |
|
|
\= Expect no match |
|
|
xyz |
|
|
|
|
|
/(?=(a))?./ |
|
|
ab |
|
|
bc |
|
|
|
|
|
/(?=(a))??./ |
|
|
ab |
|
|
bc |
|
|
|
|
|
/^(?=(?1))?[az]([abc])d/ |
|
|
abd |
|
|
zcdxx |
|
|
|
|
|
/^(?!a){0}\w+/ |
|
|
aaaaa |
|
|
|
|
|
/(?<=(abc))?xyz/ |
|
|
abcxyz |
|
|
pqrxyz |
|
|
|
|
|
/^[\g<a>]+/ |
|
|
ggg<<<aaa>>> |
|
|
\= Expect no match |
|
|
\\ga |
|
|
|
|
|
/^[\ga]+/ |
|
|
gggagagaxyz |
|
|
|
|
|
/^[:a[:digit:]]+/ |
|
|
aaaa444:::Z |
|
|
|
|
|
/^[:a[:digit:]:b]+/ |
|
|
aaaa444:::bbbZ |
|
|
|
|
|
/[:a]xxx[b:]/ |
|
|
:xxx: |
|
|
|
|
|
/(?<=a{2})b/i |
|
|
xaabc |
|
|
\= Expect no match |
|
|
xabc |
|
|
|
|
|
/(?<!a{2})b/i |
|
|
xabc |
|
|
\= Expect no match |
|
|
xaabc |
|
|
|
|
|
/(?<=a\h)c/ |
|
|
xa c |
|
|
|
|
|
/(?<=[^a]{2})b/ |
|
|
axxbc |
|
|
aAAbc |
|
|
\= Expect no match |
|
|
xaabc |
|
|
|
|
|
/(?<=[^a]{2})b/i |
|
|
axxbc |
|
|
\= Expect no match |
|
|
aAAbc |
|
|
xaabc |
|
|
|
|
|
/(?<=a\H)c/ |
|
|
abc |
|
|
|
|
|
/(?<=a\V)c/ |
|
|
abc |
|
|
|
|
|
/(?<=a\v)c/ |
|
|
a\nc |
|
|
|
|
|
/(?(?=c)c|d)++Y/ |
|
|
XcccddYX |
|
|
|
|
|
/(?(?=c)c|d)*+Y/ |
|
|
XcccddYX |
|
|
|
|
|
/^(a{2,3}){2,}+a/ |
|
|
aaaaaaa |
|
|
\= Expect no match |
|
|
aaaaaa |
|
|
aaaaaaaaa |
|
|
|
|
|
/^(a{2,3})++a/ |
|
|
\= Expect no match |
|
|
aaaaaa |
|
|
|
|
|
/^(a{2,3})*+a/ |
|
|
\= Expect no match |
|
|
aaaaaa |
|
|
|
|
|
/\H\h\V\v/ |
|
|
X X\x0a |
|
|
X\x09X\x0b |
|
|
\= Expect no match |
|
|
\xa0 X\x0a |
|
|
|
|
|
/\H*\h+\V?\v{3,4}/ |
|
|
\x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a |
|
|
\x09\x20\xa0\x0a\x0b\x0c\x0d\x0a |
|
|
\x09\x20\xa0\x0a\x0b\x0c |
|
|
\= Expect no match |
|
|
\x09\x20\xa0\x0a\x0b |
|
|
|
|
|
/\H{3,4}/ |
|
|
XY ABCDE |
|
|
XY PQR ST |
|
|
|
|
|
/.\h{3,4}./ |
|
|
XY AB PQRS |
|
|
|
|
|
/\h*X\h?\H+Y\H?Z/ |
|
|
>XNNNYZ |
|
|
> X NYQZ |
|
|
\= Expect no match |
|
|
>XYZ |
|
|
> X NY Z |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/ |
|
|
>XY\x0aZ\x0aA\x0bNN\x0c |
|
|
>\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c |
|
|
|
|
|
#endif |
|
|
|
|
|
/(foo)\Kbar/ |
|
|
foobar |
|
|
|
|
|
/(foo)(\Kbar|baz)/ |
|
|
foobar |
|
|
foobaz |
|
|
|
|
|
/(foo\Kbar)baz/ |
|
|
foobarbaz |
|
|
|
|
|
/abc\K|def\K/g,aftertext |
|
|
Xabcdefghi |
|
|
|
|
|
/ab\Kc|de\Kf/g,aftertext |
|
|
Xabcdefghi |
|
|
|
|
|
/(?=C)/g,aftertext |
|
|
ABCDECBA |
|
|
|
|
|
/^abc\K/aftertext |
|
|
abcdef |
|
|
\= Expect no match |
|
|
defabcxyz |
|
|
|
|
|
/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-2}Z/ |
|
|
ababababbbabZXXXX |
|
|
|
|
|
/(?<A>tom|bon)-\g{A}/ |
|
|
tom-tom |
|
|
bon-bon |
|
|
|
|
|
/(^(a|b\g{-1}))/ |
|
|
\= Expect no match |
|
|
bacxxx |
|
|
|
|
|
/(?|(abc)|(xyz))\1/ |
|
|
abcabc |
|
|
xyzxyz |
|
|
\= Expect no match |
|
|
abcxyz |
|
|
xyzabc |
|
|
|
|
|
/(?|(abc)|(xyz))(?1)/ |
|
|
abcabc |
|
|
xyzabc |
|
|
\= Expect no match |
|
|
xyzxyz |
|
|
|
|
|
/^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/ |
|
|
XYabcdY |
|
|
|
|
|
/^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/ |
|
|
XYabcdY |
|
|
|
|
|
/^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/ |
|
|
XYabcdY |
|
|
|
|
|
/(?'abc'\w+):\k<abc>{2}/ |
|
|
a:aaxyz |
|
|
ab:ababxyz |
|
|
\= Expect no match |
|
|
a:axyz |
|
|
ab:abxyz |
|
|
|
|
|
/(?'abc'\w+):\g{abc}{2}/ |
|
|
a:aaxyz |
|
|
ab:ababxyz |
|
|
\= Expect no match |
|
|
a:axyz |
|
|
ab:abxyz |
|
|
|
|
|
/^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x |
|
|
abd |
|
|
ce |
|
|
|
|
|
/^(a.)\g-1Z/ |
|
|
aXaXZ |
|
|
|
|
|
/^(a.)\g{-1}Z/ |
|
|
aXaXZ |
|
|
|
|
|
/^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) /x |
|
|
abcd |
|
|
|
|
|
/(?<all>(?:(?:a(?&all))|(b))(c?))/ |
|
|
aabc |
|
|
|
|
|
/(a(b)|(c))(?1)/ |
|
|
abc |
|
|
cab |
|
|
|
|
|
/(?1)(a(b)|(c))/ |
|
|
abc |
|
|
cab |
|
|
|
|
|
/(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT)) |
|
|
(?(DEFINE) |
|
|
(?<NAME_PAT>[a-z]+) |
|
|
(?<ADDRESS_PAT>\d+) |
|
|
)/x |
|
|
metcalfe 33 |
|
|
|
|
|
/(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ |
|
|
1.2.3.4 |
|
|
131.111.10.206 |
|
|
10.0.0.0 |
|
|
\= Expect no match |
|
|
10.6 |
|
|
455.3.4.5 |
|
|
|
|
|
/\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ |
|
|
1.2.3.4 |
|
|
131.111.10.206 |
|
|
10.0.0.0 |
|
|
\= Expect no match |
|
|
10.6 |
|
|
455.3.4.5 |
|
|
|
|
|
/^(\w++|\s++)*$/ |
|
|
now is the time for all good men to come to the aid of the party |
|
|
\= Expect no match |
|
|
this is not a line with only words and spaces! |
|
|
|
|
|
/(\d++)(\w)/ |
|
|
12345a |
|
|
\= Expect no match |
|
|
12345+ |
|
|
|
|
|
/a++b/ |
|
|
aaab |
|
|
|
|
|
/(a++b)/ |
|
|
aaab |
|
|
|
|
|
/(a++)b/ |
|
|
aaab |
|
|
|
|
|
/([^()]++|\([^()]*\))+/ |
|
|
((abc(ade)ufh()()x |
|
|
|
|
|
/\(([^()]++|\([^()]+\))+\)/ |
|
|
(abc) |
|
|
(abc(def)xyz) |
|
|
\= Expect no match |
|
|
((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
|
|
|
|
/^([^()]|\((?1)*\))*$/ |
|
|
abc |
|
|
a(b)c |
|
|
a(b(c))d |
|
|
\= Expect no match) |
|
|
a(b(c)d |
|
|
|
|
|
/^>abc>([^()]|\((?1)*\))*<xyz<$/ |
|
|
>abc>123<xyz< |
|
|
>abc>1(2)3<xyz< |
|
|
>abc>(1(2)3)<xyz< |
|
|
|
|
|
/^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/i |
|
|
1221 |
|
|
Satanoscillatemymetallicsonatas |
|
|
AmanaplanacanalPanama |
|
|
AblewasIereIsawElba |
|
|
\= Expect no match |
|
|
Thequickbrownfox |
|
|
|
|
|
/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/ |
|
|
12 |
|
|
(((2+2)*-3)-7) |
|
|
-12 |
|
|
\= Expect no match |
|
|
((2+2)*-3)-7) |
|
|
|
|
|
/^(x(y|(?1){2})z)/ |
|
|
xyz |
|
|
xxyzxyzz |
|
|
\= Expect no match |
|
|
xxyzz |
|
|
xxyzxyzxyzz |
|
|
|
|
|
/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/x |
|
|
<> |
|
|
<abcd> |
|
|
<abc <123> hij> |
|
|
<abc <def> hij> |
|
|
<abc<>def> |
|
|
<abc<> |
|
|
\= Expect no match |
|
|
<abc |
|
|
|
|
|
/^a+(*FAIL)/ |
|
|
\= Expect no match |
|
|
aaaaaa |
|
|
|
|
|
/a+b?c+(*FAIL)/ |
|
|
\= Expect no match |
|
|
aaabccc |
|
|
|
|
|
/a+b?(*PRUNE)c+(*FAIL)/ |
|
|
\= Expect no match |
|
|
aaabccc |
|
|
|
|
|
/a+b?(*COMMIT)c+(*FAIL)/ |
|
|
\= Expect no match |
|
|
aaabccc |
|
|
|
|
|
/a+b?(*SKIP)c+(*FAIL)/ |
|
|
\= Expect no match |
|
|
aaabcccaaabccc |
|
|
|
|
|
/^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ |
|
|
aaaxxxxxx |
|
|
aaa++++++ |
|
|
bbbxxxxx |
|
|
bbb+++++ |
|
|
cccxxxx |
|
|
ccc++++ |
|
|
dddddddd |
|
|
|
|
|
/^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ |
|
|
aaaxxxxxx |
|
|
aaa++++++ |
|
|
bbbxxxxx |
|
|
bbb+++++ |
|
|
cccxxxx |
|
|
ccc++++ |
|
|
dddddddd |
|
|
|
|
|
/a+b?(*THEN)c+(*FAIL)/ |
|
|
\= Expect no match |
|
|
aaabccc |
|
|
|
|
|
/(A (A|B(*ACCEPT)|C) D)(E)/x |
|
|
AB |
|
|
ABX |
|
|
AADE |
|
|
ACDE |
|
|
\= Expect no match |
|
|
AD |
|
|
|
|
|
/^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i |
|
|
1221 |
|
|
Satan, oscillate my metallic sonatas! |
|
|
A man, a plan, a canal: Panama! |
|
|
Able was I ere I saw Elba. |
|
|
\= Expect no match |
|
|
The quick brown fox |
|
|
|
|
|
/^((.)(?1)\2|.)$/ |
|
|
a |
|
|
aba |
|
|
aabaa |
|
|
abcdcba |
|
|
pqaabaaqp |
|
|
ablewasiereisawelba |
|
|
\= Expect no match |
|
|
rhubarb |
|
|
the quick brown fox |
|
|
|
|
|
/(a)(?<=b(?1))/ |
|
|
baz |
|
|
\= Expect no match |
|
|
caz |
|
|
|
|
|
/(?<=b(?1))(a)/ |
|
|
zbaaz |
|
|
\= Expect no match |
|
|
aaa |
|
|
|
|
|
/(?<X>a)(?<=b(?&X))/ |
|
|
baz |
|
|
|
|
|
/^(?|(abc)|(def))\1/ |
|
|
abcabc |
|
|
defdef |
|
|
\= Expect no match |
|
|
abcdef |
|
|
defabc |
|
|
|
|
|
/^(?|(abc)|(def))(?1)/ |
|
|
abcabc |
|
|
defabc |
|
|
\= Expect no match |
|
|
defdef |
|
|
abcdef |
|
|
|
|
|
/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?('quote')[a-z]+|[0-9]+)/x,dupnames |
|
|
a\"aaaaa |
|
|
b\"aaaaa |
|
|
\= Expect no match |
|
|
b\"11111 |
|
|
|
|
|
/(?:(?1)|B)(A(*F)|C)/ |
|
|
ABCD |
|
|
CCD |
|
|
\= Expect no match |
|
|
CAD |
|
|
|
|
|
/^(?:(?1)|B)(A(*F)|C)/ |
|
|
CCD |
|
|
BCD |
|
|
\= Expect no match |
|
|
ABCD |
|
|
CAD |
|
|
BAD |
|
|
|
|
|
/(?:(?1)|B)(A(*ACCEPT)XX|C)D/ |
|
|
AAD |
|
|
ACD |
|
|
BAD |
|
|
BCD |
|
|
BAX |
|
|
\= Expect no match |
|
|
ACX |
|
|
ABC |
|
|
|
|
|
/(?(DEFINE)(A))B(?1)C/ |
|
|
BAC |
|
|
|
|
|
/(?(DEFINE)((A)\2))B(?1)C/ |
|
|
BAAC |
|
|
|
|
|
/(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x |
|
|
(ab(cd)ef) |
|
|
|
|
|
/^(?=a(*SKIP)b|ac)/ |
|
|
\= Expect no match |
|
|
ac |
|
|
|
|
|
/^(?=a(*PRUNE)b)/ |
|
|
ab |
|
|
\= Expect no match |
|
|
ac |
|
|
|
|
|
/^(?=a(*ACCEPT)b)/ |
|
|
ac |
|
|
|
|
|
/(?>a\Kb)/ |
|
|
ab |
|
|
|
|
|
/((?>a\Kb))/ |
|
|
ab |
|
|
|
|
|
/(a\Kb)/ |
|
|
ab |
|
|
|
|
|
/^a\Kcz|ac/ |
|
|
ac |
|
|
|
|
|
/(?>a\Kbz|ab)/ |
|
|
ab |
|
|
|
|
|
/^(?&t)(?(DEFINE)(?<t>a\Kb))$/ |
|
|
ab |
|
|
|
|
|
/^([^()]|\((?1)*\))*$/ |
|
|
a(b)c |
|
|
a(b(c)d)e |
|
|
|
|
|
/(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/ |
|
|
0 |
|
|
00 |
|
|
0000 |
|
|
|
|
|
/(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/ |
|
|
0 |
|
|
00 |
|
|
0000 |
|
|
|
|
|
# This one does fail, as expected, in Perl. It needs the complex item at the |
|
|
# end of the pattern. A single letter instead of (B|D) makes it not fail, which |
|
|
# I think is a Perl bug. |
|
|
|
|
|
/A(*COMMIT)(B|D)/ |
|
|
\= Expect no match |
|
|
ACABX |
|
|
|
|
|
# Check the use of names for failure |
|
|
|
|
|
/^(A(*PRUNE:A)B|C(*PRUNE:B)D)/mark |
|
|
\= Expect no match |
|
|
AC |
|
|
CB |
|
|
|
|
|
/(*MARK:A)(*SKIP:B)(C|X)/mark |
|
|
C |
|
|
\= Expect no match |
|
|
D |
|
|
|
|
|
/^(A(*THEN:A)B|C(*THEN:B)D)/mark |
|
|
\= Expect no match |
|
|
CB |
|
|
|
|
|
/^(?:A(*THEN:A)B|C(*THEN:B)D)/mark |
|
|
\= Expect no match |
|
|
CB |
|
|
|
|
|
/^(?>A(*THEN:A)B|C(*THEN:B)D)/mark |
|
|
\= Expect no match |
|
|
CB |
|
|
|
|
|
# This should succeed, as the skip causes bump to offset 1 (the mark). Note |
|
|
# that we have to have something complicated such as (B|Z) at the end because, |
|
|
# for Perl, a simple character somehow causes an unwanted optimization to mess |
|
|
# with the handling of backtracking verbs. |
|
|
|
|
|
/A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/x,mark |
|
|
AAAC |
|
|
|
|
|
# Test skipping over a non-matching mark. |
|
|
|
|
|
/A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/x,mark |
|
|
AAAC |
|
|
|
|
|
# Check shorthand for MARK. |
|
|
|
|
|
/A(*:A)A+(*SKIP:A)(B|Z) | AC/x,mark |
|
|
AAAC |
|
|
|
|
|
/(*:A)A+(*SKIP:A)(B|Z)/mark |
|
|
\= Expect no match |
|
|
AAAC |
|
|
|
|
|
# This should succeed, as a non-existent skip name disables the skip. |
|
|
|
|
|
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/x,mark |
|
|
AAAC |
|
|
|
|
|
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/x,mark |
|
|
AAAC |
|
|
|
|
|
# COMMIT at the start of a pattern should act like an anchor. Again, however, |
|
|
# we need the complication for Perl. |
|
|
|
|
|
/(*COMMIT)(A|P)(B|P)(C|P)/ |
|
|
ABCDEFG |
|
|
\= Expect no match |
|
|
DEFGABC |
|
|
|
|
|
# COMMIT inside an atomic group can't stop backtracking over the group. |
|
|
|
|
|
/(\w+)(?>b(*COMMIT))\w{2}/ |
|
|
abbb |
|
|
|
|
|
/(\w+)b(*COMMIT)\w{2}/ |
|
|
\= Expect no match |
|
|
abbb |
|
|
|
|
|
|
|
|
|
|
|
/(?&t)(? |
|
|
bac |
|
|
|
|
|
|
|
|
|
|
|
/(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/ |
|
|
\= Expect no match |
|
|
yes |
|
|
|
|
|
/(?>(*COMMIT)(yes|no)(*THEN)(*F))?/ |
|
|
\= Expect no match |
|
|
yes |
|
|
|
|
|
/b?(*SKIP)c/ |
|
|
bc |
|
|
abc |
|
|
|
|
|
/(*SKIP)bc/ |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/(*SKIP)b/ |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/(?P<abn>(?P=abn)xxx|)+/ |
|
|
xxx |
|
|
|
|
|
/(?i:([^b]))(?1)/ |
|
|
aa |
|
|
aA |
|
|
\= Expect no match |
|
|
ab |
|
|
aB |
|
|
Ba |
|
|
ba |
|
|
|
|
|
/^(?&t)*+(?(DEFINE)(?<t>a))\w$/ |
|
|
aaaaaaX |
|
|
\= Expect no match |
|
|
aaaaaa |
|
|
|
|
|
/^(?&t)*(?(DEFINE)(?<t>a))\w$/ |
|
|
aaaaaaX |
|
|
aaaaaa |
|
|
|
|
|
/^(a)*+(\w)/ |
|
|
aaaaX |
|
|
YZ |
|
|
\= Expect no match |
|
|
aaaa |
|
|
|
|
|
/^(?:a)*+(\w)/ |
|
|
aaaaX |
|
|
YZ |
|
|
\= Expect no match |
|
|
aaaa |
|
|
|
|
|
/^(a)++(\w)/ |
|
|
aaaaX |
|
|
\= Expect no match |
|
|
aaaa |
|
|
YZ |
|
|
|
|
|
/^(?:a)++(\w)/ |
|
|
aaaaX |
|
|
\= Expect no match |
|
|
aaaa |
|
|
YZ |
|
|
|
|
|
/^(a)?+(\w)/ |
|
|
aaaaX |
|
|
YZ |
|
|
|
|
|
/^(?:a)?+(\w)/ |
|
|
aaaaX |
|
|
YZ |
|
|
|
|
|
/^(a){2,}+(\w)/ |
|
|
aaaaX |
|
|
\= Expect no match |
|
|
aaa |
|
|
YZ |
|
|
|
|
|
/^(?:a){2,}+(\w)/ |
|
|
aaaaX |
|
|
\= Expect no match |
|
|
aaa |
|
|
YZ |
|
|
|
|
|
/(a|)*(?1)b/ |
|
|
b |
|
|
ab |
|
|
aab |
|
|
|
|
|
/(a)++(?1)b/ |
|
|
\= Expect no match |
|
|
ab |
|
|
aab |
|
|
|
|
|
/(a)*+(?1)b/ |
|
|
\= Expect no match |
|
|
ab |
|
|
aab |
|
|
|
|
|
/(?1)(?:(b)){0}/ |
|
|
b |
|
|
|
|
|
/(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x |
|
|
foo(bar(baz)+baz(bop)) |
|
|
|
|
|
/(A (A|B(*ACCEPT)|C) D)(E)/x |
|
|
AB |
|
|
|
|
|
/\A.*?(a|bc)/ |
|
|
ba |
|
|
|
|
|
/\A.*?(?:a|bc)++/ |
|
|
ba |
|
|
|
|
|
/\A.*?(a|bc)++/ |
|
|
ba |
|
|
|
|
|
/\A.*?(?:a|bc|d)/ |
|
|
ba |
|
|
|
|
|
/(?:(b))++/ |
|
|
beetle |
|
|
|
|
|
/(?(?=(a(*ACCEPT)z))a)/ |
|
|
a |
|
|
|
|
|
/^(a)(?1)+ab/ |
|
|
aaaab |
|
|
|
|
|
/^(a)(?1)++ab/ |
|
|
\= Expect no match |
|
|
aaaab |
|
|
|
|
|
/^(?=a(*:M))aZ/mark |
|
|
aZbc |
|
|
|
|
|
/^(?!(*:M)b)aZ/mark |
|
|
aZbc |
|
|
|
|
|
/(?(DEFINE)(a))?b(?1)/ |
|
|
backgammon |
|
|
|
|
|
/^\N+/ |
|
|
abc\ndef |
|
|
|
|
|
/^\N{1,}/ |
|
|
abc\ndef |
|
|
|
|
|
/(?(R)a+|(?R)b)/ |
|
|
aaaabcde |
|
|
|
|
|
/(?(R)a+|((?R))b)/ |
|
|
aaaabcde |
|
|
|
|
|
/((?(R)a+|(?1)b))/ |
|
|
aaaabcde |
|
|
|
|
|
/((?(R1)a+|(?1)b))/ |
|
|
aaaabcde |
|
|
|
|
|
/((?(R)a|(?1)))*/ |
|
|
aaa |
|
|
|
|
|
/((?(R)a|(?1)))+/ |
|
|
aaa |
|
|
|
|
|
/a(*:any |
|
|
name)/mark |
|
|
abc |
|
|
|
|
|
/(?>(?&t)c|(?&t))(?(DEFINE)(?<t>a|b(*PRUNE)c))/ |
|
|
a |
|
|
ba |
|
|
bba |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/^.*? (a(*THEN)b) c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
/^.*? (a(*THEN)b|(*F)) c/x |
|
|
aabc |
|
|
|
|
|
/^.*? ( (a(*THEN)b) | (*F) ) c/x |
|
|
aabc |
|
|
|
|
|
/^.*? ( (a(*THEN)b) ) c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
|
|
|
|
|
|
/^.*? (?:a(*THEN)b) c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
/^.*? (?:a(*THEN)b|(*F)) c/x |
|
|
aabc |
|
|
|
|
|
/^.*? (?: (?:a(*THEN)b) | (*F) ) c/x |
|
|
aabc |
|
|
|
|
|
/^.*? (?: (?:a(*THEN)b) ) c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
|
|
|
|
|
|
/^.*? (?>a(*THEN)b) c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
/^.*? (?>a(*THEN)b|(*F)) c/x |
|
|
aabc |
|
|
|
|
|
/^.*? (?> (?>a(*THEN)b) | (*F) ) c/x |
|
|
aabc |
|
|
|
|
|
/^.*? (?> (?>a(*THEN)b) ) c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
|
|
|
|
|
|
/^.*? (a(*THEN)b)++ c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
/^.*? (a(*THEN)b|(*F))++ c/x |
|
|
aabc |
|
|
|
|
|
/^.*? ( (a(*THEN)b)++ | (*F) )++ c/x |
|
|
aabc |
|
|
|
|
|
/^.*? ( (a(*THEN)b)++ )++ c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
|
|
|
|
|
|
/^.*? (?:a(*THEN)b)++ c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
/^.*? (?:a(*THEN)b|(*F))++ c/x |
|
|
aabc |
|
|
|
|
|
/^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c/x |
|
|
aabc |
|
|
|
|
|
/^.*? (?: (?:a(*THEN)b)++ )++ c/x |
|
|
\= Expect no match |
|
|
aabc |
|
|
|
|
|
|
|
|
|
|
|
/^(?(?=a(*THEN)b)ab|ac)/ |
|
|
ac |
|
|
|
|
|
|
|
|
|
|
|
/^.*?(?(?=a)a|b(*THEN)c)/ |
|
|
\= Expect no match |
|
|
ba |
|
|
|
|
|
/^.*?(?:(?(?=a)a|b(*THEN)c)|d)/ |
|
|
ba |
|
|
|
|
|
/^.*?(?(?=a)a(*THEN)b|c)/ |
|
|
\= Expect no match |
|
|
ac |
|
|
|
|
|
|
|
|
|
|
|
/^.*(?=a(*THEN)b)/ |
|
|
aabc |
|
|
|
|
|
|
|
|
|
|
|
/(?>a(*:m))/imsx,mark |
|
|
a |
|
|
|
|
|
/(?>(a)(*:m))/imsx,mark |
|
|
a |
|
|
|
|
|
/(?<=a(*ACCEPT)b)c/ |
|
|
xacd |
|
|
|
|
|
/(?<=(a(*ACCEPT)b))c/ |
|
|
xacd |
|
|
|
|
|
/(?<=(a(*COMMIT)b))c/ |
|
|
xabcd |
|
|
\= Expect no match |
|
|
xacd |
|
|
|
|
|
/(?<!a(*FAIL)b)c/ |
|
|
xcd |
|
|
acd |
|
|
|
|
|
/(?<=a(*:N)b)c/mark |
|
|
xabcd |
|
|
|
|
|
/(?<=a(*PRUNE)b)c/ |
|
|
xabcd |
|
|
|
|
|
/(?<=a(*SKIP)b)c/ |
|
|
xabcd |
|
|
|
|
|
/(?<=a(*THEN)b)c/ |
|
|
xabcd |
|
|
|
|
|
/(a)(?2){2}(.)/ |
|
|
abcd |
|
|
|
|
|
/(*MARK:A)(*PRUNE:B)(C|X)/mark |
|
|
C |
|
|
\= Expect no match |
|
|
D |
|
|
|
|
|
/(*MARK:A)(*PRUNE:B)(C|X)/mark |
|
|
C |
|
|
\= Expect no match |
|
|
D |
|
|
|
|
|
/(*MARK:A)(*THEN:B)(C|X)/mark |
|
|
C |
|
|
\= Expect no match |
|
|
D |
|
|
|
|
|
/(*MARK:A)(*THEN:B)(C|X)/mark,no_start_optimize |
|
|
C |
|
|
\= Expect no match |
|
|
D |
|
|
|
|
|
/(*MARK:A)(*THEN:B)(C|X)/mark |
|
|
C |
|
|
\= Expect no match |
|
|
D |
|
|
|
|
|
/(*COMMIT)ABC/no_start_optimize |
|
|
ABC |
|
|
\= Expect no match |
|
|
DEFABC |
|
|
|
|
|
/(*COMMIT)ABC/ |
|
|
ABC |
|
|
DEFABC |
|
|
|
|
|
|
|
|
|
|
|
/A(*MARK:A)A+(*SKIP)(B|Z) | AC/x,mark |
|
|
\= Expect no match |
|
|
AAAC |
|
|
|
|
|
|
|
|
|
|
|
/A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/x,mark |
|
|
\= Expect no match |
|
|
AAAC |
|
|
|
|
|
/A(*:A)A+(*SKIP)(B|Z) | AC/x,mark |
|
|
\= Expect no match |
|
|
AAAC |
|
|
|
|
|
|
|
|
|
|
|
/A(*MARK:A)A+(*SKIP:)(B|Z) | AC/x,mark |
|
|
\= Expect no match |
|
|
AAAC |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/A(*:A)B|XX(*:B)Y/mark |
|
|
AABC |
|
|
XXYZ |
|
|
\= Expect no match |
|
|
XAQQ |
|
|
XAQQXZZ |
|
|
AXQQQ |
|
|
AXXQQQ |
|
|
|
|
|
/^(A(*THEN:A)B|C(*THEN:B)D)/mark |
|
|
AB |
|
|
CD |
|
|
\= Expect no match |
|
|
AC |
|
|
CB |
|
|
|
|
|
/^(A(*PRUNE:A)B|C(*PRUNE:B)D)/mark |
|
|
AB |
|
|
CD |
|
|
\= Expect no match |
|
|
AC |
|
|
CB |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/^(A(*PRUNE:)B|C(*PRUNE:B)D)/mark |
|
|
AB |
|
|
CD |
|
|
|
|
|
|
|
|
|
|
|
/A(*PRUNE:A)B/mark |
|
|
ACAB |
|
|
|
|
|
|
|
|
|
|
|
/A(*:A)B|X(*:A)Y/mark |
|
|
AABC |
|
|
XXYZ |
|
|
|
|
|
/b(*:m)f|a(*:n)w/mark |
|
|
aw |
|
|
\= Expect no match |
|
|
abc |
|
|
|
|
|
/b(*:m)f|aw/mark |
|
|
abaw |
|
|
\= Expect no match |
|
|
abc |
|
|
abax |
|
|
|
|
|
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/x,mark |
|
|
AAAC |
|
|
|
|
|
/(?=a(*MARK:A)b)..x/mark |
|
|
abxy |
|
|
\= Expect no match |
|
|
abpq |
|
|
|
|
|
/(?=a(*MARK:A)b)..(*:Y)x/mark |
|
|
abxy |
|
|
\= Expect no match |
|
|
abpq |
|
|
|
|
|
/(?=a(*PRUNE:A)b)..x/mark |
|
|
abxy |
|
|
\= Expect no match |
|
|
abpq |
|
|
|
|
|
/(?=a(*PRUNE:A)b)..(*:Y)x/mark |
|
|
abxy |
|
|
\= Expect no match |
|
|
abpq |
|
|
|
|
|
/(?=a(*THEN:A)b)..x/mark |
|
|
abxy |
|
|
\= Expect no match |
|
|
abpq |
|
|
|
|
|
/(?=a(*THEN:A)b)..(*:Y)x/mark |
|
|
abxy |
|
|
\= Expect no match |
|
|
abpq |
|
|
|
|
|
/(another)?(\1?)test/ |
|
|
hello world test |
|
|
|
|
|
/(another)?(\1+)test/ |
|
|
\= Expect no match |
|
|
hello world test |
|
|
|
|
|
/(a(*COMMIT)b){0}a(?1)|aac/ |
|
|
aac |
|
|
|
|
|
/((?:a?)*)*c/ |
|
|
aac |
|
|
|
|
|
/((?>a?)*)*c/ |
|
|
aac |
|
|
|
|
|
/(?>.*?a)(?<=ba)/ |
|
|
aba |
|
|
|
|
|
/(?:.*?a)(?<=ba)/ |
|
|
aba |
|
|
|
|
|
/(?>.*?a)b/s |
|
|
aab |
|
|
|
|
|
/(?>.*?a)b/ |
|
|
aab |
|
|
|
|
|
/(?>^a)b/s |
|
|
\= Expect no match |
|
|
aab |
|
|
|
|
|
/(?>.*?)(?<=(abcd)|(wxyz))/ |
|
|
alphabetabcd |
|
|
endingwxyz |
|
|
|
|
|
/(?>.*)(?<=(abcd)|(wxyz))/ |
|
|
alphabetabcd |
|
|
endingwxyz |
|
|
|
|
|
/(?>.*)foo/ |
|
|
\= Expect no match |
|
|
abcdfooxyz |
|
|
|
|
|
/(?>.*?)foo/ |
|
|
abcdfooxyz |
|
|
|
|
|
/(?:(a(*PRUNE)b)){0}(?:(?1)|ac)/ |
|
|
ac |
|
|
|
|
|
/(?:(a(*SKIP)b)){0}(?:(?1)|ac)/ |
|
|
ac |
|
|
|
|
|
/(?<=(*SKIP)ac)a/ |
|
|
\= Expect no match |
|
|
aa |
|
|
|
|
|
/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/x,mark |
|
|
AAAC |
|
|
|
|
|
/a(*SKIP:m)x|ac(*:n)(*SKIP:n)d|ac/mark |
|
|
acacd |
|
|
|
|
|
/A(*SKIP:m)x|A(*SKIP:n)x|AB/mark |
|
|
AB |
|
|
|
|
|
/((*SKIP:r)d){0}a(*SKIP:m)x|ac(*:n)|ac/mark |
|
|
acacd |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*PRUNE)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/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 |
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*THEN)(*PRUNE)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*COMMIT)(*PRUNE)b|a+c/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*SKIP)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*PRUNE)(*SKIP)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*THEN)(*SKIP)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*COMMIT)(*SKIP)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*COMMIT)b|a+c/ |
|
|
\= Expect no match |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*THEN)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*SKIP)(*THEN)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*PRUNE)(*THEN)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
/aaaaa(*COMMIT)(*THEN)b|a+c/ |
|
|
aaaaaac |
|
|
|
|
|
|
|
|
|
|
|
/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/mark |
|
|
aaaaaac |
|
|
|
|
|
/.?(a|b(*THEN)c)/ |
|
|
ba |
|
|
|
|
|
/(a(*COMMIT)b)c|abd/ |
|
|
abc |
|
|
\= Expect no match |
|
|
abd |
|
|
|
|
|
/(?=a(*COMMIT)b)abc|abd/ |
|
|
abc |
|
|
abd |
|
|
|
|
|
/(?>a(*COMMIT)b)c|abd/ |
|
|
abc |
|
|
abd |
|
|
|
|
|
/a(?=b(*COMMIT)c)[^d]|abd/ |
|
|
abc |
|
|
\= Expect no match |
|
|
abd |
|
|
|
|
|
/a(?=bc).|abd/ |
|
|
abd |
|
|
abc |
|
|
|
|
|
/a(?>b(*COMMIT)c)d|abd/ |
|
|
\= Expect no match |
|
|
abceabd |
|
|
|
|
|
/a(?>bc)d|abd/ |
|
|
abceabd |
|
|
|
|
|
/(?>a(*COMMIT)b)c|abd/ |
|
|
abd |
|
|
|
|
|
/(?>a(*COMMIT)c)d|abd/ |
|
|
\= Expect no match |
|
|
abd |
|
|
|
|
|
/((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/ |
|
|
ac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/^(a)?(?(1)a|b)+$/ |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/x,mark |
|
|
\= Expect no match |
|
|
AAAC |
|
|
|
|
|
/^((abc|abcx)(*THEN)y|abcd)/ |
|
|
abcd |
|
|
\= Expect no match |
|
|
abcxy |
|
|
|
|
|
/^((yes|no)(*THEN)(*F))?/ |
|
|
\= Expect no match |
|
|
yes |
|
|
|
|
|
/(A (.*) C? (*THEN) | A D) (*FAIL)/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(A (.*) C? (*THEN) | A D) z/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(A (.*) C? (*THEN) | A D) \s* z/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(A (.*) (?:C|) (*THEN) | A D) z/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(A (.*) C{0,6} (*THEN) | A D) z/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x |
|
|
\= Expect no match |
|
|
AbcdCEBefgBhiBqz |
|
|
|
|
|
/(A (.*) (CE){0,6} (*THEN) | A D) z/x |
|
|
\= Expect no match |
|
|
AbcdCEBefgBhiBqz |
|
|
|
|
|
/(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(A (.*) (CE*){0,6} (*THEN) | A D) z/x |
|
|
\= Expect no match |
|
|
AbcdCBefgBhiBqz |
|
|
|
|
|
/(?=a(*COMMIT)b|ac)ac|ac/ |
|
|
\= Expect no match |
|
|
ac |
|
|
|
|
|
/(?=a(*COMMIT)b|(ac)) ac | (a)c/x |
|
|
\= Expect no match |
|
|
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/ |
|
|
\= Expect no match |
|
|
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))/mark |
|
|
abc |
|
|
|
|
|
/(*PRUNE:m(m)(?&y)(?(DEFINE)(?<y>b))/mark |
|
|
abc |
|
|
|
|
|
/(*SKIP:m(m)(?&y)(?(DEFINE)(?<y>b))/mark |
|
|
abc |
|
|
|
|
|
/(*THEN:m(m)(?&y)(?(DEFINE)(?<y>b))/mark |
|
|
abc |
|
|
|
|
|
/^\d*\w{4}/ |
|
|
1234 |
|
|
\= Expect no match |
|
|
123 |
|
|
|
|
|
/^[^b]*\w{4}/ |
|
|
aaaa |
|
|
\= Expect no match |
|
|
aaa |
|
|
|
|
|
/^[^b]*\w{4}/i |
|
|
aaaa |
|
|
\= Expect no match |
|
|
aaa |
|
|
|
|
|
/^a*\w{4}/ |
|
|
aaaa |
|
|
\= Expect no match |
|
|
aaa |
|
|
|
|
|
/^a*\w{4}/i |
|
|
aaaa |
|
|
\= Expect no match |
|
|
aaa |
|
|
|
|
|
/(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames |
|
|
foofoo |
|
|
barbar |
|
|
|
|
|
/(?<n>A)(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames |
|
|
AfooA |
|
|
AbarA |
|
|
\= Expect no match |
|
|
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)$/x,dupnames |
|
|
Ax |
|
|
BAxy |
|
|
|
|
|
|
|
|
|
|
|
/^A\xBz/ |
|
|
A\x{0B}z |
|
|
|
|
|
/^A\xABz/ |
|
|
A\x{AB}z |
|
|
|
|
|
/^A\xABCz/ |
|
|
A\x{AB}Cz |
|
|
|
|
|
/^A\o{123}B/ |
|
|
A\123B |
|
|
|
|
|
|
|
|
|
|
|
/ ^ a + + b $ /x |
|
|
aaaab |
|
|
|
|
|
/ ^ a + |
|
|
+ b $ /x |
|
|
aaaab |
|
|
|
|
|
/ ^ a + |
|
|
|
|
|
+ b $ /x |
|
|
aaaab |
|
|
|
|
|
/ ^ (?> a + ) b $ /x |
|
|
aaaab |
|
|
|
|
|
/ ^ ( a + ) + + \w $ /x |
|
|
aaaab |
|
|
|
|
|
/(?:a\Kb)*+/aftertext |
|
|
ababc |
|
|
|
|
|
/(?>a\Kb)*/aftertext |
|
|
ababc |
|
|
|
|
|
/(?:a\Kb)*/aftertext |
|
|
ababc |
|
|
|
|
|
/(a\Kb)*+/aftertext |
|
|
ababc |
|
|
|
|
|
/(a\Kb)*/aftertext |
|
|
ababc |
|
|
|
|
|
/(?:x|(?:(xx|yy)+|x|x|x|x|x)|a|a|a)bc/ |
|
|
\= Expect no match |
|
|
acb |
|
|
|
|
|
/\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++/ |
|
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED |
|
|
|
|
|
/\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++/ |
|
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED |
|
|
|
|
|
/\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++/ |
|
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED |
|
|
|
|
|
/\A([^\"1]++|[\"2]([^\"3]*+|[\"4][\"5])*+[\"6])++/ |
|
|
NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED |
|
|
|
|
|
/^\w+(?>\s*)(?<=\w)/ |
|
|
test test |
|
|
|
|
|
/(?P<same>a)(?P<same>b)/g,dupnames |
|
|
abbaba |
|
|
|
|
|
/(?P<same>a)(?P<same>b)(?P=same)/g,dupnames |
|
|
abbaba |
|
|
|
|
|
/(?P=same)?(?P<same>a)(?P<same>b)/g,dupnames |
|
|
abbaba |
|
|
|
|
|
/(?:(?P=same)?(?:(?P=same)(?P<same>a)(?P=same)|(?P=same)?(?P<same>b)(?P=same)){2}(?P=same)(?P<same>c)(?P=same)){2}(?P<same>z)?/g,dupnames |
|
|
\= Expect no match |
|
|
bbbaaaccccaaabbbcc |
|
|
|
|
|
/(?P<Name>a)?(?P<Name2>b)?(?(<Name>)c|d)*l/ |
|
|
acl |
|
|
bdl |
|
|
adl |
|
|
bcl |
|
|
|
|
|
/\sabc/ |
|
|
\x{0b}abc |
|
|
|
|
|
/[\Qa]\E]+/ |
|
|
aa]] |
|
|
|
|
|
/[\Q]a\E]+/ |
|
|
aa]] |
|
|
|
|
|
/A((((((((a))))))))\8B/ |
|
|
AaaB |
|
|
|
|
|
/A(((((((((a)))))))))\9B/ |
|
|
AaaB |
|
|
|
|
|
/A[\8\9]B/ |
|
|
A8B |
|
|
A9B |
|
|
|
|
|
/(|ab)*?d/ |
|
|
abd |
|
|
xyd |
|
|
|
|
|
/(?:((abcd))|(((?:(?:(?:(?:abc|(?:abcdef))))b)abcdefghi)abc)|((*ACCEPT)))/ |
|
|
1234abcd |
|
|
|
|
|
/(\2|a)(\1)/ |
|
|
aaa |
|
|
|
|
|
/(\2)(\1)/ |
|
|
|
|
|
/Z*(|d*){216}/ |
|
|
|
|
|
/(?1)(?#?'){8}(a)/ |
|
|
baaaaaaaaac |
|
|
|
|
|
/((((((((((((x))))))))))))\12/ |
|
|
xx |
|
|
|
|
|
/A[\8]B[\9]C/ |
|
|
A8B9C |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
/(?1)()((((((\1++))\x85)+)|))/ |
|
|
\x85\x85 |
|
|
|
|
|
#endif |
|
|
|
|
|
/(?|(\k'Pm')|(?'Pm'))/ |
|
|
abcd |
|
|
|
|
|
/(?|(aaa)|(b))\g{1}/ |
|
|
aaaaaa |
|
|
bb |
|
|
|
|
|
/(?|(aaa)|(b))(?1)/ |
|
|
aaaaaa |
|
|
baaa |
|
|
\= Expect no match |
|
|
bb |
|
|
|
|
|
/(?|(aaa)|(b))/ |
|
|
xaaa |
|
|
xbc |
|
|
|
|
|
/(?|(?'a'aaa)|(?'a'b))\k'a'/ |
|
|
aaaaaa |
|
|
bb |
|
|
|
|
|
/(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/dupnames |
|
|
aaaccccaaa |
|
|
bccccb |
|
|
|
|
|
# /x does not apply to MARK labels |
|
|
|
|
|
/x (*MARK:ab cd # comment |
|
|
ef) x/x,mark |
|
|
axxz |
|
|
|
|
|
/(?<=a(B){0}c)X/ |
|
|
acX |
|
|
|
|
|
/(?<DEFINE>b)(?(DEFINE)(a+))(?&DEFINE)/ |
|
|
bbbb |
|
|
\= Expect no match |
|
|
baaab |
|
|
|
|
|
/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\s])/ |
|
|
\ Fred:099 |
|
|
|
|
|
/(?=.*X)X$/ |
|
|
\ X |
|
|
|
|
|
/(?s)(?=.*?)b/ |
|
|
aabc |
|
|
|
|
|
/(Z)(a)\2{1,2}?(?-i)\1X/i |
|
|
ZaAAZX |
|
|
|
|
|
/(?'c')XX(?'YYYYYYYYYYYYYYYYYYYYYYYCl')/ |
|
|
|
|
|
/a+(?:|b)a/ |
|
|
aaaa |
|
|
|
|
|
/X?(R||){3335}/ |
|
|
|
|
|
/(?1)(A(*COMMIT)|B)D/ |
|
|
ABD |
|
|
XABD |
|
|
BAD |
|
|
ABXABD |
|
|
\= Expect no match |
|
|
ABX |
|
|
|
|
|
/(?(DEFINE)(?<m> 1? (?=(?<cond>2)?) 1 2 (?('cond')|3))) |
|
|
\A |
|
|
() |
|
|
(?&m) |
|
|
\Z/x |
|
|
123 |
|
|
|
|
|
/^(?: |
|
|
(?: A| (1? (?=(?<cond>2)?) (1) 2 (?('cond')|3)) ) |
|
|
(Z) |
|
|
)+$/x |
|
|
AZ123Z |
|
|
\= Expect no match |
|
|
AZ12Z |
|
|
|
|
|
/^ (?(DEFINE) ( (?!(a)\2b)..) ) ()(?1) /x |
|
|
acb |
|
|
\= Expect no match |
|
|
aab |
|
|
|
|
|
/(?>ab|abab){1,5}?M/ |
|
|
abababababababababababM |
|
|
|
|
|
/(?>ab|abab){2}?M/ |
|
|
abababM |
|
|
|
|
|
/((?(?=(a))a)+k)/ |
|
|
bbak |
|
|
|
|
|
/((?(?=(a))a|)+k)/ |
|
|
bbak |
|
|
|
|
|
/(?(?!(b))a|b)+k/ |
|
|
ababbalbbadabak |
|
|
|
|
|
/(?!(b))c|b/ |
|
|
Ab |
|
|
Ac |
|
|
|
|
|
/(?=(b))b|c/ |
|
|
Ab |
|
|
Ac |
|
|
|
|
|
/^(.|(.)(?1)\2)$/ |
|
|
a |
|
|
aba |
|
|
abcba |
|
|
ababa |
|
|
abcdcba |
|
|
|
|
|
/^((.)(?1)\2|.?)$/ |
|
|
a |
|
|
aba |
|
|
abba |
|
|
abcba |
|
|
ababa |
|
|
abccba |
|
|
abcdcba |
|
|
abcddcba |
|
|
|
|
|
/^(.)(\1|a(?2))/ |
|
|
bab |
|
|
|
|
|
/^(.|(.)(?1)?\2)$/ |
|
|
abcba |
|
|
|
|
|
/^(?(?=(a))abc|def)/ |
|
|
abc |
|
|
|
|
|
/^(?(?!(a))def|abc)/ |
|
|
abc |
|
|
|
|
|
/^(?(?=(a)(*ACCEPT))abc|def)/ |
|
|
abc |
|
|
|
|
|
/^(?(?!(a)(*ACCEPT))def|abc)/ |
|
|
abc |
|
|
|
|
|
/^(?1)\d{3}(a)/ |
|
|
a123a |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
# This pattern uses a lot of named subpatterns in order to match email |
|
|
# addresses in various formats. It's a heavy test for named subpatterns. In the |
|
|
# <atext> group, slash is coded as \x{2f} so that this pattern can also be |
|
|
# processed by perltest.sh, which does not cater for an escaped delimiter |
|
|
# within the pattern. $ within the pattern must also be escaped. All $ and @ |
|
|
# characters in subject strings are escaped so that Perl doesn't interpret them |
|
|
# as variable insertions and " characters must also be escaped for Perl. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/(?ix)(?(DEFINE) |
|
|
(?<addr_spec> (?&local_part) \@ (?&domain) ) |
|
|
(?<angle_addr> (?&CFWS)?+ < (?&addr_spec) > (?&CFWS)?+ ) |
|
|
(?<atext> [a-z\d! |
|
|
(?<atom> (?&CFWS)?+ (?&atext)+ (?&CFWS)?+ ) |
|
|
(?<ccontent> (?&ctext) | (?"ed_pair) | (?&comment) ) |
|
|
(?<ctext> [^\x{9}\x{10}\x{13}\x{7f}-\x{ff}\ ()\\] ) |
|
|
(?<comment> \( (?: (?&FWS)?+ (?&ccontent) )*+ (?&FWS)?+ \) ) |
|
|
(?<CFWS> (?: (?&FWS)?+ (?&comment) )* (? |
|
|
(?: (?&FWS)?+ (?&comment) | (?&FWS) ) ) |
|
|
(?<dcontent> (?&dtext) | (?"ed_pair) ) |
|
|
(?<display_name> (?&phrase) ) |
|
|
(?<domain> (?&dot_atom) | (?&domain_literal) ) |
|
|
(?<domain_literal> (?&CFWS)?+ \[ (?: (?&FWS)?+ (?&dcontent) )* (?&FWS)?+ \] |
|
|
(?&CFWS)?+ ) |
|
|
(?<dot_atom> (?&CFWS)?+ (?&dot_atom_text) (?&CFWS)?+ ) |
|
|
(?<dot_atom_text> (?&atext)++ (?: \. (?&atext)++)*+ ) |
|
|
(?<dtext> [^\x{9}\x{10}\x{13}\x{7f}-\x{ff}\ \[\]\\] ) |
|
|
(?<FWS> (?: [\t\ ]*+ \n)?+ [\t\ ]++ ) |
|
|
(?<local_part> (?&dot_atom) | (?"ed_string) ) |
|
|
(?<mailbox> (?&name_addr) | (?&addr_spec) ) |
|
|
(?<name_addr> (?&display_name)? (?&angle_addr) ) |
|
|
(?<phrase> (?&word)++ ) |
|
|
(?<qcontent> (?&qtext) | (?"ed_pair) ) |
|
|
(?<quoted_pair> " (?&text) ) |
|
|
(?<quoted_string> (?&CFWS)?+ " (?: (?&FWS)?+ (?&qcontent))* (?&FWS)?+ " |
|
|
(?&CFWS)?+ ) |
|
|
(?<qtext> [^\x{9}\x{10}\x{13}\x{7f}-\x{ff}\ "\\] ) |
|
|
(?<text> [^\r\n] ) |
|
|
(?<word> (?&atom) | (?"ed_string) ) |
|
|
) |
|
|
^(?&mailbox)$/ |
|
|
Alan Other <user\@dom.ain> |
|
|
<user\@dom.ain> |
|
|
user\@dom.ain |
|
|
user\@[] |
|
|
user\@[domain literal] |
|
|
user\@[domain literal with \"[square brackets\"] inside] |
|
|
\"A. Other\" <user.1234\@dom.ain> (a comment) |
|
|
A. Other <user.1234\@dom.ain> (a comment) |
|
|
\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay |
|
|
\= Expect no match |
|
|
A missing angle <user\@some.where |
|
|
The quick brown fox |
|
|
|
|
|
#endif |
|
|
|
|
|
# -------------------------------------------------------------------------- |
|
|
|
|
|
#if !ebcdic |
|
|
|
|
|
# This pattern uses named groups to match default PCRE2 patterns. It's another |
|
|
# heavy test for named subpatterns. Once again, code slash as \x{2f} and escape |
|
|
# $ even in classes so that this works with pcre2test. |
|
|
|
|
|
/(?sx)(?(DEFINE) |
|
|
|
|
|
(?<assertion> (?&simple_assertion) | (?&lookaround) ) |
|
|
|
|
|
(?<atomic_group> \( \? > (?®ex) \) ) |
|
|
|
|
|
(?<back_reference> \\ \d+ | |
|
|
\\g (?: [+-]?\d+ | \{ (?: [+-]?\d+ | (?&groupname) ) \} ) | |
|
|
\\k <(?&groupname)> | |
|
|
\\k '(?&groupname)' | |
|
|
\\k \{ (?&groupname) \} | |
|
|
\( \? P= (?&groupname) \) ) |
|
|
|
|
|
(?<branch> (?:(?&assertion) | |
|
|
(?&callout) | |
|
|
(?&comment) | |
|
|
(?&option_setting) | |
|
|
(?&qualified_item) | |
|
|
(?"ed_string) | |
|
|
(?"ed_string_empty) | |
|
|
(?&special_escape) | |
|
|
(?&verb) |
|
|
)* ) |
|
|
|
|
|
(?<callout> \(\?C (?: \d+ | |
|
|
(?: (?<D>["'`^%\#\$]) |
|
|
(?: \k'D'\k'D' | (?!\k'D') . )* \k'D' | |
|
|
\{ (?: \}\} | [^}]*+ )* \} ) |
|
|
)? \) ) |
|
|
|
|
|
(?<capturing_group> \( (?: \? P? < (?&groupname) > | \? ' (?&groupname) ' )? |
|
|
(?®ex) \) ) |
|
|
|
|
|
(?<character_class> \[ \^?+ (?: \] (?&class_item)* | (?&class_item)+ ) \] ) |
|
|
|
|
|
(?<character_type> (?! \\N\{\w+\} ) \\ [dDsSwWhHvVRN] ) |
|
|
|
|
|
(?<class_item> (?: \[ : (?: |
|
|
alnum|alpha|ascii|blank|cntrl|digit|graph|lower|print| |
|
|
punct|space|upper|word|xdigit |
|
|
) : \] | |
|
|
(?"ed_string) | |
|
|
(?"ed_string_empty) | |
|
|
(?&escaped_character) | |
|
|
(?&character_type) | |
|
|
[^]] ) ) |
|
|
|
|
|
(?<comment> \(\?\# [^)]* \) | (?"ed_string_empty) | \\E ) |
|
|
|
|
|
(?<condition> (?: \( [+-]? \d+ \) | |
|
|
\( < (?&groupname) > \) | |
|
|
\( ' (?&groupname) ' \) | |
|
|
\( R \d* \) | |
|
|
\( R & (?&groupname) \) | |
|
|
\( (?&groupname) \) | |
|
|
\( DEFINE \) | |
|
|
\( VERSION >?=\d+(?:\.\d\d?)? \) | |
|
|
(?&callout)?+ (?&comment)* (?&lookaround) ) ) |
|
|
|
|
|
(?<conditional_group> \(\? (?&condition) (?&branch) (?: \| (?&branch) )? \) ) |
|
|
|
|
|
(?<delimited_regex> (?<delimiter> [-\x{2f}!"'`=_:;,%&@~]) (?®ex) |
|
|
\k'delimiter' .* ) |
|
|
|
|
|
(?<escaped_character> \\ (?: 0[0-7]{1,2} | [0-7]{1,3} | o\{ [0-7]+ \} | |
|
|
x \{ (*COMMIT) [[:xdigit:]]* \} | x [[:xdigit:]]{0,2} | |
|
|
[aefnrt] | c[[:print:]] | |
|
|
[^[:alnum:]] ) ) |
|
|
|
|
|
(?<group> (?&capturing_group) | (?&non_capturing_group) | |
|
|
(?&resetting_group) | (?&atomic_group) | |
|
|
(?&conditional_group) ) |
|
|
|
|
|
(?<groupname> [a-zA-Z_]\w* ) |
|
|
|
|
|
(?<literal_character> (?! (?&range_qualifier) ) [^[()|*+?.\$\\] ) |
|
|
|
|
|
(?<lookaround> \(\? (?: = | ! | <= | <! ) (?®ex) \) ) |
|
|
|
|
|
(?<non_capturing_group> \(\? [iJmnsUx-]* : (?®ex) \) ) |
|
|
|
|
|
(?<option_setting> \(\? [iJmnsUx-]* \) ) |
|
|
|
|
|
(?<qualified_item> (?:\. | |
|
|
(?&lookaround) | |
|
|
(?&back_reference) | |
|
|
(?&character_class) | |
|
|
(?&character_type) | |
|
|
(?&escaped_character) | |
|
|
(?&group) | |
|
|
(?&subroutine_call) | |
|
|
(?&literal_character) | |
|
|
(?"ed_string) |
|
|
) (?&comment)? (?&qualifier)? ) |
|
|
|
|
|
(?<qualifier> (?: [?*+] | (?&range_qualifier) ) [+?]? ) |
|
|
|
|
|
(?<quoted_string> (?: \\Q (?: (?!\\E | \k'delimiter') . )++ (?: \\E | ) ) ) |
|
|
|
|
|
(?<quoted_string_empty> \\Q\\E ) |
|
|
|
|
|
(?<range_qualifier> \{ (?: \d+ (?: , \d* )? | , \d+ ) \} ) |
|
|
|
|
|
(?<regex> (?&start_item)* (?&branch) (?: \| (?&branch) )* ) |
|
|
|
|
|
(?<resetting_group> \( \? \| (?®ex) \) ) |
|
|
|
|
|
(?<simple_assertion> \^ | \$ | \\A | \\b | \\B | \\G | \\z | \\Z ) |
|
|
|
|
|
(?<special_escape> \\K ) |
|
|
|
|
|
(?<start_item> \( \* (?: |
|
|
ANY | |
|
|
ANYCRLF | |
|
|
BSR_ANYCRLF | |
|
|
BSR_UNICODE | |
|
|
CR | |
|
|
CRLF | |
|
|
LF | |
|
|
LIMIT_MATCH=\d+ | |
|
|
LIMIT_DEPTH=\d+ | |
|
|
LIMIT_HEAP=\d+ | |
|
|
NOTEMPTY | |
|
|
NOTEMPTY_ATSTART | |
|
|
NO_AUTO_POSSESS | |
|
|
NO_DOTSTAR_ANCHOR | |
|
|
NO_JIT | |
|
|
NO_START_OPT | |
|
|
NUL | |
|
|
UTF | |
|
|
UCP ) \) ) |
|
|
|
|
|
(?<subroutine_call> (?: \(\?R\) | \(\?[+-]?\d+\) | |
|
|
\(\? (?: & | P> ) (?&groupname) \) | |
|
|
\\g < (?&groupname) > | |
|
|
\\g ' (?&groupname) ' | |
|
|
\\g < [+-]? \d+ > | |
|
|
\\g ' [+-]? \d+ ) ) |
|
|
|
|
|
(?<verb> \(\* (?: ACCEPT | FAIL | F | COMMIT | |
|
|
(?:MARK)?:(?&verbname) | |
|
|
(?:PRUNE|SKIP|THEN) (?: : (?&verbname)? )? ) \) ) |
|
|
|
|
|
(?<verbname> [^)]+ ) |
|
|
|
|
|
) # End DEFINE |
|
|
# Kick it all off... |
|
|
^(?&delimited_regex)$/subject_literal,jitstack=256 |
|
|
/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/ |
|
|
/(cat(a(ract|tonic)|erpillar)) \1()2(3)/ |
|
|
/^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/ |
|
|
/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ |
|
|
/<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is |
|
|
/^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) / |
|
|
/(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ |
|
|
/\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ |
|
|
/^(\w++|\s++)*$/ |
|
|
/a+b?(*THEN)c+(*FAIL)/ |
|
|
/(A (A|B(*ACCEPT)|C) D)(E)/x |
|
|
/^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i |
|
|
/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/B |
|
|
/(?C`a``b`)(?C'a''b')(?C"a""b")(?C^a^^b^)(?C%a%%b%)(?C#a##b#)(?C$a$$b$)(?C{a}}b})/B,callout_info |
|
|
/(?sx)(?(DEFINE)(?<assertion> (?&simple_assertion) | (?&lookaround) )(?<atomic_group> \( \? > (?®ex) \) )(?<back_reference> \\ \d+ | \\g (?: [+-]?\d+ | \{ (?: [+-]?\d+ | (?&groupname) ) \} ) | \\k <(?&groupname)> | \\k '(?&groupname)' | \\k \{ (?&groupname) \} | \( \? P= (?&groupname) \) )(?<branch> (?:(?&assertion) | (?&callout) | (?&comment) | (?&option_setting) | (?&qualified_item) | (?"ed_string) | (?"ed_string_empty) | (?&special_escape) | (?&verb) )* )(?<callout> \(\?C (?: \d+ | (?: (?<D>["'`^%\ |
|
|
\= Expect no match |
|
|
/((?(?C'')\QX\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/ |
|
|
/(?:(?(2y)a|b)(X))+/ |
|
|
/a(*MARK)b/ |
|
|
/a(*CR)b/ |
|
|
/(?P<abn>(?P=abn)(?<badstufxxx)/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/<(?x:[a b])>/xx |
|
|
< > |
|
|
|
|
|
/<(?:[a b])>/xx |
|
|
< > |
|
|
|
|
|
/<(?xxx:[a b])>/ |
|
|
< > |
|
|
|
|
|
/<(?-x:[a b])>/xx |
|
|
< > |
|
|
|
|
|
/[[:digit:]-]+/ |
|
|
12-24 |
|
|
|
|
|
/((?<=((*ACCEPT)) )\1?\b) / |
|
|
\= Expect no match |
|
|
((?<=((*ACCEPT)) )\\1?\\b)\x20 |
|
|
|
|
|
/((?<=((*ACCEPT))X)\1?Y)\1/ |
|
|
XYYZ |
|
|
|
|
|
/((?<=((*ACCEPT))X)\1?Y(*ACCEPT))\1/ |
|
|
XYYZ |
|
|
|
|
|
/(?(DEFINE)(?<optional_a>a?)X)^(?&optional_a)a$/ |
|
|
aa |
|
|
a |
|
|
|
|
|
/^(a?)b(?1)a/ |
|
|
abaa |
|
|
aba |
|
|
baa |
|
|
ba |
|
|
|
|
|
/^(a?)+b(?1)a/ |
|
|
abaa |
|
|
aba |
|
|
baa |
|
|
ba |
|
|
|
|
|
/^(a?)++b(?1)a/ |
|
|
abaa |
|
|
aba |
|
|
baa |
|
|
ba |
|
|
|
|
|
/^(a?)+b/ |
|
|
b |
|
|
ab |
|
|
aaab |
|
|
|
|
|
/(?=a+)a(a+)++b/ |
|
|
aab |
|
|
|
|
|
/(?<=\G.)/g,aftertext |
|
|
abc |
|
|
|
|
|
/(?<=(?=.)?)/ |
|
|
|
|
|
/(?<=(?=.)?+)/ |
|
|
|
|
|
/(?<=(?=.)*)/ |
|
|
|
|
|
/(?<=(?=.){4,5})/ |
|
|
|
|
|
/(?<=(?=.){4,5}x)/ |
|
|
|
|
|
/a(?=.(*:X))(*SKIP:X)(*F)|(.)/ |
|
|
abc |
|
|
|
|
|
/a(?>(*:X))(*SKIP:X)(*F)|(.)/ |
|
|
abc |
|
|
|
|
|
/a(?:(*:X))(*SKIP:X)(*F)|(.)/ |
|
|
abc |
|
|
|
|
|
|
|
|
|
|
|
/(?>a(*:1))(?>b(*:1))(*SKIP:1)x|.*/ |
|
|
abc |
|
|
|
|
|
/(?>a(*:1))(?>b)(*SKIP:1)x|.*/ |
|
|
abc |
|
|
|
|
|
#subject mark |
|
|
|
|
|
/a(*ACCEPT:X)b/ |
|
|
abc |
|
|
|
|
|
/(?=a(*ACCEPT:QQ)bc)axyz/ |
|
|
axyz |
|
|
|
|
|
/(?(DEFINE)(a(*ACCEPT:X)))(?1)b/ |
|
|
abc |
|
|
|
|
|
/a(*F:X)b/ |
|
|
abc |
|
|
|
|
|
/(?(DEFINE)(a(*F:X)))(?1)b/ |
|
|
abc |
|
|
|
|
|
/a(*COMMIT:X)b/ |
|
|
abc |
|
|
|
|
|
/(?(DEFINE)(a(*COMMIT:X)))(?1)b/ |
|
|
abc |
|
|
|
|
|
/a+(*:Z)b(*COMMIT:X)(*SKIP:Z)c|.*/ |
|
|
aaaabd |
|
|
|
|
|
/a+(*:Z)b(*COMMIT:X)(*SKIP:X)c|.*/ |
|
|
aaaabd |
|
|
|
|
|
/a(*COMMIT:X)b/ |
|
|
axabc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/(.COMMIT)(*COMMIT::::::::::interal error:::)/ |
|
|
|
|
|
/(*COMMIT:��)/ |
|
|
|
|
|
/(*COMMIT:]w)/ |
|
|
|
|
|
/(?i)A(?^)B(?^x:C D)(?^i)e f/ |
|
|
aBCDE F |
|
|
\= Expect no match |
|
|
aBCDEF |
|
|
AbCDe f |
|
|
|
|
|
/(*pla:foo).{6}/ |
|
|
abcfoobarxyz |
|
|
\= Expect no match |
|
|
abcfooba |
|
|
|
|
|
/(*positive_lookahead:foo).{6}/ |
|
|
abcfoobarxyz |
|
|
|
|
|
/(?(*pla:foo).{6}|a..)/ |
|
|
foobarbaz |
|
|
abcfoobar |
|
|
|
|
|
/(?(*positive_lookahead:foo).{6}|a..)/ |
|
|
foobarbaz |
|
|
abcfoobar |
|
|
|
|
|
/(*plb:foo)bar/ |
|
|
abcfoobar |
|
|
\= Expect no match |
|
|
abcbarfoo |
|
|
|
|
|
/(*positive_lookbehind:foo)bar/ |
|
|
abcfoobar |
|
|
\= Expect no match |
|
|
abcbarfoo |
|
|
|
|
|
/(?(*plb:foo)bar|baz)/ |
|
|
abcfoobar |
|
|
bazfoobar |
|
|
abcbazfoobar |
|
|
foobazfoobar |
|
|
|
|
|
/(?(*positive_lookbehind:foo)bar|baz)/ |
|
|
abcfoobar |
|
|
bazfoobar |
|
|
abcbazfoobar |
|
|
foobazfoobar |
|
|
|
|
|
/(*nlb:foo)bar/ |
|
|
abcbarfoo |
|
|
\= Expect no match |
|
|
abcfoobar |
|
|
|
|
|
/(*negative_lookbehind:foo)bar/ |
|
|
abcbarfoo |
|
|
\= Expect no match |
|
|
abcfoobar |
|
|
|
|
|
/(?(*nlb:foo)bar|baz)/ |
|
|
abcfoobaz |
|
|
abcbarbaz |
|
|
\= Expect no match |
|
|
abcfoobar |
|
|
|
|
|
/(?(*negative_lookbehind:foo)bar|baz)/ |
|
|
abcfoobaz |
|
|
abcbarbaz |
|
|
\= Expect no match |
|
|
abcfoobar |
|
|
|
|
|
/(*atomic:a+)\w/ |
|
|
aaab |
|
|
\= Expect no match |
|
|
aaaa |
|
|
|
|
|
/ (?<word> \w+ )* \. /xi |
|
|
pokus. |
|
|
|
|
|
/(?(DEFINE) (?<word> \w+ ) ) (?&word)* \./xi |
|
|
pokus. |
|
|
|
|
|
/(?(DEFINE) (?<word> \w+ ) ) ( (?&word)* ) \./xi |
|
|
pokus. |
|
|
|
|
|
/(?&word)* (?(DEFINE) (?<word> \w+ ) ) \./xi |
|
|
pokus. |
|
|
|
|
|
/(?&word)* \. (?<word> \w+ )/xi |
|
|
pokus.hokus |
|
|
|
|
|
/a(?(?=(*:2)b).)/mark |
|
|
abc |
|
|
acb |
|
|
|
|
|
/a(?(?!(*:2)b).)/mark |
|
|
acb |
|
|
abc |
|
|
|
|
|
/(?:a|ab){1}+c/ |
|
|
\= Expect no match |
|
|
abc |
|
|
|
|
|
/(a|ab){1}+c/ |
|
|
abc |
|
|
|
|
|
/(a+){1}+a/ |
|
|
\= Expect no match |
|
|
aaaa |
|
|
|
|
|
/(?(DEFINE)(a|ab))(?1){1}+c/ |
|
|
abc |
|
|
|
|
|
/(?:a|(?=b)|.)*\z/ |
|
|
abc |
|
|
|
|
|
/(?:a|(?=b)|.)*/ |
|
|
abc |
|
|
|
|
|
/(?<=a(*SKIP)x)|c/ |
|
|
abcd |
|
|
|
|
|
/(?<=a(*SKIP)x)|d/ |
|
|
abcd |
|
|
|
|
|
/(?<=(?=.(?<=x)))/aftertext |
|
|
abx |
|
|
|
|
|
/(?<=(?=(?<=a)))b/ |
|
|
ab |
|
|
|
|
|
/^(?<A>a)(?(<A>)b)((?<=b).*)$/ |
|
|
abc |
|
|
|
|
|
/^(a\1?){4}$/ |
|
|
aaaa |
|
|
aaaaaa |
|
|
|
|
|
/^((\1+)|\d)+133X$/ |
|
|
111133X |
|
|
|
|
|
/^(?>.*?([A-Z])(?!.*\1)){26}/i |
|
|
The quick brown fox jumps over the lazy dog. |
|
|
Jackdaws love my big sphinx of quartz. |
|
|
Pack my box with five dozen liquor jugs. |
|
|
\= Expect no match |
|
|
The quick brown fox jumps over the lazy cat. |
|
|
Hackdaws love my big sphinx of quartz. |
|
|
Pack my fox with five dozen liquor jugs. |
|
|
|
|
|
/(?<=X(?(DEFINE)(A)))X(*F)/ |
|
|
\= Expect no match |
|
|
AXYZ |
|
|
|
|
|
/(?<=X(?(DEFINE)(A)))./ |
|
|
AXYZ |
|
|
|
|
|
/(?<=X(?(DEFINE)(.*))Y)./ |
|
|
AXYZ |
|
|
|
|
|
/(?<=X(?(DEFINE)(Y))(?1))./ |
|
|
AXYZ |
|
|
|
|
|
/(?(DEFINE)(?<foo>bar))(?<![-a-z0-9])word/ |
|
|
word |
|
|
|
|
|
/a{1,2,3}b/ |
|
|
a{1,2,3}b |
|
|
|
|
|
|
|
|
|
|
|
/\214748364/ |
|
|
>\x{8c}748364< |
|
|
|
|
|
|
|
|
/\21300/ |
|
|
\x8b00 |
|
|
|
|
|
|
|
|
/\213000/ |
|
|
\x8b000 |
|
|
|
|
|
|
|
|
/\21300000000/ |
|
|
\x8b00000000 |
|
|
|
|
|
|
|
|
|
|
|
/a{65536/ |
|
|
>a{65536< |
|
|
|
|
|
/a\K.(?0)*/ |
|
|
abac |
|
|
|
|
|
/(a\K.(?1)*)/ |
|
|
abac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/(?<=ab?c).../g |
|
|
abcdefgacxyz |
|
|
|
|
|
/(?<=PQR|ab?c).../g |
|
|
abcdefgacxyzPQR123 |
|
|
|
|
|
/(?<=ab?c|PQR).../g |
|
|
abcdefgacxyzPQR123 |
|
|
|
|
|
/(?<=PQ|ab?c).../g |
|
|
abcdefgacxyzPQR123 |
|
|
|
|
|
/(?<=ab?c|PQ).../g |
|
|
abcdefgacxyzPQR123 |
|
|
|
|
|
/(?<=a(b?c|d?e?e)f)X./g |
|
|
acfX1zzzaefX2zzzadeefX3zzzX4zzz |
|
|
|
|
|
/(?<!a(b?c|d?e?e)f)X./g |
|
|
acfX1zzzaefX2zzzadeefX3zzzX4zzz |
|
|
|
|
|
/(?(?<=ab?c)d|e)/ |
|
|
abcdefg |
|
|
acdefg |
|
|
axdefg |
|
|
|
|
|
/(?<=\d{2,3}|ABC)./ |
|
|
ABCD |
|
|
|
|
|
/(?<=(\d{1,255}))X/ |
|
|
1234X |
|
|
|
|
|
/(?<=a(b?c){3}d)X/ |
|
|
ZXacbccdXYZ |
|
|
|
|
|
/(?<=a(b?c){0}d)X/ |
|
|
ZXadXYZ |
|
|
|
|
|
/(?<=a?(b?c){0}d)X./ |
|
|
ZXadXYZ |
|
|
|
|
|
/(?<=\R)X/ |
|
|
\x{0a}X |
|
|
a\x{0a}X |
|
|
a\x{0d}\x{0a}X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/a{,3}B/ |
|
|
XBBB |
|
|
XaBBB |
|
|
XaaBBB |
|
|
XaaaBBB |
|
|
XaaaaBBB |
|
|
|
|
|
|
|
|
|
|
|
/a{,}B/ |
|
|
Xa{,}BBB |
|
|
\= Expect no match |
|
|
XBBB |
|
|
XaBBB |
|
|
|
|
|
|
|
|
|
|
|
/X{/ |
|
|
ZZX{}YY |
|
|
|
|
|
/X{A/ |
|
|
ZZX{ABC} |
|
|
|
|
|
/X{}/ |
|
|
ZZX{}YZ |
|
|
|
|
|
/X{1234/ |
|
|
ZZX{123456 |
|
|
|
|
|
/X{12ABC}/ |
|
|
ZZX{12ABC}Y |
|
|
|
|
|
/X{1,/ |
|
|
ZZX{1,... |
|
|
|
|
|
/X{,9/ |
|
|
ZZX{,9}abc |
|
|
|
|
|
/X{,9]/ |
|
|
ZZX{,9].. |
|
|
|
|
|
|
|
|
|
|
|
/(A)(?-1)(?+1)(B)/ |
|
|
xxAABBzz |
|
|
|
|
|
/(A)(\g{ -2 }B)/ |
|
|
XAABX |
|
|
|
|
|
/(A)((?-2)B)/ |
|
|
XAABX |
|
|
|
|
|
/a\c\X/ |
|
|
--a\x1cX-- |
|
|
|
|
|
/(a)\g{ 1 }/ |
|
|
baab |
|
|
|
|
|
/a{ 1,2 }/ |
|
|
Xaaaaa |
|
|
|
|
|
/a{ 1 , 2 }/ |
|
|
Xaaaaa |
|
|
|
|
|
/(?'name'ab)\k{ name }(?P=name)/ |
|
|
XabababX |
|
|
|
|
|
/A{,}B/ |
|
|
A{,}B |
|
|
|
|
|
/A{ , }B/ |
|
|
A{ , }B |
|
|
|
|
|
/A{ ,3}/ |
|
|
AAAAAACC |
|
|
|
|
|
/A{ 3, }/ |
|
|
BBAAAAAACC |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/^ |
|
|
(?<re> |
|
|
|
|
|
(?: |
|
|
|
|
|
(?: |
|
|
[^?+*{}()\[\]\\|]++| |
|
|
\\.| |
|
|
|
|
|
\[ |
|
|
(?: |
|
|
\^?\\.| |
|
|
\^[^\\]| |
|
|
[^\\^] |
|
|
) |
|
|
(?:[^\]\\]+|\\.)*+ |
|
|
\]| |
|
|
|
|
|
\( |
|
|
(?: |
|
|
\?[:=!]| |
|
|
\?<[=!]| |
|
|
\?> |
|
|
)? |
|
|
(?&re)?? |
|
|
\)| |
|
|
|
|
|
\(\? |
|
|
(?: |
|
|
R| |
|
|
[+-]?\d++ |
|
|
) |
|
|
\)| |
|
|
|
|
|
\(\* |
|
|
(?: |
|
|
COMMIT| |
|
|
FAIL| |
|
|
MARK:[^)]*| |
|
|
(?:PRUNE|SKIP|THEN)(?::[^\)]*+)? |
|
|
) |
|
|
\) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
(?: |
|
|
(?: |
|
|
[?+*] |
|
|
| |
|
|
\{\d+ |
|
|
(?:,\d*)? |
|
|
\} |
|
|
| |
|
|
\{,\d+} |
|
|
) |
|
|
[?+]? |
|
|
)? |
|
|
|
|
|
| |
|
|
|
|
|
\| |
|
|
|
|
|
)* |
|
|
) |
|
|
$/x |
|
|
[abcdef] |
|
|
[abc\\]def] |
|
|
a.b|abcd |
|
|
ab()d |
|
|
ab{1,3}d |
|
|
ab{,3}d |
|
|
ab(*FAIL)d(*COMMIT)(*SKIP)(*THEN:abc) |
|
|
ab(*MARK:xyz) |
|
|
(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\\s]) |
|
|
abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\^\\\\\\?caxyz |
|
|
a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz |
|
|
\\G(?:(?=(\\1.|)(.))){1,13}?(?!.*\\2.*\\2)\\1\\K\\2 |
|
|
\= Expect no match |
|
|
ab)d |
|
|
ab(d |
|
|
{4,5} |
|
|
a[]b |
|
|
(a)(?(1)a|b|c) |
|
|
|
|
|
/^..A(*SKIP)B|C/ |
|
|
12ADC |
|
|
|
|
|
/(?<!a?)/ |
|
|
a |
|
|
|
|
|
/\Qab*\E{2,}/ |
|
|
ab***z |
|
|
|
|
|
/[\Qabc\E-z]+/ |
|
|
abcdwxyz |
|
|
|
|
|
/[\Qa-\Ez]+/ |
|
|
xz-zaax |
|
|
|
|
|
/a{(? |
|
|
xa{,2}x |
|
|
\= Expect no match |
|
|
xaax |
|
|
|
|
|
/(?<=PQ|Pc.b?)(.?)(b?)/ |
|
|
Pc.b |
|
|
|
|
|
/(?(?<=aa.b|ab)b).b/ |
|
|
aaab |
|
|
|
|
|
/(?(?<=a(?:a.b|b))b).b/ |
|
|
aaab |
|
|
|
|
|
/(?=a)b?a/ |
|
|
a |
|
|
|
|
|
/(?=a)b?a./ |
|
|
ab |
|
|
|
|
|
/\w(?R)*\w/ |
|
|
grtgt |
|
|
abcdef |
|
|
abcdefg |
|
|
.a.bc.d. |
|
|
\= Expect no match |
|
|
.a.b.c. |
|
|
|
|
|
/65 00 64/hex |
|
|
e\0d |
|
|
|
|
|
/[[:digit:]- ]/xx |
|
|
1 |
|
|
- |
|
|
\= Expect no match |
|
|
z |
|
|
\ \ |
|
|
|
|
|
/[\d- ]/xx |
|
|
1 |
|
|
- |
|
|
\= Expect no match |
|
|
z |
|
|
\ \ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/(?[\n])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
\\ |
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
/^(?[\x61])b/ |
|
|
ab |
|
|
\= Expect no match |
|
|
b |
|
|
a |
|
|
|
|
|
/^(?[\x61])+b/ |
|
|
ab |
|
|
aab |
|
|
\= Expect no match |
|
|
b |
|
|
|
|
|
|
|
|
|
|
|
/(?[ [[:graph:]] ])/ |
|
|
a |
|
|
\= Expect no match |
|
|
\x01 |
|
|
|
|
|
/(?[ [:graph:] ])/ |
|
|
a |
|
|
\= Expect no match |
|
|
\x01 |
|
|
|
|
|
/(?[ [[:graph:]\x02] ])/ |
|
|
a |
|
|
\x02 |
|
|
\= Expect no match |
|
|
\x01 |
|
|
|
|
|
/(?[\E\n])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
\\ |
|
|
E |
|
|
|
|
|
/(?[\n \Q\E])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
\\ |
|
|
Q |
|
|
|
|
|
/(?[ ( \x02 + [:graph:] ) | [ \x02 [:graph:] ] ])/ |
|
|
a |
|
|
\x02 |
|
|
\= Expect no match |
|
|
\x01 |
|
|
|
|
|
/(?[ \d ])/ |
|
|
1 |
|
|
\= Expect no match |
|
|
d |
|
|
|
|
|
/(?[[1]])/ |
|
|
1 |
|
|
\= Expect no match |
|
|
] |
|
|
|
|
|
/(?[[a]])/ |
|
|
a |
|
|
\= Expect no match |
|
|
] |
|
|
|
|
|
/(?[[a-c]])/ |
|
|
a |
|
|
b |
|
|
\= Expect no match |
|
|
- |
|
|
] |
|
|
|
|
|
/(?[ [\t] + [\n] ])/ |
|
|
\t |
|
|
\n |
|
|
\= Expect no match |
|
|
t |
|
|
\\ |
|
|
[ |
|
|
|
|
|
/(?[ \t + \n ])/ |
|
|
\t |
|
|
\n |
|
|
\= Expect no match |
|
|
t |
|
|
\\ |
|
|
[ |
|
|
|
|
|
/(?[ [()] ])/ |
|
|
) |
|
|
( |
|
|
\= Expect no match |
|
|
] |
|
|
|
|
|
/(?[ ( [()] ) ])/ |
|
|
) |
|
|
( |
|
|
\= Expect no match |
|
|
] |
|
|
|
|
|
/(?[ (( [\n\t] )) ])/ |
|
|
\n |
|
|
\t |
|
|
\= Expect no match |
|
|
) |
|
|
( |
|
|
t |
|
|
|
|
|
|
|
|
|
|
|
/(?[ !\n ])/ |
|
|
z |
|
|
\= Expect no match |
|
|
\n |
|
|
|
|
|
/(?[ !\d ])/ |
|
|
a |
|
|
\= Expect no match |
|
|
1 |
|
|
|
|
|
/(?[ ![:alpha:] ])/ |
|
|
1 |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/(?[ ![\n] ])/ |
|
|
z |
|
|
\= Expect no match |
|
|
\n |
|
|
|
|
|
/(?[ !(\n) ])/ |
|
|
z |
|
|
\= Expect no match |
|
|
\n |
|
|
|
|
|
/(?[ !!\n ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
/(?[ (\n) ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
z |
|
|
|
|
|
/(?[ (\d) ])/ |
|
|
1 |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/(?[ ([:alpha:]) ])/ |
|
|
a |
|
|
\= Expect no match |
|
|
1 |
|
|
|
|
|
/(?[ ([\n]) ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
z |
|
|
|
|
|
/(?[ ((\n)) ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
z |
|
|
|
|
|
/(?[ (!\n) ])/ |
|
|
z |
|
|
\= Expect no match |
|
|
\n |
|
|
|
|
|
/(?[ (\n + \t) ])/ |
|
|
\n |
|
|
\t |
|
|
\= Expect no match |
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
/(?[ \n & [\n\t] ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
t |
|
|
|
|
|
/(?[ \d & [\d\t] ])/ |
|
|
1 |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/(?[ [:alpha:] & [a-z\t] ])/ |
|
|
a |
|
|
\= Expect no match |
|
|
A |
|
|
\t |
|
|
|
|
|
/(?[ [\n] & [\n\t] ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
\t |
|
|
|
|
|
/(?[ (\n) & [\n\t] ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
\t |
|
|
|
|
|
/(?[ !\n & [^\n\t] ])/ |
|
|
a |
|
|
\= Expect no match |
|
|
\n |
|
|
\t |
|
|
|
|
|
/(?[ \n & [\n\t] + [\d] ])/ |
|
|
\n |
|
|
1 |
|
|
\= Expect no match |
|
|
\t |
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
/(?[ [\n\t] & \n ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
t |
|
|
|
|
|
/(?[ [\d\t] & \d ])/ |
|
|
1 |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/(?[ [a-z\t] & [:alpha:] ])/ |
|
|
a |
|
|
\= Expect no match |
|
|
A |
|
|
\t |
|
|
|
|
|
/(?[ [\n\t] & [\n] ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
\t |
|
|
|
|
|
/(?[ [\n\t] & (\n) ])/ |
|
|
\n |
|
|
\= Expect no match |
|
|
\t |
|
|
|
|
|
/(?[ [^\n\t] & !\n ])/ |
|
|
a |
|
|
\= Expect no match |
|
|
\n |
|
|
\t |
|
|
|
|
|
/(?[ [\d] + \n & [\n\t] ])/ |
|
|
\n |
|
|
1 |
|
|
\= Expect no match |
|
|
\t |
|
|
a |
|
|
|
|
|
/(?[ [\d] + \n + [\t] ])/ |
|
|
\n |
|
|
\t |
|
|
1 |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
/(?[ \d + \n ])/ |
|
|
\n |
|
|
1 |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/(?[ \d | \n ])/ |
|
|
\n |
|
|
1 |
|
|
\= Expect no match |
|
|
a |
|
|
|
|
|
/(?[ \d - [2] ])/ |
|
|
1 |
|
|
3 |
|
|
\= Expect no match |
|
|
2 |
|
|
|
|
|
/(?[ [AC] ^ [BC] ])/ |
|
|
A |
|
|
B |
|
|
\= Expect no match |
|
|
C |
|
|
D |
|
|
|
|
|
/(?[ ( [ ^ z ] ) ])/ |
|
|
j |
|
|
\= Expect no match |
|
|
z |
|
|
|
|
|
/^.{4}/s |
|
|
abcdef |
|
|
abcde |
|
|
abcd |
|
|
\= Expect no match |
|
|
abc |
|
|
ab |
|
|
a |
|
|
|
|
|
/^(.{3,6}!)+$/s |
|
|
abc!defghi! |
|
|
abcdef!ghi! |
|
|
abc!def!ghi!jkl! |
|
|
ab!cd! |
|
|
\= Expect no match |
|
|
abcd!ef! |
|
|
ab!cdefg! |
|
|
|
|
|
/[a-z]{5,}b|x/ |
|
|
abcdefghbijb |
|
|
abcdefghbij |
|
|
abcdeb |
|
|
abcdefghijx |
|
|
\= Expect no match |
|
|
abcdb |
|
|
abcdefghijk |
|
|
|
|
|
/[a-z]{1,6}?s|x/ |
|
|
asbs |
|
|
abcdefs |
|
|
abcdefghijkss |
|
|
abcdefghijkx |
|
|
ss |
|
|
\= Expect no match |
|
|
s |
|
|
aaa |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|