Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/cmd/re/pcre-1.dat
1808 views
: converted from the pcre testdata/testinput1 2001-06-15

E	the quick brown fox	the quick brown fox	(0,19)
E	SAME	The quick brown FOX	NOMATCH
E	SAME	What do you know about the quick brown fox?	(23,42)
E	SAME	What do you know about THE QUICK BROWN FOX?	NOMATCH
Ei	The quick brown fox	the quick brown fox	(0,19)
Ei	SAME	The quick brown FOX	(0,19)
Ei	SAME	What do you know about the quick brown fox?	(23,42)
Ei	SAME	What do you know about THE QUICK BROWN FOX?	(23,42)
E$	abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\$\\\\\\?caxyz	abcd\t\n\r\f\a\e9;$\\?caxyz	(0,20)
E	a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz	abxyzpqrrrabbxyyyypqAzz	(0,23)
E	SAME	abxyzpqrrrabbxyyyypqAzz	(0,23)
E	SAME	aabxyzpqrrrabbxyyyypqAzz	(0,24)
E	SAME	aaabxyzpqrrrabbxyyyypqAzz	(0,25)
E	SAME	aaaabxyzpqrrrabbxyyyypqAzz	(0,26)
E	SAME	abcxyzpqrrrabbxyyyypqAzz	(0,24)
E	SAME	aabcxyzpqrrrabbxyyyypqAzz	(0,25)
E	SAME	aaabcxyzpqrrrabbxyyyypAzz	(0,25)
E	SAME	aaabcxyzpqrrrabbxyyyypqAzz	(0,26)
E	SAME	aaabcxyzpqrrrabbxyyyypqqAzz	(0,27)
E	SAME	aaabcxyzpqrrrabbxyyyypqqqAzz	(0,28)
E	SAME	aaabcxyzpqrrrabbxyyyypqqqqAzz	(0,29)
E	SAME	aaabcxyzpqrrrabbxyyyypqqqqqAzz	(0,30)
E	SAME	aaabcxyzpqrrrabbxyyyypqqqqqqAzz	(0,31)
E	SAME	aaaabcxyzpqrrrabbxyyyypqAzz	(0,27)
E	SAME	abxyzzpqrrrabbxyyyypqAzz	(0,24)
E	SAME	aabxyzzzpqrrrabbxyyyypqAzz	(0,26)
E	SAME	aaabxyzzzzpqrrrabbxyyyypqAzz	(0,28)
E	SAME	aaaabxyzzzzpqrrrabbxyyyypqAzz	(0,29)
E	SAME	abcxyzzpqrrrabbxyyyypqAzz	(0,25)
E	SAME	aabcxyzzzpqrrrabbxyyyypqAzz	(0,27)
E	SAME	aaabcxyzzzzpqrrrabbxyyyypqAzz	(0,29)
E	SAME	aaaabcxyzzzzpqrrrabbxyyyypqAzz	(0,30)
E	SAME	aaaabcxyzzzzpqrrrabbbxyyyypqAzz	(0,31)
E	SAME	aaaabcxyzzzzpqrrrabbbxyyyyypqAzz	(0,32)
E	SAME	aaabcxyzpqrrrabbxyyyypABzz	(0,26)
E	SAME	aaabcxyzpqrrrabbxyyyypABBzz	(0,27)
E	SAME	>>>aaabxyzpqrrrabbxyyyypqAzz	(3,28)
E	SAME	>aaaabxyzpqrrrabbxyyyypqAzz	(1,27)
E	SAME	>>>>abcxyzpqrrrabbxyyyypqAzz	(4,28)
E	SAME	abxyzpqrrabbxyyyypqAzz	NOMATCH
E	SAME	abxyzpqrrrrabbxyyyypqAzz	NOMATCH
E	SAME	abxyzpqrrrabxyyyypqAzz	NOMATCH
E	SAME	aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz	NOMATCH
E	SAME	aaaabcxyzzzzpqrrrabbbxyyypqAzz	NOMATCH
E	SAME	aaabcxyzpqrrrabbxyyyypqqqqqqqAzz	NOMATCH
E	^(abc){1,2}zz	abczz	(0,5)(0,3)
E	SAME	abcabczz	(0,8)(3,6)
E	SAME	zz	NOMATCH
E	SAME	abcabcabczz	NOMATCH
E	SAME	>>abczz	NOMATCH
E	^(b+?|a){1,2}?c	bc	(0,2)(0,1)
E	SAME	bbc	(0,3)(1,2)
E	SAME	bbbc	(0,4)(1,3)
E	SAME	bac	(0,3)(1,2)
E	SAME	bbac	(0,4)(2,3)
E	SAME	aac	(0,3)(1,2)
E	SAME	abbbbbbbbbbbc	(0,13)(1,12)
E	SAME	bbbbbbbbbbbac	(0,13)(11,12)
E	SAME	aaac	NOMATCH
E	SAME	abbbbbbbbbbbac	NOMATCH
E	^(b+|a){1,2}c	bc	(0,2)(0,1)
E	SAME	bbc	(0,3)(0,2)
E	SAME	bbbc	(0,4)(0,3)
E	SAME	bac	(0,3)(1,2)
E	SAME	bbac	(0,4)(2,3)
E	SAME	aac	(0,3)(1,2)
E	SAME	abbbbbbbbbbbc	(0,13)(1,12)
E	SAME	bbbbbbbbbbbac	(0,13)(11,12)
E	SAME	aaac	NOMATCH
E	SAME	abbbbbbbbbbbac	NOMATCH
E	^(b+|a){1,2}?bc	bbc	(0,3)(0,1)
E	^(b*|ba){1,2}?bc	babc	(0,4)(0,2)
E	SAME	bbabc	(0,5)(1,3)
E	SAME	bababc	(0,6)(2,4)
E	SAME	bababbc	NOMATCH
E	SAME	babababc	NOMATCH
E	^(ba|b*){1,2}?bc	babc	(0,4)(0,2)
E	SAME	bbabc	(0,5)(1,3)
E	SAME	bababc	(0,6)(2,4)
E	SAME	bababbc	NOMATCH
E	SAME	babababc	NOMATCH
E$	^\\ca\\cA\\c[\\c{\\c:	\x01\x01\e;z	(0,5)
E$kv	^[ab\\]cde]	athing	(0,1)
E$kv	SAME	bthing	(0,1)
E$kv	SAME	]thing	(0,1)
E$kv	SAME	cthing	(0,1)
E$kv	SAME	dthing	(0,1)
E$kv	SAME	ething	(0,1)
E$kv	SAME	fthing	NOMATCH
E$kv	SAME	[thing	NOMATCH
E$kv	SAME	\\thing	NOMATCH
E	^[]cde]	]thing	(0,1)
E	SAME	cthing	(0,1)
E	SAME	dthing	(0,1)
E	SAME	ething	(0,1)
E	SAME	athing	NOMATCH
E	SAME	fthing	NOMATCH
E$kv	^[^ab\\]cde]	fthing	(0,1)
E$kv	SAME	[thing	(0,1)
E$kv	SAME	\\thing	(0,1)
E$kv	SAME	athing	NOMATCH
E$kv	SAME	bthing	NOMATCH
E$kv	SAME	]thing	NOMATCH
E$kv	SAME	cthing	NOMATCH
E$kv	SAME	dthing	NOMATCH
E$kv	SAME	ething	NOMATCH
E	^[^]cde]	athing	(0,1)
E	SAME	fthing	(0,1)
E	SAME	]thing	NOMATCH
E	SAME	cthing	NOMATCH
E	SAME	dthing	NOMATCH
E	SAME	ething	NOMATCH
E$x	^\\�	�	(0,1)
E	^�	�	(0,1)
E	^[0-9]+$	0	(0,1)
E	SAME	1	(0,1)
E	SAME	2	(0,1)
E	SAME	3	(0,1)
E	SAME	4	(0,1)
E	SAME	5	(0,1)
E	SAME	6	(0,1)
E	SAME	7	(0,1)
E	SAME	8	(0,1)
E	SAME	9	(0,1)
E	SAME	10	(0,2)
E	SAME	100	(0,3)
E	SAME	abc	NOMATCH
E	^.*nter	enter	(0,5)
E	SAME	inter	(0,5)
E	SAME	uponter	(0,7)
E	^xxx[0-9]+$	xxx0	(0,4)
E	SAME	xxx1234	(0,7)
E	SAME	xxx	NOMATCH
E	^.+[0-9][0-9][0-9]$	x123	(0,4)
E	SAME	xx123	(0,5)
E	SAME	123456	(0,6)
E	SAME	123	NOMATCH
E	SAME	x1234	(0,5)
E	^.+?[0-9][0-9][0-9]$	x123	(0,4)
E	SAME	xx123	(0,5)
E	SAME	123456	(0,6)
E	SAME	123	NOMATCH
E	SAME	x1234	(0,5)
E$	^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$	abc!pqr=apquxz.ixr.zzz.ac.uk	(0,28)(0,3)(4,7)
E$	SAME	!pqr=apquxz.ixr.zzz.ac.uk	NOMATCH
E$	SAME	abc!=apquxz.ixr.zzz.ac.uk	NOMATCH
E$	SAME	abc!pqr=apquxz:ixr.zzz.ac.uk	NOMATCH
E$	SAME	abc!pqr=apquxz.ixr.zzz.ac.ukk	NOMATCH
E	:	Well, we need a colon: somewhere	(21,22)
E	SAME	*** Fail if we don't	NOMATCH
E$iv	([\\da-f:]+)$	0abc	(0,4)(0,4)
E$iv	SAME	abc	(0,3)(0,3)
E$iv	SAME	fed	(0,3)(0,3)
E$iv	SAME	E	(0,1)(0,1)
E$iv	SAME	::	(0,2)(0,2)
E$iv	SAME	5f03:12C0::932e	(0,15)(0,15)
E$iv	SAME	fed def	(4,7)(4,7)
E$iv	SAME	Any old stuff	(11,13)(11,13)
E$iv	SAME	0zzz	NOMATCH
E$iv	SAME	gzzz	NOMATCH
E$iv	SAME	fed\x20	NOMATCH
E$iv	SAME	Any old rubbish	NOMATCH
E$	^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$	.1.2.3	(0,6)(1,2)(3,4)(5,6)
E$	SAME	A.12.123.0	(0,10)(2,4)(5,8)(9,10)
E$	SAME	.1.2.3333	NOMATCH
E$	SAME	1.2.3	NOMATCH
E$	SAME	1234.2.3	NOMATCH
E$	^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$	1 IN SOA non-sp1 non-sp2(	(0,25)(0,1)(9,16)(17,24)
E$	SAME	1    IN    SOA    non-sp1    non-sp2   (	(0,40)(0,1)(18,25)(29,36)
E$	SAME	1IN SOA non-sp1 non-sp2(	NOMATCH
E$kv	^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$	a.	(0,2)
E$kv	SAME	Z.	(0,2)
E$kv	SAME	2.	(0,2)
E$kv	SAME	ab-c.pq-r.	(0,10)(4,9)
E$kv	SAME	sxk.zzz.ac.uk.	(0,14)(10,13)
E$kv	SAME	x-.y-.	(0,6)(2,5)
E$kv	SAME	-abc.peq.	NOMATCH
E$kv	^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$	*.a	(0,3)
E$kv	SAME	*.b0-a	(0,6)(3,6)
E$kv	SAME	*.c3-b.c	(0,8)(3,6)(6,8)
E$kv	SAME	*.c-a.b-c	(0,9)(3,5)(5,9)(7,9)
E$kv	SAME	*.0	NOMATCH
E$kv	SAME	*.a-	NOMATCH
E$kv	SAME	*.a-b.c-	NOMATCH
E$kv	SAME	*.c-a.0-c	NOMATCH
E	^(?=ab(de))(abd)(e)	abde	(0,4)(2,4)(0,3)(3,4)
E	^(?!(ab)de|x)(abd)(f)	abdf	(0,4)(?,?)(0,3)(3,4)
E	^(?=(ab(cd)))(ab)	abcd	(0,2)(0,4)(2,4)(0,2)
E$iv	^[\\da-f](\\.[\\da-f])*$	a.b.c.d	(0,7)(5,7)
E$iv	SAME	A.B.C.D	(0,7)(5,7)
E$iv	SAME	a.b.c.1.2.3.C	(0,13)(11,13)
E$	^".*"\\s*(;.*)?$	"1234"	(0,6)
E$	SAME	"abcd" ;	(0,8)(7,8)
E$	SAME	"" ; rhubarb	(0,12)(3,12)
E$	SAME	"1234" : things	NOMATCH
E$	^$	NULL	(0,0)
E$c	   ^    a   (?# begins with a)  b\\sc (?# then b c) $ (?# then end)	ab c	(0,4)
E$c	SAME	abc	NOMATCH
E$c	SAME	ab cde	NOMATCH
E$	(?x)   ^    a   (?# begins with a)  b\\sc (?# then b c) $ (?# then end)	ab c	(0,4)
E$	SAME	abc	NOMATCH
E$	SAME	ab cde	NOMATCH
E$c	^   a\\ b[c ]d       $	a bcd	(0,5)
E$c	SAME	a b d	(0,5)
E$c	SAME	abcd	NOMATCH
E$c	SAME	ab d	NOMATCH
E	^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$	abcdefhijklm	(0,12)(0,3)(1,3)(2,3)(3,6)(4,6)(5,6)(6,9)(7,9)(8,9)(9,12)(10,12)(11,12)
E	^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$	abcdefhijklm	(0,12)(1,3)(2,3)(4,6)(5,6)(7,9)(8,9)(10,12)(11,12)
E$v	^[\\w][\\W][\\s][\\S][\\d][\\D][\\f][\\n][\\c]][\\022]	a+ Z0+\x0c\n\x1d\x12	(0,10)
E$	^[.^$|()*+?{,}]+	.^$(*+)|{?,?}	(0,13)
E$	^a*\\w	z	(0,1)
E$	SAME	az	(0,2)
E$	SAME	aaaz	(0,4)
E$	SAME	a	(0,1)
E$	SAME	aa	(0,2)
E$	SAME	aaaa	(0,4)
E$	SAME	a+	(0,1)
E$	SAME	aa+	(0,2)
E$	^a*?\\w	z	(0,1)
E$	SAME	az	(0,1)
E$	SAME	aaaz	(0,1)
E$	SAME	a	(0,1)
E$	SAME	aa	(0,1)
E$	SAME	aaaa	(0,1)
E$	SAME	a+	(0,1)
E$	SAME	aa+	(0,1)
E$	^a+\\w	az	(0,2)
E$	SAME	aaaz	(0,4)
E$	SAME	aa	(0,2)
E$	SAME	aaaa	(0,4)
E$	SAME	aa+	(0,2)
E$	^a+?\\w	az	(0,2)
E$	SAME	aaaz	(0,2)
E$	SAME	aa	(0,2)
E$	SAME	aaaa	(0,2)
E$	SAME	aa+	(0,2)
E$	^\\d{8}\\w{2,}	1234567890	(0,10)
E$	SAME	12345678ab	(0,10)
E$	SAME	12345678__	(0,10)
E$	SAME	1234567	NOMATCH
E$v	^[aeiou\\d]{4,5}$	uoie	(0,4)
E$v	SAME	1234	(0,4)
E$v	SAME	12345	(0,5)
E$v	SAME	aaaaa	(0,5)
E$v	SAME	123456	NOMATCH
E$v	^[aeiou\\d]{4,5}?	uoie	(0,4)
E$v	SAME	1234	(0,4)
E$v	SAME	12345	(0,4)
E$v	SAME	aaaaa	(0,4)
E$v	SAME	123456	(0,4)
E$	\\A(abc|def)=(\\1){2,3}\\Z	abc=abcabc	(0,10)(0,3)(7,10)
E$	SAME	def=defdefdef	(0,13)(0,3)(10,13)
E$	SAME	abc=defdef	NOMATCH
E$h	^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$	abcdefghijkcda2	(0,15)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(11,13)
E$h	SAME	abcdefghijkkkkcda2	(0,18)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(14,16)
E$	^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(?11)*((?3)(?4))(?1)(?#)2$	abcdefghijkcda2	(0,15)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(11,13)
E$	SAME	abcdefghijkkkkcda2	(0,18)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(14,16)
E$z	(cat(a(ract|tonic)|erpillar)) \\1()2(3)	cataract cataract23	(0,19)(0,8)(3,8)(4,8)(17,17)(18,19)
E$z	SAME	catatonic catatonic23	(0,21)(0,9)(3,9)(4,9)(19,19)(20,21)
E$z	SAME	caterpillar caterpillar23	(0,25)(0,11)(3,11)(?,?)(23,23)(24,25)
E	^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,27)(5,9)
E$	^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d	From abcd  Mon Sep 01 12:33:02 1997	(0,27)(15,19)
E$	SAME	From abcd  Mon Sep  1 12:33:02 1997	(0,27)(15,20)
E$	SAME	From abcd  Sep 01 12:33:02 1997	NOMATCH
Ej$	^12.34	12\n34	(0,5)
Ej$	SAME	12\r34	(0,5)
E$	\\w+(?=\\t)	the quick brown\t fox	(10,15)
E	foo(?!bar)(.*)	foobar is foolish see?	(10,22)(13,22)
E	(?:(?!foo)...|^.{0,2})bar(.*)	foobar crowbar etc	(8,18)(14,18)
E	SAME	barrel	(0,6)(3,6)
E	SAME	2barrel	(0,7)(4,7)
E	SAME	A barrel	(0,8)(5,8)
E$	^(\\D*)(?=\\d)(?!123)	abc456	(0,3)(0,3)
E$	SAME	abc123	NOMATCH
E$	^1234(?# test newlines\n\
  inside)	1234	(0,4)
E$c	^1234 #comment in extended re\n\
  	1234	(0,4)
E$c	#rhubarb\n\
  abcd	abcd	(0,4)
Ec	^abcd#rhubarb	abcd	(0,4)
E$	^(a)\\1{2,3}(.)	aaab	(0,4)(0,1)(3,4)
E$	SAME	aaaab	(0,5)(0,1)(4,5)
E$	SAME	aaaaab	(0,5)(0,1)(4,5)
E$	SAME	aaaaaab	(0,5)(0,1)(4,5)
E	(?!^)abc	the abc	(4,7)
E	SAME	abc	NOMATCH
E	(?=^)abc	abc	(0,3)
E	SAME	the abc	NOMATCH
E	^[ab]{1,3}(ab*|b)	aabbbbb	(0,7)(1,7)
E	^[ab]{1,3}?(ab*|b)	aabbbbb	(0,7)(1,7)
E	^[ab]{1,3}?(ab*?|b)	aabbbbb	(0,2)(1,2)
E	^[ab]{1,3}(ab*?|b)	aabbbbb	(0,4)(3,4)
E$ckv	  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*                          # optional leading comment\n\
(?:    (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
" (?:                      # opening quote...\n\
[^\\\\\\x80-\\xff\\n\\015"]                #   Anything except backslash and quote\n\
|                     #    or\n\
\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)\n\
)* "  # closing quote\n\
)                    # initial word\n\
(?:  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  \\.  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*   (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
" (?:                      # opening quote...\n\
[^\\\\\\x80-\\xff\\n\\015"]                #   Anything except backslash and quote\n\
|                     #    or\n\
\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)\n\
)* "  # closing quote\n\
)  )* # further okay, if led by a period\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  @  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*    (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|   \\[                         # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff\n\
\\]                        #           ]\n\
)                           # initial subdomain\n\
(?:                                  #\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  \\.                        # if led by a period...\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*   (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|   \\[                         # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff\n\
\\]                        #           ]\n\
)                     #   ...further okay\n\
)*\n\
# address\n\
|                     #  or\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
" (?:                      # opening quote...\n\
[^\\\\\\x80-\\xff\\n\\015"]                #   Anything except backslash and quote\n\
|                     #    or\n\
\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)\n\
)* "  # closing quote\n\
)             # one word, optionally followed by....\n\
(?:\n\
[^()<>@,;:".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037]  |  # atom and space parts, or...\n\
\\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)       |  # comments, or...\n\
\n\
" (?:                      # opening quote...\n\
[^\\\\\\x80-\\xff\\n\\015"]                #   Anything except backslash and quote\n\
|                     #    or\n\
\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)\n\
)* "  # closing quote\n\
# quoted strings\n\
)*\n\
<  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*                     # leading <\n\
(?:  @  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*    (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|   \\[                         # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff\n\
\\]                        #           ]\n\
)                           # initial subdomain\n\
(?:                                  #\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  \\.                        # if led by a period...\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*   (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|   \\[                         # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff\n\
\\]                        #           ]\n\
)                     #   ...further okay\n\
)*\n\
\n\
(?:  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  ,  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  @  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*    (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|   \\[                         # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff\n\
\\]                        #           ]\n\
)                           # initial subdomain\n\
(?:                                  #\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  \\.                        # if led by a period...\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*   (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|   \\[                         # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff\n\
\\]                        #           ]\n\
)                     #   ...further okay\n\
)*\n\
)* # further okay, if led by comma\n\
:                                # closing colon\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  )? #       optional route\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
" (?:                      # opening quote...\n\
[^\\\\\\x80-\\xff\\n\\015"]                #   Anything except backslash and quote\n\
|                     #    or\n\
\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)\n\
)* "  # closing quote\n\
)                    # initial word\n\
(?:  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  \\.  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*   (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
" (?:                      # opening quote...\n\
[^\\\\\\x80-\\xff\\n\\015"]                #   Anything except backslash and quote\n\
|                     #    or\n\
\\\\ [^\\x80-\\xff]           #   Escaped something (something != CR)\n\
)* "  # closing quote\n\
)  )* # further okay, if led by a period\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  @  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*    (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|   \\[                         # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff\n\
\\]                        #           ]\n\
)                           # initial subdomain\n\
(?:                                  #\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  \\.                        # if led by a period...\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*   (?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|   \\[                         # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*    #    stuff\n\
\\]                        #           ]\n\
)                     #   ...further okay\n\
)*\n\
#       address spec\n\
(?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*  > #                  trailing >\n\
# name and address\n\
)  (?: [\\040\\t] |  \\(\n\
(?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  |  \\( (?:  [^\\\\\\x80-\\xff\\n\\015()]  |  \\\\ [^\\x80-\\xff]  )* \\)  )*\n\
\\)  )*                       # optional trailing comment\n\
	Alan Other <[email protected]>	(0,25)
