abc	abc	y	$&	abc
abc	xbc	n	-	-
abc	axc	n	-	-
abc	abx	n	-	-
abc	xabcy	y	$&	abc
abc	ababc	y	$&	abc
ab*c	abc	y	$&	abc
ab*bc	abc	y	$&	abc
ab*bc	abbc	y	$&	abbc
ab*bc	abbbbc	y	$&	abbbbc
ab{0,}bc	abbbbc	y	$&	abbbbc
ab+bc	abbc	y	$&	abbc
ab+bc	abc	n	-	-
ab+bc	abq	n	-	-
ab{1,}bc	abq	n	-	-
ab+bc	abbbbc	y	$&	abbbbc
ab{1,}bc	abbbbc	y	$&	abbbbc
ab{1,3}bc	abbbbc	y	$&	abbbbc
ab{3,4}bc	abbbbc	y	$&	abbbbc
ab{4,5}bc	abbbbc	n	-	-
ab?bc	abbc	y	$&	abbc
ab?bc	abc	y	$&	abc
ab{0,1}bc	abc	y	$&	abc
ab?bc	abbbbc	n	-	-
ab?c	abc	y	$&	abc
ab{0,1}c	abc	y	$&	abc
^abc$	abc	y	$&	abc
^abc$	abcc	n	-	-
^abc	abcc	y	$&	abc
^abc$	aabc	n	-	-
abc$	aabc	y	$&	abc
^	abc	y	$&	
$	abc	y	$&	
a.c	abc	y	$&	abc
a.c	axc	y	$&	axc
a.*c	axyzc	y	$&	axyzc
a.*c	axyzd	n	-	-
a[bc]d	abc	n	-	-
a[bc]d	abd	y	$&	abd
a[b-d]e	abd	n	-	-
a[b-d]e	ace	y	$&	ace
a[b-d]	aac	y	$&	ac
a[-b]	a-	y	$&	a-
a[b-]	a-	y	$&	a-
a[b-a]	-	c	-	/a[b-a]/: invalid [] range in regexp
a[]b	-	c	-	/a[]b/: unmatched [] in regexp
a[	-	c	-	/a[/: unmatched [] in regexp
a]	a]	y	$&	a]
a[]]b	a]b	y	$&	a]b
a[^bc]d	aed	y	$&	aed
a[^bc]d	abd	n	-	-
a[^-b]c	adc	y	$&	adc
a[^-b]c	a-c	n	-	-
a[^]b]c	a]c	n	-	-
a[^]b]c	adc	y	$&	adc
\ba\b	a-	y	-	-
\ba\b	-a	y	-	-
\ba\b	-a-	y	-	-
\by\b	xy	n	-	-
\by\b	yz	n	-	-
\by\b	xyz	n	-	-
\Ba\B	a-	n	-	-
\Ba\B	-a	n	-	-
\Ba\B	-a-	n	-	-
\By\b	xy	y	-	-
\by\B	yz	y	-	-
\By\B	xyz	y	-	-
\w	a	y	-	-
\w	-	n	-	-
\W	a	n	-	-
\W	-	y	-	-
a\sb	a b	y	-	-
a\sb	a-b	n	-	-
a\Sb	a b	n	-	-
a\Sb	a-b	y	-	-
\d	1	y	-	-
\d	-	n	-	-
\D	1	n	-	-
\D	-	y	-	-
[\w]	a	y	-	-
[\w]	-	n	-	-
[\W]	a	n	-	-
[\W]	-	y	-	-
a[\s]b	a b	y	-	-
a[\s]b	a-b	n	-	-
a[\S]b	a b	n	-	-
a[\S]b	a-b	y	-	-
[\d]	1	y	-	-
[\d]	-	n	-	-
[\D]	1	n	-	-
[\D]	-	y	-	-
ab|cd	abc	y	$&	ab
ab|cd	abcd	y	$&	ab
()ef	def	y	$&-$1	ef-
*a	-	c	-	/*a/: ?+*{} follows nothing in regexp
(*)b	-	c	-	/(*)b/: ?+*{} follows nothing in regexp
$b	b	n	-	-
a\	-	c	-	Search pattern not terminated
a\(b	a(b	y	$&-$1	a(b-
a\(*b	ab	y	$&	ab
a\(*b	a((b	y	$&	a((b
a\\b	a\b	y	$&	a\b
abc)	-	c	-	/abc)/: unmatched () in regexp
(abc	-	c	-	/(abc/: unmatched () in regexp
((a))	abc	y	$&-$1-$2	a-a-a
(a)b(c)	abc	y	$&-$1-$2	abc-a-c
a+b+c	aabbabc	y	$&	abc
a{1,}b{1,}c	aabbabc	y	$&	abc
a**	-	c	-	/a**/: nested *?+ in regexp
a.+?c	abcabc	y	$&	abc
(a+|b)*	ab	y	$&-$1	ab-b
(a+|b){0,}	ab	y	$&-$1	ab-b
(a+|b)+	ab	y	$&-$1	ab-b
(a+|b){1,}	ab	y	$&-$1	ab-b
(a+|b)?	ab	y	$&-$1	a-a
(a+|b){0,1}	ab	y	$&-$1	a-a
)(	-	c	-	/)(/: unmatched () in regexp
[^ab]*	cde	y	$&	cde
abc		n	-	-
a*		y	$&	
([abc])*d	abbbcd	y	$&-$1	abbbcd-c
([abc])*bcd	abcd	y	$&-$1	abcd-a
a|b|c|d|e	e	y	$&	e
(a|b|c|d|e)f	ef	y	$&-$1	ef-e
abcd*efg	abcdefg	y	$&	abcdefg
ab*	xabyabbbz	y	$&	ab
ab*	xayabbbz	y	$&	a
(ab|cd)e	abcde	y	$&-$1	cde-cd
[abhgefdc]ij	hij	y	$&	hij
^(ab|cd)e	abcde	n	x$1y	xy
(abc|)ef	abcdef	y	$&-$1	ef-
(a|b)c*d	abcd	y	$&-$1	bcd-b
(ab|ab*)bc	abc	y	$&-$1	abc-a
a([bc]*)c*	abc	y	$&-$1	abc-bc
a([bc]*)(c*d)	abcd	y	$&-$1-$2	abcd-bc-d
a([bc]+)(c*d)	abcd	y	$&-$1-$2	abcd-bc-d
a([bc]*)(c+d)	abcd	y	$&-$1-$2	abcd-b-cd
a[bcd]*dcdcde	adcdcde	y	$&	adcdcde
a[bcd]+dcdcde	adcdcde	n	-	-
(ab|a)b*c	abc	y	$&-$1	abc-ab
((a)(b)c)(d)	abcd	y	$1-$2-$3-$4	abc-a-b-d
[a-zA-Z_][a-zA-Z0-9_]*	alpha	y	$&	alpha
^a(bc+|b[eh])g|.h$	abh	y	$&-$1	bh-
(bc+d$|ef*g.|h?i(j|k))	effgz	y	$&-$1-$2	effgz-effgz-
(bc+d$|ef*g.|h?i(j|k))	ij	y	$&-$1-$2	ij-ij-j
(bc+d$|ef*g.|h?i(j|k))	effg	n	-	-
(bc+d$|ef*g.|h?i(j|k))	bcdd	n	-	-
(bc+d$|ef*g.|h?i(j|k))	reffgz	y	$&-$1-$2	effgz-effgz-
((((((((((a))))))))))	a	y	$10	a
((((((((((a))))))))))\10	aa	y	$&	aa
((((((((((a))))))))))\41	aa	n	-	-
((((((((((a))))))))))\41	a!	y	$&	a!
(((((((((a)))))))))	a	y	$&	a
multiple words of text	uh-uh	n	-	-
multiple words	multiple words, yeah	y	$&	multiple words
(.*)c(.*)	abcde	y	$&-$1-$2	abcde-ab-de
\((.*), (.*)\)	(a, b)	y	($2, $1)	(b, a)
[k]	ab	n	-	-
abcd	abcd	y	$&-\$&-\\$&	abcd-$&-\abcd
a(bc)d	abcd	y	$1-\$1-\\$1	bc-$1-\bc
a[-]?c	ac	y	$&	ac
(abc)\1	abcabc	y	$1	abc
([a-c]*)\1	abcabc	y	$1	abc
'abc'i	ABC	y	$&	ABC
'abc'i	XBC	n	-	-
'abc'i	AXC	n	-	-
'abc'i	ABX	n	-	-
'abc'i	XABCY	y	$&	ABC
'abc'i	ABABC	y	$&	ABC
'ab*c'i	ABC	y	$&	ABC
'ab*bc'i	ABC	y	$&	ABC
'ab*bc'i	ABBC	y	$&	ABBC
'ab*?bc'i	ABBBBC	y	$&	ABBBBC
'ab{0,}?bc'i	ABBBBC	y	$&	ABBBBC
'ab+?bc'i	ABBC	y	$&	ABBC
'ab+bc'i	ABC	n	-	-
'ab+bc'i	ABQ	n	-	-
'ab{1,}bc'i	ABQ	n	-	-
'ab+bc'i	ABBBBC	y	$&	ABBBBC
'ab{1,}?bc'i	ABBBBC	y	$&	ABBBBC
'ab{1,3}?bc'i	ABBBBC	y	$&	ABBBBC
'ab{3,4}?bc'i	ABBBBC	y	$&	ABBBBC
'ab{4,5}?bc'i	ABBBBC	n	-	-
'ab??bc'i	ABBC	y	$&	ABBC
'ab??bc'i	ABC	y	$&	ABC
'ab{0,1}?bc'i	ABC	y	$&	ABC
'ab??bc'i	ABBBBC	n	-	-
'ab??c'i	ABC	y	$&	ABC
'ab{0,1}?c'i	ABC	y	$&	ABC
'^abc$'i	ABC	y	$&	ABC
'^abc$'i	ABCC	n	-	-
'^abc'i	ABCC	y	$&	ABC
'^abc$'i	AABC	n	-	-
'abc$'i	AABC	y	$&	ABC
'^'i	ABC	y	$&	
'$'i	ABC	y	$&	
'a.c'i	ABC	y	$&	ABC
'a.c'i	AXC	y	$&	AXC
'a.*?c'i	AXYZC	y	$&	AXYZC
'a.*c'i	AXYZD	n	-	-
'a[bc]d'i	ABC	n	-	-
'a[bc]d'i	ABD	y	$&	ABD
'a[b-d]e'i	ABD	n	-	-
'a[b-d]e'i	ACE	y	$&	ACE
'a[b-d]'i	AAC	y	$&	AC
'a[-b]'i	A-	y	$&	A-
'a[b-]'i	A-	y	$&	A-
'a[b-a]'i	-	c	-	/a[b-a]/: invalid [] range in regexp
'a[]b'i	-	c	-	/a[]b/: unmatched [] in regexp
'a['i	-	c	-	/a[/: unmatched [] in regexp
'a]'i	A]	y	$&	A]
'a[]]b'i	A]B	y	$&	A]B
'a[^bc]d'i	AED	y	$&	AED
'a[^bc]d'i	ABD	n	-	-
'a[^-b]c'i	ADC	y	$&	ADC
'a[^-b]c'i	A-C	n	-	-
'a[^]b]c'i	A]C	n	-	-
'a[^]b]c'i	ADC	y	$&	ADC
'ab|cd'i	ABC	y	$&	AB
'ab|cd'i	ABCD	y	$&	AB
'()ef'i	DEF	y	$&-$1	EF-
'*a'i	-	c	-	/*a/: ?+*{} follows nothing in regexp
'(*)b'i	-	c	-	/(*)b/: ?+*{} follows nothing in regexp
'$b'i	B	n	-	-
'a\'i	-	c	-	Search pattern not terminated
'a\(b'i	A(B	y	$&-$1	A(B-
'a\(*b'i	AB	y	$&	AB
'a\(*b'i	A((B	y	$&	A((B
'a\\b'i	A\B	y	$&	A\B
'abc)'i	-	c	-	/abc)/: unmatched () in regexp
'(abc'i	-	c	-	/(abc/: unmatched () in regexp
'((a))'i	ABC	y	$&-$1-$2	A-A-A
'(a)b(c)'i	ABC	y	$&-$1-$2	ABC-A-C
'a+b+c'i	AABBABC	y	$&	ABC
'a{1,}b{1,}c'i	AABBABC	y	$&	ABC
'a**'i	-	c	-	/a**/: nested *?+ in regexp
'a.+?c'i	ABCABC	y	$&	ABC
'a.*?c'i	ABCABC	y	$&	ABC
'a.{0,5}?c'i	ABCABC	y	$&	ABC
'(a+|b)*'i	AB	y	$&-$1	AB-B
'(a+|b){0,}'i	AB	y	$&-$1	AB-B
'(a+|b)+'i	AB	y	$&-$1	AB-B
'(a+|b){1,}'i	AB	y	$&-$1	AB-B
'(a+|b)?'i	AB	y	$&-$1	A-A
'(a+|b){0,1}'i	AB	y	$&-$1	A-A
'(a+|b){0,1}?'i	AB	y	$&-$1	-
')('i	-	c	-	/)(/: unmatched () in regexp
'[^ab]*'i	CDE	y	$&	CDE
'abc'i		n	-	-
'a*'i		y	$&	
'([abc])*d'i	ABBBCD	y	$&-$1	ABBBCD-C
'([abc])*bcd'i	ABCD	y	$&-$1	ABCD-A
'a|b|c|d|e'i	E	y	$&	E
'(a|b|c|d|e)f'i	EF	y	$&-$1	EF-E
'abcd*efg'i	ABCDEFG	y	$&	ABCDEFG
'ab*'i	XABYABBBZ	y	$&	AB
'ab*'i	XAYABBBZ	y	$&	A
'(ab|cd)e'i	ABCDE	y	$&-$1	CDE-CD
'[abhgefdc]ij'i	HIJ	y	$&	HIJ
'^(ab|cd)e'i	ABCDE	n	x$1y	XY
'(abc|)ef'i	ABCDEF	y	$&-$1	EF-
'(a|b)c*d'i	ABCD	y	$&-$1	BCD-B
'(ab|ab*)bc'i	ABC	y	$&-$1	ABC-A
'a([bc]*)c*'i	ABC	y	$&-$1	ABC-BC
'a([bc]*)(c*d)'i	ABCD	y	$&-$1-$2	ABCD-BC-D
'a([bc]+)(c*d)'i	ABCD	y	$&-$1-$2	ABCD-BC-D
'a([bc]*)(c+d)'i	ABCD	y	$&-$1-$2	ABCD-B-CD
'a[bcd]*dcdcde'i	ADCDCDE	y	$&	ADCDCDE
'a[bcd]+dcdcde'i	ADCDCDE	n	-	-
'(ab|a)b*c'i	ABC	y	$&-$1	ABC-AB
'((a)(b)c)(d)'i	ABCD	y	$1-$2-$3-$4	ABC-A-B-D
'[a-zA-Z_][a-zA-Z0-9_]*'i	ALPHA	y	$&	ALPHA
'^a(bc+|b[eh])g|.h$'i	ABH	y	$&-$1	BH-
'(bc+d$|ef*g.|h?i(j|k))'i	EFFGZ	y	$&-$1-$2	EFFGZ-EFFGZ-
'(bc+d$|ef*g.|h?i(j|k))'i	IJ	y	$&-$1-$2	IJ-IJ-J
'(bc+d$|ef*g.|h?i(j|k))'i	EFFG	n	-	-
'(bc+d$|ef*g.|h?i(j|k))'i	BCDD	n	-	-
'(bc+d$|ef*g.|h?i(j|k))'i	REFFGZ	y	$&-$1-$2	EFFGZ-EFFGZ-
'((((((((((a))))))))))'i	A	y	$10	A
'((((((((((a))))))))))\10'i	AA	y	$&	AA
'((((((((((a))))))))))\41'i	AA	n	-	-
'((((((((((a))))))))))\41'i	A!	y	$&	A!
'(((((((((a)))))))))'i	A	y	$&	A
'(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))'i	A	y	$1	A
'(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))'i	C	y	$1	C
'multiple words of text'i	UH-UH	n	-	-
'multiple words'i	MULTIPLE WORDS, YEAH	y	$&	MULTIPLE WORDS
'(.*)c(.*)'i	ABCDE	y	$&-$1-$2	ABCDE-AB-DE
'\((.*), (.*)\)'i	(A, B)	y	($2, $1)	(B, A)
'[k]'i	AB	n	-	-
'abcd'i	ABCD	y	$&-\$&-\\$&	ABCD-$&-\ABCD
'a(bc)d'i	ABCD	y	$1-\$1-\\$1	BC-$1-\BC
'a[-]?c'i	AC	y	$&	AC
'(abc)\1'i	ABCABC	y	$1	ABC
'([a-c]*)\1'i	ABCABC	y	$1	ABC
a(?!b).	abad	y	$&	ad
a(?=d).	abad	y	$&	ad
a(?=c|d).	abad	y	$&	ad
a(?:b|c|d)(.)	ace	y	$1	e
a(?:b|c|d)*(.)	ace	y	$1	e
a(?:b|c|d)+?(.)	ace	y	$1	e
a(?:b|(c|e){1,2}?|d)+?(.)	ace	y	$1$2	ce
^(.+)?B	AB	y	$1	A
'([a-z]+)\s\1'i	Aa aa 	y	$&-$1	Aa aa-Aa
'([a-z]+)\s\1'i	Ab ab 	y	$&-$1	Ab ab-Ab
foo\w*\d{4}baz	foobar1234baz	y	$&	foobar1234baz
((foo)|(bar))*	foobar	y	$1-$2-$3	bar-foo-bar
:(?:	-	c	-	Sequence (? incomplete
