Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
glibc/posix/PCRE.tests
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
2386 lines (2092 sloc)
25.4 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# PCRE version 4.4 21-August-2003 | |
# Tests taken from PCRE and modified to suit glibc regex. | |
# | |
# PCRE LICENCE | |
# ------------ | |
# | |
# PCRE is a library of functions to support regular expressions whose syntax | |
# and semantics are as close as possible to those of the Perl 5 language. | |
# | |
# Written by: Philip Hazel <ph10@cam.ac.uk> | |
# | |
# University of Cambridge Computing Service, | |
# Cambridge, England. Phone: +44 1223 334714. | |
# | |
# Copyright (c) 1997-2003 University of Cambridge | |
# | |
# Permission is granted to anyone to use this software for any purpose on any | |
# computer system, and to redistribute it freely, subject to the following | |
# restrictions: | |
# | |
# 1. This software is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
# | |
# 2. The origin of this software must not be misrepresented, either by | |
# explicit claim or by omission. In practice, this means that if you use | |
# PCRE in software that you distribute to others, commercially or | |
# otherwise, you must put a sentence like this | |
# | |
# Regular expression support is provided by the PCRE library package, | |
# which is open source software, written by Philip Hazel, and copyright | |
# by the University of Cambridge, England. | |
# | |
# somewhere reasonably visible in your documentation and in any relevant | |
# files or online help data or similar. A reference to the ftp site for | |
# the source, that is, to | |
# | |
# ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ | |
# | |
# should also be given in the documentation. However, this condition is not | |
# intended to apply to whole chains of software. If package A includes PCRE, | |
# it must acknowledge it, but if package B is software that includes package | |
# A, the condition is not imposed on package B (unless it uses PCRE | |
# independently). | |
# | |
# 3. Altered versions must be plainly marked as such, and must not be | |
# misrepresented as being the original software. | |
# | |
# 4. If PCRE is embedded in any software that is released under the GNU | |
# General Purpose Licence (GPL), or Lesser General Purpose Licence (LGPL), | |
# then the terms of that licence shall supersede any condition above with | |
# which it is incompatible. | |
# | |
# The documentation for PCRE, supplied in the "doc" directory, is distributed | |
# under the same terms as the software itself. | |
# | |
# End | |
# | |
/the quick brown fox/ | |
the quick brown fox | |
0: the quick brown fox | |
The quick brown FOX | |
No match | |
What do you know about the quick brown fox? | |
0: the quick brown fox | |
What do you know about THE QUICK BROWN FOX? | |
No match | |
/The quick brown fox/i | |
the quick brown fox | |
0: the quick brown fox | |
The quick brown FOX | |
0: The quick brown FOX | |
What do you know about the quick brown fox? | |
0: the quick brown fox | |
What do you know about THE QUICK BROWN FOX? | |
0: THE QUICK BROWN FOX | |
/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ | |
abxyzpqrrrabbxyyyypqAzz | |
0: abxyzpqrrrabbxyyyypqAzz | |
abxyzpqrrrabbxyyyypqAzz | |
0: abxyzpqrrrabbxyyyypqAzz | |
aabxyzpqrrrabbxyyyypqAzz | |
0: aabxyzpqrrrabbxyyyypqAzz | |
aaabxyzpqrrrabbxyyyypqAzz | |
0: aaabxyzpqrrrabbxyyyypqAzz | |
aaaabxyzpqrrrabbxyyyypqAzz | |
0: aaaabxyzpqrrrabbxyyyypqAzz | |
abcxyzpqrrrabbxyyyypqAzz | |
0: abcxyzpqrrrabbxyyyypqAzz | |
aabcxyzpqrrrabbxyyyypqAzz | |
0: aabcxyzpqrrrabbxyyyypqAzz | |
aaabcxyzpqrrrabbxyyyypAzz | |
0: aaabcxyzpqrrrabbxyyyypAzz | |
aaabcxyzpqrrrabbxyyyypqAzz | |
0: aaabcxyzpqrrrabbxyyyypqAzz | |
aaabcxyzpqrrrabbxyyyypqqAzz | |
0: aaabcxyzpqrrrabbxyyyypqqAzz | |
aaabcxyzpqrrrabbxyyyypqqqAzz | |
0: aaabcxyzpqrrrabbxyyyypqqqAzz | |
aaabcxyzpqrrrabbxyyyypqqqqAzz | |
0: aaabcxyzpqrrrabbxyyyypqqqqAzz | |
aaabcxyzpqrrrabbxyyyypqqqqqAzz | |
0: aaabcxyzpqrrrabbxyyyypqqqqqAzz | |
aaabcxyzpqrrrabbxyyyypqqqqqqAzz | |
0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz | |
aaaabcxyzpqrrrabbxyyyypqAzz | |
0: aaaabcxyzpqrrrabbxyyyypqAzz | |
abxyzzpqrrrabbxyyyypqAzz | |
0: abxyzzpqrrrabbxyyyypqAzz | |
aabxyzzzpqrrrabbxyyyypqAzz | |
0: aabxyzzzpqrrrabbxyyyypqAzz | |
aaabxyzzzzpqrrrabbxyyyypqAzz | |
0: aaabxyzzzzpqrrrabbxyyyypqAzz | |
aaaabxyzzzzpqrrrabbxyyyypqAzz | |
0: aaaabxyzzzzpqrrrabbxyyyypqAzz | |
abcxyzzpqrrrabbxyyyypqAzz | |
0: abcxyzzpqrrrabbxyyyypqAzz | |
aabcxyzzzpqrrrabbxyyyypqAzz | |
0: aabcxyzzzpqrrrabbxyyyypqAzz | |
aaabcxyzzzzpqrrrabbxyyyypqAzz | |
0: aaabcxyzzzzpqrrrabbxyyyypqAzz | |
aaaabcxyzzzzpqrrrabbxyyyypqAzz | |
0: aaaabcxyzzzzpqrrrabbxyyyypqAzz | |
aaaabcxyzzzzpqrrrabbbxyyyypqAzz | |
0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz | |
aaaabcxyzzzzpqrrrabbbxyyyyypqAzz | |
0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz | |
aaabcxyzpqrrrabbxyyyypABzz | |
0: aaabcxyzpqrrrabbxyyyypABzz | |
aaabcxyzpqrrrabbxyyyypABBzz | |
0: aaabcxyzpqrrrabbxyyyypABBzz | |
>>>aaabxyzpqrrrabbxyyyypqAzz | |
0: aaabxyzpqrrrabbxyyyypqAzz | |
>aaaabxyzpqrrrabbxyyyypqAzz | |
0: aaaabxyzpqrrrabbxyyyypqAzz | |
>>>>abcxyzpqrrrabbxyyyypqAzz | |
0: abcxyzpqrrrabbxyyyypqAzz | |
*** Failers | |
No match | |
abxyzpqrrabbxyyyypqAzz | |
No match | |
abxyzpqrrrrabbxyyyypqAzz | |
No match | |
abxyzpqrrrabxyyyypqAzz | |
No match | |
aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz | |
No match | |
aaaabcxyzzzzpqrrrabbbxyyypqAzz | |
No match | |
aaabcxyzpqrrrabbxyyyypqqqqqqqAzz | |
No match | |
/^(abc){1,2}zz/ | |
abczz | |
0: abczz | |
1: abc | |
abcabczz | |
0: abcabczz | |
1: abc | |
*** Failers | |
No match | |
zz | |
No match | |
abcabcabczz | |
No match | |
>>abczz | |
No match | |
/^(b+|a){1,2}c/ | |
bc | |
0: bc | |
1: b | |
bbc | |
0: bbc | |
1: bb | |
bbbc | |
0: bbbc | |
1: bbb | |
bac | |
0: bac | |
1: a | |
bbac | |
0: bbac | |
1: a | |
aac | |
0: aac | |
1: a | |
abbbbbbbbbbbc | |
0: abbbbbbbbbbbc | |
1: bbbbbbbbbbb | |
bbbbbbbbbbbac | |
0: bbbbbbbbbbbac | |
1: a | |
*** Failers | |
No match | |
aaac | |
No match | |
abbbbbbbbbbbac | |
No match | |
/^[]cde]/ | |
]thing | |
0: ] | |
cthing | |
0: c | |
dthing | |
0: d | |
ething | |
0: e | |
*** Failers | |
No match | |
athing | |
No match | |
fthing | |
No match | |
/^[^]cde]/ | |
athing | |
0: a | |
fthing | |
0: f | |
*** Failers | |
0: * | |
]thing | |
No match | |
cthing | |
No match | |
dthing | |
No match | |
ething | |
No match | |
/^[0-9]+$/ | |
0 | |
0: 0 | |
1 | |
0: 1 | |
2 | |
0: 2 | |
3 | |
0: 3 | |
4 | |
0: 4 | |
5 | |
0: 5 | |
6 | |
0: 6 | |
7 | |
0: 7 | |
8 | |
0: 8 | |
9 | |
0: 9 | |
10 | |
0: 10 | |
100 | |
0: 100 | |
*** Failers | |
No match | |
abc | |
No match | |
/^.*nter/ | |
enter | |
0: enter | |
inter | |
0: inter | |
uponter | |
0: uponter | |
/^xxx[0-9]+$/ | |
xxx0 | |
0: xxx0 | |
xxx1234 | |
0: xxx1234 | |
*** Failers | |
No match | |
xxx | |
No match | |
/^.+[0-9][0-9][0-9]$/ | |
x123 | |
0: x123 | |
xx123 | |
0: xx123 | |
123456 | |
0: 123456 | |
*** Failers | |
No match | |
123 | |
No match | |
x1234 | |
0: x1234 | |
/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ | |
abc!pqr=apquxz.ixr.zzz.ac.uk | |
0: abc!pqr=apquxz.ixr.zzz.ac.uk | |
1: abc | |
2: pqr | |
*** Failers | |
No match | |
!pqr=apquxz.ixr.zzz.ac.uk | |
No match | |
abc!=apquxz.ixr.zzz.ac.uk | |
No match | |
abc!pqr=apquxz:ixr.zzz.ac.uk | |
No match | |
abc!pqr=apquxz.ixr.zzz.ac.ukk | |
No match | |
/:/ | |
Well, we need a colon: somewhere | |
0: : | |
*** Fail if we don't | |
No match | |
/([0-9a-f:]+)$/i | |
0abc | |
0: 0abc | |
1: 0abc | |
abc | |
0: abc | |
1: abc | |
fed | |
0: fed | |
1: fed | |
E | |
0: E | |
1: E | |
:: | |
0: :: | |
1: :: | |
5f03:12C0::932e | |
0: 5f03:12C0::932e | |
1: 5f03:12C0::932e | |
fed def | |
0: def | |
1: def | |
Any old stuff | |
0: ff | |
1: ff | |
*** Failers | |
No match | |
0zzz | |
No match | |
gzzz | |
No match | |
Any old rubbish | |
No match | |
/^.*\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/ | |
.1.2.3 | |
0: .1.2.3 | |
1: 1 | |
2: 2 | |
3: 3 | |
A.12.123.0 | |
0: A.12.123.0 | |
1: 12 | |
2: 123 | |
3: 0 | |
*** Failers | |
No match | |
.1.2.3333 | |
No match | |
1.2.3 | |
No match | |
1234.2.3 | |
No match | |
/^([0-9]+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ | |
1 IN SOA non-sp1 non-sp2( | |
0: 1 IN SOA non-sp1 non-sp2( | |
1: 1 | |
2: non-sp1 | |
3: non-sp2 | |
1 IN SOA non-sp1 non-sp2 ( | |
0: 1 IN SOA non-sp1 non-sp2 ( | |
1: 1 | |
2: non-sp1 | |
3: non-sp2 | |
*** Failers | |
No match | |
1IN SOA non-sp1 non-sp2( | |
No match | |
/^[a-zA-Z0-9][a-zA-Z0-9-]*(\.[a-zA-Z0-9][a-zA-z0-9-]*)*\.$/ | |
a. | |
0: a. | |
Z. | |
0: Z. | |
2. | |
0: 2. | |
ab-c.pq-r. | |
0: ab-c.pq-r. | |
1: .pq-r | |
sxk.zzz.ac.uk. | |
0: sxk.zzz.ac.uk. | |
1: .uk | |
x-.y-. | |
0: x-.y-. | |
1: .y- | |
*** Failers | |
No match | |
-abc.peq. | |
No match | |
/^\*\.[a-z]([a-z0-9-]*[a-z0-9]+)?(\.[a-z]([a-z0-9-]*[a-z0-9]+)?)*$/ | |
*.a | |
0: *.a | |
*.b0-a | |
0: *.b0-a | |
1: 0-a | |
*.c3-b.c | |
0: *.c3-b.c | |
1: 3-b | |
2: .c | |
*.c-a.b-c | |
0: *.c-a.b-c | |
1: -a | |
2: .b-c | |
3: -c | |
*** Failers | |
No match | |
*.0 | |
No match | |
*.a- | |
No match | |
*.a-b.c- | |
No match | |
*.c-a.0-c | |
No match | |
/^[0-9a-f](\.[0-9a-f])*$/i | |
a.b.c.d | |
0: a.b.c.d | |
1: .d | |
A.B.C.D | |
0: A.B.C.D | |
1: .D | |
a.b.c.1.2.3.C | |
0: a.b.c.1.2.3.C | |
1: .C | |
/^".*"\s*(;.*)?$/ | |
"1234" | |
0: "1234" | |
"abcd" ; | |
0: "abcd" ; | |
1: ; | |
"" ; rhubarb | |
0: "" ; rhubarb | |
1: ; rhubarb | |
*** Failers | |
No match | |
"1234" : things | |
No match | |
/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ | |
abcdefhijklm | |
0: abcdefhijklm | |
1: abc | |
2: bc | |
3: c | |
4: def | |
5: ef | |
6: f | |
7: hij | |
8: ij | |
9: j | |
10: klm | |
11: lm | |
12: m | |
/^a*\w/ | |
z | |
0: z | |
az | |
0: az | |
aaaz | |
0: aaaz | |
a | |
0: a | |
aa | |
0: aa | |
aaaa | |
0: aaaa | |
a+ | |
0: a | |
aa+ | |
0: aa | |
/^a+\w/ | |
az | |
0: az | |
aaaz | |
0: aaaz | |
aa | |
0: aa | |
aaaa | |
0: aaaa | |
aa+ | |
0: aa | |
/^[0-9]{8}\w{2,}/ | |
1234567890 | |
0: 1234567890 | |
12345678ab | |
0: 12345678ab | |
12345678__ | |
0: 12345678__ | |
*** Failers | |
No match | |
1234567 | |
No match | |
/^[aeiou0-9]{4,5}$/ | |
uoie | |
0: uoie | |
1234 | |
0: 1234 | |
12345 | |
0: 12345 | |
aaaaa | |
0: aaaaa | |
*** Failers | |
No match | |
123456 | |
No match | |
/\`(abc|def)=(\1){2,3}\'/ | |
abc=abcabc | |
0: abc=abcabc | |
1: abc | |
2: abc | |
def=defdefdef | |
0: def=defdefdef | |
1: def | |
2: def | |
*** Failers | |
No match | |
abc=defdef | |
No match | |
/(cat(a(ract|tonic)|erpillar)) \1()2(3)/ | |
cataract cataract23 | |
0: cataract cataract23 | |
1: cataract | |
2: aract | |
3: ract | |
4: | |
5: 3 | |
catatonic catatonic23 | |
0: catatonic catatonic23 | |
1: catatonic | |
2: atonic | |
3: tonic | |
4: | |
5: 3 | |
caterpillar caterpillar23 | |
0: caterpillar caterpillar23 | |
1: caterpillar | |
2: erpillar | |
3: <unset> | |
4: | |
5: 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 abcd Mon Sep 01 12:33:02 1997 | |
0: From abcd Mon Sep 01 12:33 | |
1: abcd | |
/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}[0-9]{1,2}\s+[0-9][0-9]:[0-9][0-9]/ | |
From abcd Mon Sep 01 12:33:02 1997 | |
0: From abcd Mon Sep 01 12:33 | |
1: Sep | |
From abcd Mon Sep 1 12:33:02 1997 | |
0: From abcd Mon Sep 1 12:33 | |
1: Sep | |
*** Failers | |
No match | |
From abcd Sep 01 12:33:02 1997 | |
No match | |
/^(a)\1{2,3}(.)/ | |
aaab | |
0: aaab | |
1: a | |
2: b | |
aaaab | |
0: aaaab | |
1: a | |
2: b | |
aaaaab | |
0: aaaaa | |
1: a | |
2: a | |
aaaaaab | |
0: aaaaa | |
1: a | |
2: a | |
/^[ab]{1,3}(ab*|b)/ | |
aabbbbb | |
0: aabbbbb | |
1: abbbbb | |
/^(cow|)\1(bell)/ | |
cowcowbell | |
0: cowcowbell | |
1: cow | |
2: bell | |
bell | |
0: bell | |
1: | |
2: bell | |
*** Failers | |
No match | |
cowbell | |
No match | |
/^(a|)\1+b/ | |
aab | |
0: aab | |
1: a | |
aaaab | |
0: aaaab | |
1: a | |
b | |
0: b | |
1: | |
*** Failers | |
No match | |
ab | |
No match | |
/^(a|)\1{2}b/ | |
aaab | |
0: aaab | |
1: a | |
b | |
0: b | |
1: | |
*** Failers | |
No match | |
ab | |
No match | |
aab | |
No match | |
aaaab | |
No match | |
/^(a|)\1{2,3}b/ | |
aaab | |
0: aaab | |
1: a | |
aaaab | |
0: aaaab | |
1: a | |
b | |
0: b | |
1: | |
*** Failers | |
No match | |
ab | |
No match | |
aab | |
No match | |
aaaaab | |
No match | |
/ab{1,3}bc/ | |
abbbbc | |
0: abbbbc | |
abbbc | |
0: abbbc | |
abbc | |
0: abbc | |
*** Failers | |
No match | |
abc | |
No match | |
abbbbbc | |
No match | |
/([^.]*)\.([^:]*):[T ]+(.*)/ | |
track1.title:TBlah blah blah | |
0: track1.title:TBlah blah blah | |
1: track1 | |
2: title | |
3: Blah blah blah | |
/([^.]*)\.([^:]*):[T ]+(.*)/i | |
track1.title:TBlah blah blah | |
0: track1.title:TBlah blah blah | |
1: track1 | |
2: title | |
3: Blah blah blah | |
/([^.]*)\.([^:]*):[t ]+(.*)/i | |
track1.title:TBlah blah blah | |
0: track1.title:TBlah blah blah | |
1: track1 | |
2: title | |
3: Blah blah blah | |
/^abc$/ | |
abc | |
0: abc | |
*** Failers | |
No match | |
/[-az]+/ | |
az- | |
0: az- | |
*** Failers | |
0: a | |
b | |
No match | |
/[az-]+/ | |
za- | |
0: za- | |
*** Failers | |
0: a | |
b | |
No match | |
/[a-z]+/ | |
abcdxyz | |
0: abcdxyz | |
/[0-9-]+/ | |
12-34 | |
0: 12-34 | |
*** Failers | |
No match | |
aaa | |
No match | |
/(abc)\1/i | |
abcabc | |
0: abcabc | |
1: abc | |
ABCabc | |
0: ABCabc | |
1: ABC | |
abcABC | |
0: abcABC | |
1: abc | |
/a{0}bc/ | |
bc | |
0: bc | |
/^([^a])([^b])([^c]*)([^d]{3,4})/ | |
baNOTccccd | |
0: baNOTcccc | |
1: b | |
2: a | |
3: NOT | |
4: cccc | |
baNOTcccd | |
0: baNOTccc | |
1: b | |
2: a | |
3: NOT | |
4: ccc | |
baNOTccd | |
0: baNOTcc | |
1: b | |
2: a | |
3: NO | |
4: Tcc | |
bacccd | |
0: baccc | |
1: b | |
2: a | |
3: | |
4: ccc | |
*** Failers | |
0: *** Failers | |
1: * | |
2: * | |
3: * Fail | |
4: ers | |
anything | |
No match | |
baccd | |
No match | |
/[^a]/ | |
Abc | |
0: A | |
/[^a]/i | |
Abc | |
0: b | |
/[^a]+/ | |
AAAaAbc | |
0: AAA | |
/[^a]+/i | |
AAAaAbc | |
0: bc | |
/[^k]$/ | |
abc | |
0: c | |
*** Failers | |
0: s | |
abk | |
No match | |
/[^k]{2,3}$/ | |
abc | |
0: abc | |
kbc | |
0: bc | |
kabc | |
0: abc | |
*** Failers | |
0: ers | |
abk | |
No match | |
akb | |
No match | |
akk | |
No match | |
/^[0-9]{8,}@.+[^k]$/ | |
12345678@a.b.c.d | |
0: 12345678@a.b.c.d | |
123456789@x.y.z | |
0: 123456789@x.y.z | |
*** Failers | |
No match | |
12345678@x.y.uk | |
No match | |
1234567@a.b.c.d | |
No match | |
/(a)\1{8,}/ | |
aaaaaaaaa | |
0: aaaaaaaaa | |
1: a | |
aaaaaaaaaa | |
0: aaaaaaaaaa | |
1: a | |
*** Failers | |
No match | |
aaaaaaa | |
No match | |
/[^a]/ | |
aaaabcd | |
0: b | |
aaAabcd | |
0: A | |
/[^a]/i | |
aaaabcd | |
0: b | |
aaAabcd | |
0: b | |
/[^az]/ | |
aaaabcd | |
0: b | |
aaAabcd | |
0: A | |
/[^az]/i | |
aaaabcd | |
0: b | |
aaAabcd | |
0: b | |
/P[^*]TAIRE[^*]{1,6}LL/ | |
xxxxxxxxxxxPSTAIREISLLxxxxxxxxx | |
0: PSTAIREISLL | |
/P[^*]TAIRE[^*]{1,}LL/ | |
xxxxxxxxxxxPSTAIREISLLxxxxxxxxx | |
0: PSTAIREISLL | |
/(\.[0-9][0-9][1-9]?)[0-9]+/ | |
1.230003938 | |
0: .230003938 | |
1: .23 | |
1.875000282 | |
0: .875000282 | |
1: .875 | |
1.235 | |
0: .235 | |
1: .23 | |
/\b(foo)\s+(\w+)/i | |
Food is on the foo table | |
0: foo table | |
1: foo | |
2: table | |
/foo(.*)bar/ | |
The food is under the bar in the barn. | |
0: food is under the bar in the bar | |
1: d is under the bar in the | |
/(.*)([0-9]*)/ | |
I have 2 numbers: 53147 | |
0: I have 2 numbers: 53147 | |
1: I have 2 numbers: 53147 | |
2: | |
/(.*)([0-9]+)/ | |
I have 2 numbers: 53147 | |
0: I have 2 numbers: 53147 | |
1: I have 2 numbers: 5314 | |
2: 7 | |
/(.*)([0-9]+)$/ | |
I have 2 numbers: 53147 | |
0: I have 2 numbers: 53147 | |
1: I have 2 numbers: 5314 | |
2: 7 | |
/(.*)\b([0-9]+)$/ | |
I have 2 numbers: 53147 | |
0: I have 2 numbers: 53147 | |
1: I have 2 numbers: | |
2: 53147 | |
/(.*[^0-9])([0-9]+)$/ | |
I have 2 numbers: 53147 | |
0: I have 2 numbers: 53147 | |
1: I have 2 numbers: | |
2: 53147 | |
/[[:digit:]][[:digit:]]\/[[:digit:]][[:digit:]]\/[[:digit:]][[:digit:]][[:digit:]][[:digit:]]/ | |
01/01/2000 | |
0: 01/01/2000 | |
/^(a){0,0}/ | |
bcd | |
0: | |
abc | |
0: | |
aab | |
0: | |
/^(a){0,1}/ | |
bcd | |
0: | |
abc | |
0: a | |
1: a | |
aab | |
0: a | |
1: a | |
/^(a){0,2}/ | |
bcd | |
0: | |
abc | |
0: a | |
1: a | |
aab | |
0: aa | |
1: a | |
/^(a){0,3}/ | |
bcd | |
0: | |
abc | |
0: a | |
1: a | |
aab | |
0: aa | |
1: a | |
aaa | |
0: aaa | |
1: a | |
/^(a){0,}/ | |
bcd | |
0: | |
abc | |
0: a | |
1: a | |
aab | |
0: aa | |
1: a | |
aaa | |
0: aaa | |
1: a | |
aaaaaaaa | |
0: aaaaaaaa | |
1: a | |
/^(a){1,1}/ | |
bcd | |
No match | |
abc | |
0: a | |
1: a | |
aab | |
0: a | |
1: a | |
/^(a){1,2}/ | |
bcd | |
No match | |
abc | |
0: a | |
1: a | |
aab | |
0: aa | |
1: a | |
/^(a){1,3}/ | |
bcd | |
No match | |
abc | |
0: a | |
1: a | |
aab | |
0: aa | |
1: a | |
aaa | |
0: aaa | |
1: a | |
/^(a){1,}/ | |
bcd | |
No match | |
abc | |
0: a | |
1: a | |
aab | |
0: aa | |
1: a | |
aaa | |
0: aaa | |
1: a | |
aaaaaaaa | |
0: aaaaaaaa | |
1: a | |
/^[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 | |
0: 123456654321 | |
/^[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]]/ | |
123456654321 | |
0: 123456654321 | |
/^[abc]{12}/ | |
abcabcabcabc | |
0: abcabcabcabc | |
/^[a-c]{12}/ | |
abcabcabcabc | |
0: abcabcabcabc | |
/^(a|b|c){12}/ | |
abcabcabcabc | |
0: abcabcabcabc | |
1: c | |
/^[abcdefghijklmnopqrstuvwxy0123456789]/ | |
n | |
0: n | |
*** Failers | |
No match | |
z | |
No match | |
/abcde{0,0}/ | |
abcd | |
0: abcd | |
*** Failers | |
No match | |
abce | |
No match | |
/ab[cd]{0,0}e/ | |
abe | |
0: abe | |
*** Failers | |
No match | |
abcde | |
No match | |
/ab(c){0,0}d/ | |
abd | |
0: abd | |
*** Failers | |
No match | |
abcd | |
No match | |
/a(b*)/ | |
a | |
0: a | |
1: | |
ab | |
0: ab | |
1: b | |
abbbb | |
0: abbbb | |
1: bbbb | |
*** Failers | |
0: a | |
1: | |
bbbbb | |
No match | |
/ab[0-9]{0}e/ | |
abe | |
0: abe | |
*** Failers | |
No match | |
ab1e | |
No match | |
/(A|B)*CD/ | |
CD | |
0: CD | |
/(AB)*\1/ | |
ABABAB | |
0: ABABAB | |
1: AB | |
/([0-9]+)(\w)/ | |
12345a | |
0: 12345a | |
1: 12345 | |
2: a | |
12345+ | |
0: 12345 | |
1: 1234 | |
2: 5 | |
/(abc|)+/ | |
abc | |
0: abc | |
1: abc | |
abcabc | |
0: abcabc | |
1: abc | |
abcabcabc | |
0: abcabcabc | |
1: abc | |
xyz | |
0: | |
1: | |
/([a]*)*/ | |
a | |
0: a | |
1: a | |
aaaaa | |
0: aaaaa | |
1: aaaaa | |
/([ab]*)*/ | |
a | |
0: a | |
1: a | |
b | |
0: b | |
1: b | |
ababab | |
0: ababab | |
1: ababab | |
aaaabcde | |
0: aaaab | |
1: aaaab | |
bbbb | |
0: bbbb | |
1: bbbb | |
/([^a]*)*/ | |
b | |
0: b | |
1: b | |
bbbb | |
0: bbbb | |
1: bbbb | |
aaa | |
0: | |
/([^ab]*)*/ | |
cccc | |
0: cccc | |
1: cccc | |
abab | |
0: | |
/abc/ | |
abc | |
0: abc | |
xabcy | |
0: abc | |
ababc | |
0: abc | |
*** Failers | |
No match | |
xbc | |
No match | |
axc | |
No match | |
abx | |
No match | |
/ab*c/ | |
abc | |
0: abc | |
/ab*bc/ | |
abc | |
0: abc | |
abbc | |
0: abbc | |
abbbbc | |
0: abbbbc | |
/.{1}/ | |
abbbbc | |
0: a | |
/.{3,4}/ | |
abbbbc | |
0: abbb | |
/ab{0,}bc/ | |
abbbbc | |
0: abbbbc | |
/ab+bc/ | |
abbc | |
0: abbc | |
*** Failers | |
No match | |
abc | |
No match | |
abq | |
No match | |
/ab+bc/ | |
abbbbc | |
0: abbbbc | |
/ab{1,}bc/ | |
abbbbc | |
0: abbbbc | |
/ab{1,3}bc/ | |
abbbbc | |
0: abbbbc | |
/ab{3,4}bc/ | |
abbbbc | |
0: abbbbc | |
/ab{4,5}bc/ | |
*** Failers | |
No match | |
abq | |
No match | |
abbbbc | |
No match | |
/ab?bc/ | |
abbc | |
0: abbc | |
abc | |
0: abc | |
/ab{0,1}bc/ | |
abc | |
0: abc | |
/ab?c/ | |
abc | |
0: abc | |
/ab{0,1}c/ | |
abc | |
0: abc | |
/^abc$/ | |
abc | |
0: abc | |
*** Failers | |
No match | |
abbbbc | |
No match | |
abcc | |
No match | |
/^abc/ | |
abcc | |
0: abc | |
/abc$/ | |
aabc | |
0: abc | |
*** Failers | |
No match | |
aabc | |
0: abc | |
aabcd | |
No match | |
/^/ | |
abc | |
0: | |
/$/ | |
abc | |
0: | |
/a.c/ | |
abc | |
0: abc | |
axc | |
0: axc | |
/a.*c/ | |
axyzc | |
0: axyzc | |
/a[bc]d/ | |
abd | |
0: abd | |
*** Failers | |
No match | |
axyzd | |
No match | |
abc | |
No match | |
/a[b-d]e/ | |
ace | |
0: ace | |
/a[b-d]/ | |
aac | |
0: ac | |
/a[-b]/ | |
a- | |
0: a- | |
/a[b-]/ | |
a- | |
0: a- | |
/a[]]b/ | |
a]b | |
0: a]b | |
/a[^bc]d/ | |
aed | |
0: aed | |
*** Failers | |
No match | |
abd | |
No match | |
abd | |
No match | |
/a[^-b]c/ | |
adc | |
0: adc | |
/a[^]b]c/ | |
adc | |
0: adc | |
*** Failers | |
No match | |
a-c | |
0: a-c | |
a]c | |
No match | |
/\ba\b/ | |
a- | |
0: a | |
-a | |
0: a | |
-a- | |
0: a | |
/\by\b/ | |
*** Failers | |
No match | |
xy | |
No match | |
yz | |
No match | |
xyz | |
No match | |
/\Ba\B/ | |
*** Failers | |
0: a | |
a- | |
No match | |
-a | |
No match | |
-a- | |
No match | |
/\By\b/ | |
xy | |
0: y | |
/\by\B/ | |
yz | |
0: y | |
/\By\B/ | |
xyz | |
0: y | |
/\w/ | |
a | |
0: a | |
/\W/ | |
- | |
0: - | |
*** Failers | |
0: * | |
- | |
0: - | |
a | |
No match | |
/a\sb/ | |
a b | |
0: a b | |
/a\Sb/ | |
a-b | |
0: a-b | |
*** Failers | |
No match | |
a-b | |
0: a-b | |
a b | |
No match | |
/[0-9]/ | |
1 | |
0: 1 | |
/[^0-9]/ | |
- | |
0: - | |
*** Failers | |
0: * | |
- | |
0: - | |
1 | |
No match | |
/ab|cd/ | |
abc | |
0: ab | |
abcd | |
0: ab | |
/()ef/ | |
def | |
0: ef | |
1: | |
/a\(b/ | |
a(b | |
0: a(b | |
/a\(*b/ | |
ab | |
0: ab | |
a((b | |
0: a((b | |
/((a))/ | |
abc | |
0: a | |
1: a | |
2: a | |
/(a)b(c)/ | |
abc | |
0: abc | |
1: a | |
2: c | |
/a+b+c/ | |
aabbabc | |
0: abc | |
/a{1,}b{1,}c/ | |
aabbabc | |
0: abc | |
/(a+|b)*/ | |
ab | |
0: ab | |
1: b | |
/(a+|b){0,}/ | |
ab | |
0: ab | |
1: b | |
/(a+|b)+/ | |
ab | |
0: ab | |
1: b | |
/(a+|b){1,}/ | |
ab | |
0: ab | |
1: b | |
/(a+|b)?/ | |
ab | |
0: a | |
1: a | |
/(a+|b){0,1}/ | |
ab | |
0: a | |
1: a | |
/[^ab]*/ | |
cde | |
0: cde | |
/abc/ | |
*** Failers | |
No match | |
b | |
No match | |
/a*/ | |
/([abc])*d/ | |
abbbcd | |
0: abbbcd | |
1: c | |
/([abc])*bcd/ | |
abcd | |
0: abcd | |
1: a | |
/a|b|c|d|e/ | |
e | |
0: e | |
/(a|b|c|d|e)f/ | |
ef | |
0: ef | |
1: e | |
/abcd*efg/ | |
abcdefg | |
0: abcdefg | |
/ab*/ | |
xabyabbbz | |
0: ab | |
xayabbbz | |
0: a | |
/(ab|cd)e/ | |
abcde | |
0: cde | |
1: cd | |
/[abhgefdc]ij/ | |
hij | |
0: hij | |
/(abc|)ef/ | |
abcdef | |
0: ef | |
1: | |
/(a|b)c*d/ | |
abcd | |
0: bcd | |
1: b | |
/(ab|ab*)bc/ | |
abc | |
0: abc | |
1: a | |
/a([bc]*)c*/ | |
abc | |
0: abc | |
1: bc | |
/a([bc]*)(c*d)/ | |
abcd | |
0: abcd | |
1: bc | |
2: d | |
/a([bc]+)(c*d)/ | |
abcd | |
0: abcd | |
1: bc | |
2: d | |
/a([bc]*)(c+d)/ | |
abcd | |
0: abcd | |
1: b | |
2: cd | |
/a[bcd]*dcdcde/ | |
adcdcde | |
0: adcdcde | |
/a[bcd]+dcdcde/ | |
*** Failers | |
No match | |
abcde | |
No match | |
adcdcde | |
No match | |
/(ab|a)b*c/ | |
abc | |
0: abc | |
1: ab | |
/((a)(b)c)(d)/ | |
abcd | |
0: abcd | |
1: abc | |
2: a | |
3: b | |
4: d | |
/[a-zA-Z_][a-zA-Z0-9_]*/ | |
alpha | |
0: alpha | |
/^a(bc+|b[eh])g|.h$/ | |
abh | |
0: bh | |
/(bc+d$|ef*g.|h?i(j|k))/ | |
effgz | |
0: effgz | |
1: effgz | |
ij | |
0: ij | |
1: ij | |
2: j | |
reffgz | |
0: effgz | |
1: effgz | |
*** Failers | |
No match | |
effg | |
No match | |
bcdd | |
No match | |
/((((((((((a))))))))))/ | |
a | |
0: a | |
1: a | |
2: a | |
3: a | |
4: a | |
5: a | |
6: a | |
7: a | |
8: a | |
9: a | |
10: a | |
/((((((((((a))))))))))\9/ | |
aa | |
0: aa | |
1: a | |
2: a | |
3: a | |
4: a | |
5: a | |
6: a | |
7: a | |
8: a | |
9: a | |
10: a | |
/(((((((((a)))))))))/ | |
a | |
0: a | |
1: a | |
2: a | |
3: a | |
4: a | |
5: a | |
6: a | |
7: a | |
8: a | |
9: a | |
/multiple words of text/ | |
*** Failers | |
No match | |
aa | |
No match | |
uh-uh | |
No match | |
/multiple words/ | |
multiple words, yeah | |
0: multiple words | |
/(.*)c(.*)/ | |
abcde | |
0: abcde | |
1: ab | |
2: de | |
/\((.*), (.*)\)/ | |
(a, b) | |
0: (a, b) | |
1: a | |
2: b | |
/abcd/ | |
abcd | |
0: abcd | |
/a(bc)d/ | |
abcd | |
0: abcd | |
1: bc | |
/a[-]?c/ | |
ac | |
0: ac | |
/(abc)\1/ | |
abcabc | |
0: abcabc | |
1: abc | |
/([a-c]*)\1/ | |
abcabc | |
0: abcabc | |
1: abc | |
/(a)|\1/ | |
a | |
0: a | |
1: a | |
*** Failers | |
0: a | |
1: a | |
ab | |
0: a | |
1: a | |
x | |
No match | |
/abc/i | |
ABC | |
0: ABC | |
XABCY | |
0: ABC | |
ABABC | |
0: ABC | |
*** Failers | |
No match | |
aaxabxbaxbbx | |
No match | |
XBC | |
No match | |
AXC | |
No match | |
ABX | |
No match | |
/ab*c/i | |
ABC | |
0: ABC | |
/ab*bc/i | |
ABC | |
0: ABC | |
ABBC | |
0: ABBC | |
/ab+bc/i | |
*** Failers | |
No match | |
ABC | |
No match | |
ABQ | |
No match | |
/ab+bc/i | |
ABBBBC | |
0: ABBBBC | |
/^abc$/i | |
ABC | |
0: ABC | |
*** Failers | |
No match | |
ABBBBC | |
No match | |
ABCC | |
No match | |
/^abc/i | |
ABCC | |
0: ABC | |
/abc$/i | |
AABC | |
0: ABC | |
/^/i | |
ABC | |
0: | |
/$/i | |
ABC | |
0: | |
/a.c/i | |
ABC | |
0: ABC | |
AXC | |
0: AXC | |
/a.*c/i | |
*** Failers | |
No match | |
AABC | |
0: AABC | |
AXYZD | |
No match | |
/a[bc]d/i | |
ABD | |
0: ABD | |
/a[b-d]e/i | |
ACE | |
0: ACE | |
*** Failers | |
No match | |
ABC | |
No match | |
ABD | |
No match | |
/a[b-d]/i | |
AAC | |
0: AC | |
/a[-b]/i | |
A- | |
0: A- | |
/a[b-]/i | |
A- | |
0: A- | |
/a[]]b/i | |
A]B | |
0: A]B | |
/a[^bc]d/i | |
AED | |
0: AED | |
/a[^-b]c/i | |
ADC | |
0: ADC | |
*** Failers | |
No match | |
ABD | |
No match | |
A-C | |
No match | |
/a[^]b]c/i | |
ADC | |
0: ADC | |
/ab|cd/i | |
ABC | |
0: AB | |
ABCD | |
0: AB | |
/()ef/i | |
DEF | |
0: EF | |
1: | |
/$b/i | |
*** Failers | |
No match | |
A]C | |
No match | |
B | |
No match | |
/a\(b/i | |
A(B | |
0: A(B | |
/a\(*b/i | |
AB | |
0: AB | |
A((B | |
0: A((B | |
/((a))/i | |
ABC | |
0: A | |
1: A | |
2: A | |
/(a)b(c)/i | |
ABC | |
0: ABC | |
1: A | |
2: C | |
/a+b+c/i | |
AABBABC | |
0: ABC | |
/a{1,}b{1,}c/i | |
AABBABC | |
0: ABC | |
/(a+|b)*/i | |
AB | |
0: AB | |
1: B | |
/(a+|b){0,}/i | |
AB | |
0: AB | |
1: B | |
/(a+|b)+/i | |
AB | |
0: AB | |
1: B | |
/(a+|b){1,}/i | |
AB | |
0: AB | |
1: B | |
/(a+|b)?/i | |
AB | |
0: A | |
1: A | |
/(a+|b){0,1}/i | |
AB | |
0: A | |
1: A | |
/[^ab]*/i | |
CDE | |
0: CDE | |
/([abc])*d/i | |
ABBBCD | |
0: ABBBCD | |
1: C | |
/([abc])*bcd/i | |
ABCD | |
0: ABCD | |
1: A | |
/a|b|c|d|e/i | |
E | |
0: E | |
/(a|b|c|d|e)f/i | |
EF | |
0: EF | |
1: E | |
/abcd*efg/i | |
ABCDEFG | |
0: ABCDEFG | |
/ab*/i | |
XABYABBBZ | |
0: AB | |
XAYABBBZ | |
0: A | |
/(ab|cd)e/i | |
ABCDE | |
0: CDE | |
1: CD | |
/[abhgefdc]ij/i | |
HIJ | |
0: HIJ | |
/^(ab|cd)e/i | |
ABCDE | |
No match | |
/(abc|)ef/i | |
ABCDEF | |
0: EF | |
1: | |
/(a|b)c*d/i | |
ABCD | |
0: BCD | |
1: B | |
/(ab|ab*)bc/i | |
ABC | |
0: ABC | |
1: A | |
/a([bc]*)c*/i | |
ABC | |
0: ABC | |
1: BC | |
/a([bc]*)(c*d)/i | |
ABCD | |
0: ABCD | |
1: BC | |
2: D | |
/a([bc]+)(c*d)/i | |
ABCD | |
0: ABCD | |
1: BC | |
2: D | |
/a([bc]*)(c+d)/i | |
ABCD | |
0: ABCD | |
1: B | |
2: CD | |
/a[bcd]*dcdcde/i | |
ADCDCDE | |
0: ADCDCDE | |
/a[bcd]+dcdcde/i | |
/(ab|a)b*c/i | |
ABC | |
0: ABC | |
1: AB | |
/((a)(b)c)(d)/i | |
ABCD | |
0: ABCD | |
1: ABC | |
2: A | |
3: B | |
4: D | |
/[a-zA-Z_][a-zA-Z0-9_]*/i | |
ALPHA | |
0: ALPHA | |
/^a(bc+|b[eh])g|.h$/i | |
ABH | |
0: BH | |
/(bc+d$|ef*g.|h?i(j|k))/i | |
EFFGZ | |
0: EFFGZ | |
1: EFFGZ | |
IJ | |
0: IJ | |
1: IJ | |
2: J | |
REFFGZ | |
0: EFFGZ | |
1: EFFGZ | |
*** Failers | |
No match | |
ADCDCDE | |
No match | |
EFFG | |
No match | |
BCDD | |
No match | |
/((((((((((a))))))))))/i | |
A | |
0: A | |
1: A | |
2: A | |
3: A | |
4: A | |
5: A | |
6: A | |
7: A | |
8: A | |
9: A | |
10: A | |
/((((((((((a))))))))))\9/i | |
AA | |
0: AA | |
1: A | |
2: A | |
3: A | |
4: A | |
5: A | |
6: A | |
7: A | |
8: A | |
9: A | |
10: A | |
/(((((((((a)))))))))/i | |
A | |
0: A | |
1: A | |
2: A | |
3: A | |
4: A | |
5: A | |
6: A | |
7: A | |
8: A | |
9: A | |
/multiple words of text/i | |
*** Failers | |
No match | |
AA | |
No match | |
UH-UH | |
No match | |
/multiple words/i | |
MULTIPLE WORDS, YEAH | |
0: MULTIPLE WORDS | |
/(.*)c(.*)/i | |
ABCDE | |
0: ABCDE | |
1: AB | |
2: DE | |
/\((.*), (.*)\)/i | |
(A, B) | |
0: (A, B) | |
1: A | |
2: B | |
/abcd/i | |
ABCD | |
0: ABCD | |
/a(bc)d/i | |
ABCD | |
0: ABCD | |
1: BC | |
/a[-]?c/i | |
AC | |
0: AC | |
/(abc)\1/i | |
ABCABC | |
0: ABCABC | |
1: ABC | |
/([a-c]*)\1/i | |
ABCABC | |
0: ABCABC | |
1: ABC | |
/((foo)|(bar))*/ | |
foobar | |
0: foobar | |
1: bar | |
2: foo | |
3: bar | |
/^(.+)?B/ | |
AB | |
0: AB | |
1: A | |
/^([^a-z])|(\^)$/ | |
. | |
0: . | |
1: . | |
/^[<>]&/ | |
<&OUT | |
0: <& | |
/^(){3,5}/ | |
abc | |
0: | |
1: | |
/^(a+)*ax/ | |
aax | |
0: aax | |
1: a | |
/^((a|b)+)*ax/ | |
aax | |
0: aax | |
1: a | |
2: a | |
/^((a|bc)+)*ax/ | |
aax | |
0: aax | |
1: a | |
2: a | |
/(a|x)*ab/ | |
cab | |
0: ab | |
/(a)*ab/ | |
cab | |
0: ab | |
/(ab)[0-9]\1/i | |
Ab4ab | |
0: Ab4ab | |
1: Ab | |
ab4Ab | |
0: ab4Ab | |
1: ab | |
/foo\w*[0-9]{4}baz/ | |
foobar1234baz | |
0: foobar1234baz | |
/(\w+:)+/ | |
one: | |
0: one: | |
1: one: | |
/((\w|:)+::)?(\w+)$/ | |
abcd | |
0: abcd | |
1: <unset> | |
2: <unset> | |
3: abcd | |
xy:z:::abcd | |
0: xy:z:::abcd | |
1: xy:z::: | |
2: : | |
3: abcd | |
/^[^bcd]*(c+)/ | |
aexycd | |
0: aexyc | |
1: c | |
/(a*)b+/ | |
caab | |
0: aab | |
1: aa | |
/((\w|:)+::)?(\w+)$/ | |
abcd | |
0: abcd | |
1: <unset> | |
2: <unset> | |
3: abcd | |
xy:z:::abcd | |
0: xy:z:::abcd | |
1: xy:z::: | |
2: : | |
3: abcd | |
*** Failers | |
0: Failers | |
1: <unset> | |
2: <unset> | |
3: Failers | |
abcd: | |
No match | |
abcd: | |
No match | |
/^[^bcd]*(c+)/ | |
aexycd | |
0: aexyc | |
1: c | |
/((Z)+|A)*/ | |
ZABCDEFG | |
0: ZA | |
1: A | |
2: Z | |
/(Z()|A)*/ | |
ZABCDEFG | |
0: ZA | |
1: A | |
2: | |
/(Z(())|A)*/ | |
ZABCDEFG | |
0: ZA | |
1: A | |
2: | |
3: | |
/(.*)[0-9]+\1/ | |
abc123abc | |
0: abc123abc | |
1: abc | |
abc123bc | |
0: bc123bc | |
1: bc | |
/((.*))[0-9]+\1/ | |
abc123abc | |
0: abc123abc | |
1: abc | |
2: abc | |
abc123bc | |
0: bc123bc | |
1: bc | |
2: bc | |
/^a{2,5}$/ | |
aa | |
0: aa | |
aaa | |
0: aaa | |
aaaa | |
0: aaaa | |
aaaaa | |
0: aaaaa | |
*** Failers | |
No match | |
a | |
No match | |
b | |
No match | |
aaaaab | |
No match | |
aaaaaa |