|  | # 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 |