E$ckv	SAME	<[email protected]>	(1,13)
E$ckv	SAME	[email protected]	(0,12)
E$ckv	SAME	"A. Other" <[email protected]> (a comment)	(0,42)
E$ckv	SAME	A. Other <[email protected]> (a comment)	(2,40)
E$ckv	SAME	"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay	(0,61)
E$ckv	SAME	A missing angle <[email protected]	(17,32)
E$ckv	SAME	The quick brown fox	NOMATCH
E$ckv	[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional leading comment\n\
(?:\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
# Atom\n\
|                       #  or\n\
"                                     # "\n\
[^\\\\\\x80-\\xff\\n\\015"] *                            #   normal\n\
(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015"] * )*        #   ( special normal* )*\n\
"                                     #        "\n\
# Quoted string\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
\\.\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
# Atom\n\
|                       #  or\n\
"                                     # "\n\
[^\\\\\\x80-\\xff\\n\\015"] *                            #   normal\n\
(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015"] * )*        #   ( special normal* )*\n\
"                                     #        "\n\
# Quoted string\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# additional words\n\
)*\n\
@\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
\\[                            # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff\n\
\\]                           #           ]\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional trailing comments\n\
(?:\n\
\\.\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
\\[                            # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff\n\
\\]                           #           ]\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional trailing comments\n\
)*\n\
# address\n\
|                             #  or\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
# Atom\n\
|                       #  or\n\
"                                     # "\n\
[^\\\\\\x80-\\xff\\n\\015"] *                            #   normal\n\
(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015"] * )*        #   ( special normal* )*\n\
"                                     #        "\n\
# Quoted string\n\
)\n\
# leading word\n\
[^()<>@,;:".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] *               # "normal" atoms and or spaces\n\
(?:\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
|\n\
"                                     # "\n\
[^\\\\\\x80-\\xff\\n\\015"] *                            #   normal\n\
(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015"] * )*        #   ( special normal* )*\n\
"                                     #        "\n\
) # "special" comment or quoted string\n\
[^()<>@,;:".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] *            #  more "normal"\n\
)*\n\
<\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# <\n\
(?:\n\
@\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
\\[                            # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff\n\
\\]                           #           ]\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional trailing comments\n\
(?:\n\
\\.\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
\\[                            # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff\n\
\\]                           #           ]\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional trailing comments\n\
)*\n\
(?: ,\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
@\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
\\[                            # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff\n\
\\]                           #           ]\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional trailing comments\n\
(?:\n\
\\.\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
\\[                            # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff\n\
\\]                           #           ]\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional trailing comments\n\
)*\n\
)*  # additional domains\n\
:\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional trailing comments\n\
)?     #       optional route\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
# Atom\n\
|                       #  or\n\
"                                     # "\n\
[^\\\\\\x80-\\xff\\n\\015"] *                            #   normal\n\
(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015"] * )*        #   ( special normal* )*\n\
"                                     #        "\n\
# Quoted string\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
\\.\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
# Atom\n\
|                       #  or\n\
"                                     # "\n\
[^\\\\\\x80-\\xff\\n\\015"] *                            #   normal\n\
(?:  \\\\ [^\\x80-\\xff]  [^\\\\\\x80-\\xff\\n\\015"] * )*        #   ( special normal* )*\n\
"                                     #        "\n\
# Quoted string\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# additional words\n\
)*\n\
@\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
\\[                            # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff\n\
\\]                           #           ]\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional trailing comments\n\
(?:\n\
\\.\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
(?:\n\
[^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]+    # some number of atom characters...\n\
(?![^(\\040)<>@,;:".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom\n\
|\n\
\\[                            # [\n\
(?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] |  \\\\ [^\\x80-\\xff]  )*     #    stuff\n\
\\]                           #           ]\n\
)\n\
[\\040\\t]*                    # Nab whitespace.\n\
(?:\n\
\\(                              #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                             #     normal*\n\
(?:                                 #       (\n\
(?:  \\\\ [^\\x80-\\xff]  |\n\
\\(                            #  (\n\
[^\\\\\\x80-\\xff\\n\\015()] *                            #     normal*\n\
(?:  \\\\ [^\\x80-\\xff]   [^\\\\\\x80-\\xff\\n\\015()] * )*        #     (special normal*)*\n\
\\)                           #                       )\n\
)    #         special\n\
[^\\\\\\x80-\\xff\\n\\015()] *                         #         normal*\n\
)*                                  #            )*\n\
\\)                             #                )\n\
[\\040\\t]* )*    # If comment found, allow more spaces.\n\
# optional trailing comments\n\
)*\n\
#       address spec\n\
>                    #                 >\n\
# name and address\n\
)\n\
	Alan Other <[email protected]>	(0,25)
E$ckv	SAME	<[email protected]>	(1,13)
E$ckv	SAME	[email protected]	(0,12)
E$ckv	SAME	"A. Other" <[email protected]> (a comment)	(0,30)
E$ckv	SAME	A. Other <[email protected]> (a comment)	(2,28)
E$ckv	SAME	"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay	(0,61)
E$ckv	SAME	A missing angle <[email protected]	(17,32)
E$ckv	SAME	The quick brown fox	NOMATCH
E$hx	abc\\0def\\00pqr\\000xyz\\0000AB	abc\0def\00pqr\000xyz\0000AB	(0,19)
E$hx	SAME	abc456 abc\0def\00pqr\000xyz\0000ABCDE	(7,26)
E$	abc\\x{0d}ef\\x00pqr\\x{00}0xyz\\x{00}00AB	abc\x{0d}ef\x{00}pqr\x{00}0xyz\x{00}00AB	(0,20)
E$	abc\\x000d\\x00pqr\\x000xyz\\x0000AB	abc\x000d\x00pqr\x000xyz\x0000AB	(0,13)
Ex$	SAME	abc\x000d\x00pqr\x000xyz\x0000AB		(0,13)
#E$	abc\\x0def\\x00pqr\\x000xyz\\x0000AB	abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE	(7,27)
#Ex$	abc\\x0def\\x00pqr\\x000xyz\\x0000AB	abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE	(7,27)
E$v	^[\\000-\\037]	\0A	(0,1)
E$v	SAME	\01B	(0,1)
E$v	SAME	\037C	(0,1)
E$x	\\0*	\0\0\0\0	(0,4)
E$	A\\x0{2,3}Z	The A\x0\x0Z	(4,8)
E$	SAME	An A\0\x0\0Z	(3,8)
E$	SAME	A\0Z	NOMATCH
E$	SAME	A\0\x0\0\x0Z	NOMATCH
E$z	^(cow|)\\1(bell)	cowcowbell	(0,10)(0,3)(6,10)
E$z	SAME	bell		(0,4)(0,0)(0,4)
E$z	SAME	cowbell		NOMATCH
E$	^\\s	\040abc		(0,1)
E$	SAME	\x{0c}abc	(0,1)
E$	SAME	\x0cxyz		(0,1)
E$	SAME	\fabc	(0,1)
E$	SAME	\nabc	(0,1)
E$	SAME	\rabc	(0,1)
E$	SAME	\tabc	(0,1)
E$	SAME	abc	NOMATCH
E$c	^a\tb\n\
  
    c	abc	(0,3)
E$z	^(a|)\\1*b	ab	(0,2)(0,1)
E$z	SAME	aaaab	(0,5)(0,1)
E$z	SAME	b	(0,1)(0,0)
E$z	SAME	acb	NOMATCH
E$z	^(a|)\\1+b	aab	(0,3)(0,1)
E$z	SAME	aaaab	(0,5)(0,1)
E$z	SAME	b	(0,1)(0,0)
E$z	SAME	ab	NOMATCH
E$z	^(a|)\\1?b	ab	(0,2)(0,1)
E$z	SAME	aab	(0,3)(0,1)
E$z	SAME	b	(0,1)(0,0)
E$z	SAME	acb	NOMATCH
E$z	^(a|)\\1{2}b	aaab	(0,4)(0,1)
E$z	SAME	b	(0,1)(0,0)
E$z	SAME	ab	NOMATCH
E$z	SAME	aab	NOMATCH
E$z	SAME	aaaab	NOMATCH
E$z	^(a|)\\1{2,3}b	aaab	(0,4)(0,1)
E$z	SAME	aaaab	(0,5)(0,1)
E$z	SAME	b	(0,1)(0,0)
E$z	SAME	ab	NOMATCH
E$z	SAME	aab	NOMATCH
E$z	SAME	aaaaab	NOMATCH
E	ab{1,3}bc	abbbbc	(0,6)
E	SAME	abbbc	(0,5)
E	SAME	abbc	(0,4)
E	SAME	abc	NOMATCH
E	SAME	abbbbbc	NOMATCH
E$	([^.]*)\\.([^:]*):[T ]+(.*)	track1.title:TBlah blah blah	(0,28)(0,6)(7,12)(14,28)
E$i	([^.]*)\\.([^:]*):[T ]+(.*)	track1.title:TBlah blah blah	(0,28)(0,6)(7,12)(14,28)
E$i	([^.]*)\\.([^:]*):[t ]+(.*)	track1.title:TBlah blah blah	(0,28)(0,6)(7,12)(14,28)
E	^[W-c]+$	WXY_^abc	(0,8)
E	SAME	wxy	NOMATCH
Ei	^[W-c]+$	WXY_^abc	(0,8)
Ei	SAME	wxy_^ABC	(0,8)
E$iv	^[\\x3f-\\x5F]+$	WXY_^abc	(0,8)
E$iv	SAME	wxy_^ABC	(0,8)
En	^abc$	abc	(0,3)
En$	SAME	qqq\nabc	(4,7)
En$	SAME	abc\nzzz	(0,3)
En$	SAME	qqq\nabc\nzzz	(4,7)
E	^abc$	abc	(0,3)
E$	SAME	qqq\nabc	NOMATCH
E$	SAME	abc\nzzz	NOMATCH
E$	SAME	qqq\nabc\nzzz	NOMATCH
E$n	\\Aabc\\Z	abc	(0,3)
E$n	SAME	abc\n 	NOMATCH
E$n	SAME	qqq\nabc	NOMATCH
E$n	SAME	abc\nzzz	NOMATCH
E$n	SAME	qqq\nabc\nzzz	NOMATCH
E$j	\\A(.)*\\Z	abc\ndef	(0,7)(6,7)
E$n	\\A(.)*\\Z	abc\ndef	NOMATCH
E	(?:b)|(?::+)	b::c	(0,1)
E	SAME	c::b	(1,3)
E	[-az]+	az-	(0,3)
E	SAME	b	NOMATCH
E	[az-]+	za-	(0,3)
E	SAME	b	NOMATCH
E$kv	[a\\-z]+	a-z	(0,3)
E$kv	SAME	b	NOMATCH
E	[a-z]+	abcdxyz	(0,7)
E$v	[\\d-]+	12-34	(0,5)
E$v	SAME	aaa	NOMATCH
E$v	[\\d-z]+	12-34z	ERANGE
E$v	SAME	aaa	ERANGE
E$	\\x5c	\\	(0,1)
E$	\\x20Z	the Zoo	(3,5)
E$	SAME	Zulu	NOMATCH
E$i	(abc)\\1	abcabc	(0,6)(0,3)
E$i	SAME	ABCabc	(0,6)(0,3)
E$i	SAME	abcABC	(0,6)(0,3)
E	(main(O)?)+	mainmain	(0,8)(4,8)
E	SAME	mainOmain	(0,9)(5,9)
E	ab{3cd	ab{3cd	BADBR
E	ab{3,cd	ab{3,cd	BADBR
E	ab{3,4a}cd	ab{3,4a}cd	BADBR
E	{4,5a}bc	{4,5a}bc	BADBR
E$	^a.b	a\rb	(0,3)
E$	SAME	a\nb	(0,3)
E	abc$	abc	(0,3)
E$	SAME	abc\n	NOMATCH
E$n	SAME	abc\n	(0,3)
E$	SAME	abc\ndef	NOMATCH
E$n	SAME	abc\ndef	(0,3)
E$	(abc)\\123	abc\x53		(0,4)(0,3)
E$	(abc)\\223	abc\x93		(0,4)(0,3)
E$	(abc)\\323	abc\xd3		(0,4)(0,3)
E$h	(abc)\\500	abc\x40		ESUBREG
E$h	SAME		abc\100		ESUBREG
E$h	(abc)\\1000	abc\x{40}0	(0,5)(0,3)
E$h	SAME		abc\x40\x30	(0,5)(0,3)
E$h	SAME		abc\1000	(0,5)(0,3)
E$h	SAME		abc\100\x30	(0,5)(0,3)
E$h	SAME		abc\100\060	(0,5)(0,3)
E$h	SAME		abc\100\60	(0,5)(0,3)
E$h	(abc)\\100z	abc\x40z	(0,5)(0,3)
E$	abc\\71	abc\071	ESUBREG
E$h	abc\\71	abc\071	(0,4)
E$	abc\\81	abc\081	ESUBREG
E$h	abc\\81	abc\081	NOMATCH
E$h	SAME	abc\0\x38\x31	NOMATCH
E$	abc\\091	abc\091	BADESC
E$x	abc\\091	abc\091	(0,6)
E$x	SAME	abc\0\x39\x31	(0,6)
E$	(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123	abcdefghijkllS	NOMATCH
E$	(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123	abcdefghijk\12S	NOMATCH
E$h	(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123	abcdefghijkllS	(0,14)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(11,12)
E$h	(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123	abcdefghijk\12S	(0,13)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)
E$	(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(?12)\\123	abcdefghijkllS	(0,14)(0,1)(1,2)(2,3)(3,4)(4,5)(5,6)(6,7)(7,8)(8,9)(9,10)(10,11)(11,12)
E$	ab\\gdef	abgdef	BADESC
E$x	ab\\gdef	abgdef	(0,6)
E	a{0}bc	bc	(0,2)
E	(a|(bc)){0,0}?xyz	xyz	(0,3)
E$v	abc[\\10]de	abc\010de	(0,6)
E$v	abc[\\1]de	abc\1de	(0,6)
E$kv	abc[\\1]de	abc\1de	(0,6)
E$v	(abc)[\\1]de	abc\1de	(0,6)(0,3)
E$kv	(abc)[\\1]de	abc\1de	(0,6)(0,3)
E$	a.b(?s)	a\nb	(0,3)
E$v	^([^a])([^\\b])([^c]*)([^d]{3,4})	baNOTccccd	(0,9)(0,1)(1,2)(2,5)(5,9)
E$v	SAME	baNOTcccd	(0,8)(0,1)(1,2)(2,5)(5,8)
E$v	SAME	baNOTccd	(0,7)(0,1)(1,2)(2,4)(4,7)
E$v	SAME	bacccd	(0,5)(0,1)(1,2)(2,2)(2,5)
E$v	SAME	anything	NOMATCH
E$v	SAME	b\bc...	NOMATCH
E$v	SAME	baccd	NOMATCH
E$v	^([^a])([^\\f])([^c]*)([^d]{3,4})	b\fc...	NOMATCH
E	[^a]	Abc	(0,1)
Ei	[^a]	Abc 	(1,2)
E	[^a]+	AAAaAbc	(0,3)
Ei	[^a]+	AAAaAbc 	(5,8)
E$	[^a]+	bbb\nccc	(0,7)
E	[^k]$	abc	(2,3)
E	SAME	abk   	(5,6)
E	[^k]{2,3}$	abc	(0,3)
E	SAME	kbc	(1,3)
E	SAME	kabc 	(2,5)
E	SAME	abk	NOMATCH
E	SAME	akb	NOMATCH
E	SAME	akk 	NOMATCH
E$	^\\d{8,}\\@.+[^k]$	[email protected]	(0,16)
E$	SAME	[email protected]	(0,15)
E$	SAME	[email protected]	NOMATCH
E$	SAME	[email protected]       	NOMATCH
E$	(a)\\1{8,}	aaaaaaaaa	(0,9)(0,1)
E$	SAME	aaaaaaaaaa	(0,10)(0,1)
E$	SAME	aaaaaaa   	NOMATCH
E	[^a]	aaaabcd	(4,5)
E	SAME	aaAabcd 	(2,3)
Ei	[^a]	aaaabcd	(4,5)
Ei	SAME	aaAabcd 	(4,5)
E	[^az]	aaaabcd	(4,5)
E	SAME	aaAabcd 	(2,3)
Ei	[^az]	aaaabcd	(4,5)
Ei	SAME	aaAabcd 	(4,5)
E$	\\000\\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037\\040\\041\\042\\043\\044\\045\\046\\047\\050\\051\\052\\053\\054\\055\\056\\057\\060\\061\\062\\063\\064\\065\\066\\067\\070\\071\\072\\073\\074\\075\\076\\077\\100\\101\\102\\103\\104\\105\\106\\107\\110\\111\\112\\113\\114\\115\\116\\117\\120\\121\\122\\123\\124\\125\\126\\127\\130\\131\\132\\133\\134\\135\\136\\137\\140\\141\\142\\143\\144\\145\\146\\147\\150\\151\\152\\153\\154\\155\\156\\157\\160\\161\\162\\163\\164\\165\\166\\167\\170\\171\\172\\173\\174\\175\\176\\177\\200\\201\\202\\203\\204\\205\\206\\207\\210\\211\\212\\213\\214\\215\\216\\217\\220\\221\\222\\223\\224\\225\\226\\227\\230\\231\\232\\233\\234\\235\\236\\237\\240\\241\\242\\243\\244\\245\\246\\247\\250\\251\\252\\253\\254\\255\\256\\257\\260\\261\\262\\263\\264\\265\\266\\267\\270\\271\\272\\273\\274\\275\\276\\277\\300\\301\\302\\303\\304\\305\\306\\307\\310\\311\\312\\313\\314\\315\\316\\317\\320\\321\\322\\323\\324\\325\\326\\327\\330\\331\\332\\333\\334\\335\\336\\337\\340\\341\\342\\343\\344\\345\\346\\347\\350\\351\\352\\353\\354\\355\\356\\357\\360\\361\\362\\363\\364\\365\\366\\367\\370\\371\\372\\373\\374\\375\\376\\377	\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377	(0,256)
E	P[^*]TAIRE[^*]{1,6}?LL	xxxxxxxxxxxPSTAIREISLLxxxxxxxxx	(11,22)
E	P[^*]TAIRE[^*]{1,}?LL	xxxxxxxxxxxPSTAIREISLLxxxxxxxxx	(11,22)
E$	(\\.\\d\\d[1-9]?)\\d+	1.230003938	(1,11)(1,4)
E$	SAME	1.875000282   	(1,11)(1,5)
E$	SAME	1.235  	(1,5)(1,4)
E$	(\\.\\d\\d((?=0)|[1-9](?=\\d)))	1.230003938      	(1,4)(1,4)(4,4)
E$	(\\.\\d\\d((?=0)|\\d(?=\\d)))	1.230003938      	(1,5)(1,5)(4,5)
E$	SAME	1.875000282	(1,5)(1,5)(4,5)
E$	SAME	1.235 	NOMATCH
E	a(?)b	ab 	(0,2)
E	a(?#)b	ab 	(0,2)
E$i	\\b(foo)\\s+(\\w+)	Food is on the foo table	(15,24)(15,18)(19,24)
E	foo(.*)bar	The food is under the bar in the barn.	(4,36)(7,33)
E	foo(.*?)bar	The food is under the bar in the barn.	(4,25)(7,22)
E$	(.*)(\\d*)	I have 2 numbers: 53147	(0,23)(0,23)(23,23)
E$	(.*)(\\d+)	I have 2 numbers: 53147	(0,23)(0,22)(22,23)
E$	(.*?)(\\d*)	I have 2 numbers: 53147	(0,0)(0,0)(0,0)
E$	(.*?)(\\d+)	I have 2 numbers: 53147	(0,8)(0,7)(7,8)
E$	(.*)(\\d+)$	I have 2 numbers: 53147	(0,23)(0,22)(22,23)
E$	(.*?)(\\d+)$	I have 2 numbers: 53147	(0,23)(0,18)(18,23)
E$	(.*)\\b(\\d+)$	I have 2 numbers: 53147	(0,23)(0,18)(18,23)
E$	(.*\\D)(\\d+)$	I have 2 numbers: 53147	(0,23)(0,18)(18,23)
E$	^\\D*(?!123)	ABC123	(0,2)
E$	^(\\D*)(?=\\d)(?!123)	ABC445	(0,3)(0,3)
E$	SAME	ABC123	NOMATCH
E	^[W-]46]	W46]789 	(0,4)
E	SAME	-46]789	(0,4)
E	SAME	Wall	NOMATCH
E	SAME	Zebra	NOMATCH
E	SAME	42	NOMATCH
E	SAME	[abcd] 	NOMATCH
E	SAME	]abcd[	NOMATCH
E$kv	^[W-\\]46]	W46]789 	(0,1)
E$kv	SAME	Wall	(0,1)
E$kv	SAME	Zebra	(0,1)
E$kv	SAME	Xylophone  	(0,1)
E$kv	SAME	42	(0,1)
E$kv	SAME	[abcd] 	(0,1)
E$kv	SAME	]abcd[	(0,1)
E$kv	SAME	\\backslash 	(0,1)
E$kv	SAME	-46]789	NOMATCH
E$kv	SAME	well	NOMATCH
E$	\\d\\d/\\d\\d/\\d\\d\\d\\d	01/01/2000	(0,10)
E	word (?:[a-zA-Z0-9]+ ){0,10}otherword	word cat dog elephant mussel cow horse canary baboon snake shark otherword	(0,74)
E	SAME	word cat dog elephant mussel cow horse canary baboon snake shark	NOMATCH
E	word (?:[a-zA-Z0-9]+ ){0,300}otherword	word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope	NOMATCH
E	^(a){0,0}	bcd	(0,0)
E	SAME	abc	(0,0)
E	SAME	aab     	(0,0)
E	^(a){0,1}	bcd	(0,0)
E	SAME	abc	(0,1)(0,1)
E	SAME	aab  	(0,1)(0,1)
E	^(a){0,2}	bcd	(0,0)
E	SAME	abc	(0,1)(0,1)
E	SAME	aab  	(0,2)(1,2)
E	^(a){0,3}	bcd	(0,0)
E	SAME	abc	(0,1)(0,1)
E	SAME	aab	(0,2)(1,2)
E	SAME	aaa   	(0,3)(2,3)
E	^(a){0,}	bcd	(0,0)
E	SAME	abc	(0,1)(0,1)
E	SAME	aab	(0,2)(1,2)
E	SAME	aaa	(0,3)(2,3)
E	SAME	aaaaaaaa    	(0,8)(7,8)
E	^(a){1,1}	bcd	NOMATCH
E	SAME	abc	(0,1)(0,1)
E	SAME	aab  	(0,1)(0,1)
E	^(a){1,2}	bcd	NOMATCH
E	SAME	abc	(0,1)(0,1)
E	SAME	aab  	(0,2)(1,2)
E	^(a){1,3}	bcd	NOMATCH
E	SAME	abc	(0,1)(0,1)
E	SAME	aab	(0,2)(1,2)
E	SAME	aaa   	(0,3)(2,3)
E	^(a){1,}	bcd	NOMATCH
E	SAME	abc	(0,1)(0,1)
E	SAME	aab	(0,2)(1,2)
E	SAME	aaa	(0,3)(2,3)
E	SAME	aaaaaaaa    	(0,8)(7,8)
E$	.{0,}\\.gif	borfle\nbib.gif\nno	(0,14)
E$	.*\\.gif	borfle\nbib.gif\nno	(0,14)
E$n	SAME		borfle\nbib.gif\nno	(7,14)
E$j	SAME		borfle\nbib.gif\nno	(0,14)
E$nj	SAME		borfle\nbib.gif\nno	(0,14)
E$	.*$		borfle\nbib.gif\nno	(0,17)
En$	SAME		borfle\nbib.gif\nno	(0,6)
Ej$	SAME		borfle\nbib.gif\nno	(0,17)
Enj$	SAME		borfle\nbib.gif\nno	(0,17)
E$	SAME		borfle\nbib.gif\nno\n	(0,18)
En$	SAME		borfle\nbib.gif\nno\n	(0,6)
Ej$	SAME		borfle\nbib.gif\nno\n	(0,18)
Enj$	SAME		borfle\nbib.gif\nno\n	(0,18)
E$	(.*X|^B)	abcde\n1234Xyz	(0,11)(0,11)
E$	SAME	BarFoo 	(0,1)(0,1)
E$	SAME	abcde\nBar  	NOMATCH
En$	(.*X|^B)	abcde\n1234Xyz	(6,11)(6,11)
En$	SAME	BarFoo 	(0,1)(0,1)
En$	SAME	abcde\nBar  	(6,7)(6,7)
Ej$	(.*X|^B)	abcde\n1234Xyz	(0,11)(0,11)
Ej$	SAME	BarFoo 	(0,1)(0,1)
Ej$	SAME	abcde\nBar  	NOMATCH
Enj$	(.*X|^B)	abcde\n1234Xyz	(0,11)(0,11)
Enj$	SAME	BarFoo 	(0,1)(0,1)
Enj$	SAME	abcde\nBar  	(6,7)(6,7)
E$	(?s)(.*X|^B)	abcde\n1234Xyz	(0,11)(0,11)
E$	SAME	BarFoo 	(0,1)(0,1)
E$	SAME	abcde\nBar  	NOMATCH
E$	(?s:.*X|^B)	abcde\n1234Xyz	(0,11)
E$	SAME	BarFoo 	(0,1)
E$	SAME	abcde\nBar  	NOMATCH
E$	^.*B	abc\nB	(0,5)
E$n	^.*B	abc\nB	(4,5)
E$	(?s)^.*B	abc\nB	(0,5)
E$	(?m)^.*B	abc\nB	(4,5)
E$	(?ms)^.*B	abc\nB	(0,5)
E$	(?ms)^B	abc\nB	(4,5)
E$	(?m)B$	B\n	(0,1)
E$	(?s)B$	B\n	NOMATCH
E	^[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,12)
E$	^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d	123456654321 	(0,12)
E$v	^[\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d]	123456654321	(0,12)
E	^[abc]{12}	abcabcabcabc	(0,12)
E	^[a-c]{12}	abcabcabcabc	(0,12)
E	^(a|b|c){12}	abcabcabcabc 	(0,12)(11,12)
E	^[abcdefghijklmnopqrstuvwxy0123456789]	n	(0,1)
E	SAME	z 	NOMATCH
E	abcde{0,0}	abcd	(0,4)
E	SAME	abce  	NOMATCH
E	ab[cd]{0,0}e	abe	(0,3)
E	SAME	abcde 	NOMATCH
E	ab(c){0,0}d	abd	(0,3)
E	SAME	abcd   	NOMATCH
E	a(b*)	a	(0,1)(1,1)
E	SAME	ab	(0,2)(1,2)
E	SAME	abbbb	(0,5)(1,5)
E	SAME	bbbbb    	NOMATCH
E$	ab\\d{0}e	abe	(0,3)
E$	SAME	ab1e   	NOMATCH
E$v	"([^\\\\"]+|\\\\.)*"	the "quick" brown fox	(4,11)(5,10)
#E$v	SAME	"the \\"quick\\" brown fox" 	(0,25)(14,24)
E	.*?	abc	(0,0)
E$	\\b	abc 	(0,0)
E$	\\b	abc 	(0,0)
Ez	NULL	abc	(0,0)
E$ijv	<tr([\\w\\W\\s\\d][^<>]{0,})><TD([\\w\\W\\s\\d][^<>]{0,})>([\\d]{0,}\\.)(.*)((<BR>([\\w\\W\\s\\d][^<>]{0,})|[\\s]{0,}))</a></TD><TD([\\w\\W\\s\\d][^<>]{0,})>([\\w\\W\\s\\d][^<>]{0,})</TD><TD([\\w\\W\\s\\d][^<>]{0,})>([\\w\\W\\s\\d][^<>]{0,})</TD></TR>	<TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>	(0,227)(3,21)(25,47)(48,51)(51,122)(122,122)(122,122)(?,?)(134,156)(157,172)(180,202)(203,217)
E	a[^a]b	acb	(0,3)
E$	SAME	a\nb	(0,3)
E	a.b	acb	(0,3)
E$	SAME	a\nb   	(0,3)
Ej	a[^a]b	acb	(0,3)
Ej$	SAME	a\nb  	(0,3)
Ej	a.b	acb	(0,3)
Ej$	SAME	a\nb  	(0,3)