mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	2004-11-23 Paolo Bonzini <bonzini@gnu.org> * posix/regcomp.c (analyze_tree): Always call calc_epsdest. (calc_inveclosure): Use re_node_set_insert_last. (parse_dup_op): Lower X{1,5} to (X(X(X(XX?)?)?)?)? rather than X?X?X?X?X?. * posix/regex_internal.h (re_node_set_insert_last): New declaration. * posix/regex_internal.c (re_node_set_insert_last): New function. * posix/PCRE.tests: Add testcases.
		
			
				
	
	
		
			2387 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			2387 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# 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
 |