1NOTE		 additional tests graciously provided by Chris Kuklewicz www.haskell.org 2009-02-02
2
3:HA#01:E	a+				xaax		(1,3)
4:HA#03:E	(a?)((ab)?)			ab		(0,2)(0,0)(0,2)(0,2)
5:HA#04:E	(a?)((ab)?)(b?)			ab		(0,2)(0,1)(1,1)(?,?)(1,2)
6:HA#05:E	((a?)((ab)?))(b?)		ab		(0,2)(0,2)(0,0)(0,2)(0,2)(2,2)
7:HA#06:E	(a?)(((ab)?)(b?))		ab		(0,2)(0,1)(1,2)(1,1)(?,?)(1,2)
8:HA#07:E	(.?)				x		(0,1)(0,1)
9:HA#08:E	(.?){1}				x		(0,1)(0,1)
10:HA#09:E	(.?)(.?)			x		(0,1)(0,1)(1,1)
11:HA#10:E	(.?){2}				x		(0,1)(1,1)
12:HA#11:E	(.?)*				x		(0,1)(0,1)
13:HA#12:E	(.?.?)				xxx		(0,2)(0,2)
14:HA#13:E	(.?.?){1}			xxx		(0,2)(0,2)
15:HA#14:E	(.?.?)(.?.?)			xxx		(0,3)(0,2)(2,3)
16:HA#15:E	(.?.?){2}			xxx		(0,3)(2,3)
17:HA#16:E	(.?.?)(.?.?)(.?.?)		xxx		(0,3)(0,2)(2,3)(3,3)
18:HA#17:E	(.?.?){3}			xxx		(0,3)(3,3)
19:HA#18:E	(.?.?)*				xxx		(0,3)(2,3)
20:HA#19:E	a?((ab)?)(b?)			ab		(0,2)(1,1)(?,?)(1,2)
21:HA#20:E	(a?)((ab)?)b?			ab		(0,2)(0,1)(1,1)(?,?)
22:HA#21:E	a?((ab)?)b?			ab		(0,2)(1,1)(?,?)
23:HA#22:E	(a*){2}				xxxxx		(0,0)(0,0)
24:HA#23:E	(ab?)(b?a)			aba		(0,3)(0,2)(2,3)
25:HA#24:E	(a|ab)(ba|a)			aba		(0,3)(0,2)(2,3)
26:HA#25:E	(a|ab|ba)			aba		(0,2)(0,2)
27:HA#26:E	(a|ab|ba)(a|ab|ba)		aba		(0,3)(0,2)(2,3)
28:HA#27:E	(a|ab|ba)*			aba		(0,3)(2,3)
29:HA#28:E	(aba|a*b)			ababa		(0,3)(0,3)
30:HA#29:E	(aba|a*b)(aba|a*b)		ababa		(0,5)(0,2)(2,5)
31:HA#1029:E	(aba|a*b)(aba|a*b)(aba|a*b)	ababa		NOMATCH
32:HA#30:E	(aba|a*b)*			ababa		(0,5)(2,5)
33:HA#31:E	(aba|ab|a)			ababa		(0,3)(0,3)
34:HA#32:E	(aba|ab|a)(aba|ab|a)		ababa		(0,5)(0,2)(2,5)
35:HA#1032:E	(aba|ab|a)(aba|ab|a)(aba|ab|a)	ababa		(0,5)(0,2)(2,4)(4,5)
36:HA#33:E	(aba|ab|a)*			ababa		(0,5)(2,5)
37:HA#34:E	(a(b)?)				aba		(0,2)(0,2)(1,2)
38:HA#35:E	(a(b)?)(a(b)?)			aba		(0,3)(0,2)(1,2)(2,3)(?,?)
39:HA#36:E	(a(b)?)+			aba		(0,3)(2,3)(?,?)
40:HA#37:E	(.*)(.*)			xx		(0,2)(0,2)(2,2)
41:HA#38:E	.*(.*)				xx		(0,2)(2,2)
42:HA#39:E	(a.*z|b.*y)			azbazby		(0,5)(0,5)
43:HA#40:E	(a.*z|b.*y)(a.*z|b.*y)		azbazby		(0,7)(0,5)(5,7)
44:HA#41:E	(a.*z|b.*y)*			azbazby		(0,7)(5,7)
45:HA#42:E	(.|..)(.*)			ab		(0,2)(0,2)(2,2)
46:HA#43:E	((..)*(...)*)			xxx		(0,3)(0,3)(?,?)(0,3)
47:HA#44:E	((..)*(...)*)((..)*(...)*)	xxx		(0,3)(0,3)(?,?)(0,3)(3,3)(?,?)(?,?)
48:HA#45:E	((..)*(...)*)*			xxx		(0,3)(0,3)(?,?)(0,3)
49:HA#83:E	(aa(b(b))?)+			aabbaa		(0,6)(4,6)(?,?)(?,?)
50:HA#84:E	(a(b)?)+			aba		(0,3)(2,3)(?,?)
51:HA#85:E	([ab]+)([bc]+)([cd]*)		abcd		(0,4)(0,2)(2,3)(3,4)
52:HA#90:E	^(A([^B]*))?(B(.*))?		Aa		(0,2)(0,2)(1,2)(?,?)(?,?)
53:HA#91:E	^(A([^B]*))?(B(.*))?		Bb		(0,2)(?,?)(?,?)(0,2)(1,2)
54:HA#110:E	(^){0,3}			a		(0,0)(0,0)
55:HA#111:E	($){0,3}			a		(0,0)(?,?)
56:HA#112:E	(^){1,3}			a		(0,0)(0,0)
57:HA#113:E	($){1,3}			a		(1,1)(1,1)
58:HA#200:E	((s^)|(s)|(^)|($)|(^.))*	searchme	(0,1)(0,1)(?,?)(0,1)(?,?)(?,?)(?,?)
59:HA#201:Ez	s(()|^)e			searchme	(0,2)(1,1)(1,1)
60:HA#202:Ez	s(^|())e			searchme	(0,2)(1,1)(1,1)
61:HA#203:Ez	s(^|())e			searchme	(0,2)(1,1)(1,1)
62:HA#204:Ez	s()?e				searchme	(0,2)(1,1)
63:HA#205:E	s(^)?e				searchme	(0,2)(?,?)
64:HA#206:E	((s)|(e)|(a))*			searchme	(0,3)(2,3)(?,?)(?,?)(2,3)
65:HA#207:Ez	((s)|(e)|())*			searchme	(0,2)(1,2)(?,?)(1,2)(?,?)
66:HA#208:E	((b*)|c(c*))*			cbb		(0,3)(1,3)(1,3)(?,?)
67:HA#209:E	(yyy|(x?)){2,4}			yyyyyy		(0,6)(3,6)(?,?)
68:HA#210:Ez	($)|()				xxx		(0,0)(?,?)(0,0)
69:HA#211:Ez	$()|^()				ac\n		(0,0)(?,?)(0,0)
70:HA#212:Ez	^()|$()				ac\n		(0,0)(0,0)(?,?)
71:HA#213:E	($)?(.)				__		(0,1)(?,?)(0,1)
72:HA#214:Ez	(.|()|())*			c		(0,1)(0,1)(?,?)(?,?)
73:HA#215:E	((a)|(b)){2,}			ab		(0,2)(1,2)(?,?)(1,2)
74:HA#216:Ez	.()|((.)?)			NULL		(0,0)(?,?)(0,0)(?,?)
75:HA#217:E	(.|$){2,}			xx		(0,2)(1,2)
76:HA#218:E	(.|$){2,2}			xx		(0,2)(1,2)
77:HA#219:E	(.){2,}				xx		(0,2)(1,2)
78:HA#220:Ez	(a|())(b|())(c|())		abc		(0,3)(0,1)(?,?)(1,2)(?,?)(2,3)(?,?)
79:HA#220:Ez	ab()c|ab()c()			abc		(0,3)(2,2)(-1,-1)(-1,-1)
80:HA#250:E	(b(c)|d(e))*			bcde		(0,4)(2,4)(-1,-1)(3,4)
81:HA#251:E	(a(b)*)*			aba		(0,3)(2,3)(-1,-1)
82
83# osx / bsd have a tough time with these
84
85:HA#301:Ez	(()|.)(b)			ab		(0,2)(0,1)(?,?)(1,2)
86:HA#302:Ez	(()|[ab])(b)			ab		(0,2)(0,1)(?,?)(1,2)
87:HA#303:Ez	(()|[ab])+b			aaab		(0,4)(2,3)(?,?)
88:HA#311:Ez	(.|())(b)			ab		(0,2)(0,1)(?,?)(1,2)
89:HA#312:Ez	([ab]|())(b)			ab		(0,2)(0,1)(?,?)(1,2)
90:HA#314:Ez	([ab]|())+b			aaab		(0,4)(2,3)(?,?)
91:HA#320:Ez	(.?)(b)				ab		(0,2)(0,1)(1,2)
92