NOTE additional tests graciously provided by Chris Kuklewicz www.haskell.org 2009-02-02
:HA#01:E a+ xaax (1,3)
:HA#03:E (a?)((ab)?) ab (0,2)(0,0)(0,2)(0,2)
:HA#04:E (a?)((ab)?)(b?) ab (0,2)(0,1)(1,1)(?,?)(1,2)
:HA#05:E ((a?)((ab)?))(b?) ab (0,2)(0,2)(0,0)(0,2)(0,2)(2,2)
:HA#06:E (a?)(((ab)?)(b?)) ab (0,2)(0,1)(1,2)(1,1)(?,?)(1,2)
:HA#07:E (.?) x (0,1)(0,1)
:HA#08:E (.?){1} x (0,1)(0,1)
:HA#09:E (.?)(.?) x (0,1)(0,1)(1,1)
:HA#10:E (.?){2} x (0,1)(1,1)
:HA#11:E (.?)* x (0,1)(0,1)
:HA#12:E (.?.?) xxx (0,2)(0,2)
:HA#13:E (.?.?){1} xxx (0,2)(0,2)
:HA#14:E (.?.?)(.?.?) xxx (0,3)(0,2)(2,3)
:HA#15:E (.?.?){2} xxx (0,3)(2,3)
:HA#16:E (.?.?)(.?.?)(.?.?) xxx (0,3)(0,2)(2,3)(3,3)
:HA#17:E (.?.?){3} xxx (0,3)(3,3)
:HA#18:E (.?.?)* xxx (0,3)(2,3)
:HA#19:E a?((ab)?)(b?) ab (0,2)(1,1)(?,?)(1,2)
:HA#20:E (a?)((ab)?)b? ab (0,2)(0,1)(1,1)(?,?)
:HA#21:E a?((ab)?)b? ab (0,2)(1,1)(?,?)
:HA#22:E (a*){2} xxxxx (0,0)(0,0)
:HA#23:E (ab?)(b?a) aba (0,3)(0,2)(2,3)
:HA#24:E (a|ab)(ba|a) aba (0,3)(0,2)(2,3)
:HA#25:E (a|ab|ba) aba (0,2)(0,2)
:HA#26:E (a|ab|ba)(a|ab|ba) aba (0,3)(0,2)(2,3)
:HA#27:E (a|ab|ba)* aba (0,3)(2,3)
:HA#28:E (aba|a*b) ababa (0,3)(0,3)
:HA#29:E (aba|a*b)(aba|a*b) ababa (0,5)(0,2)(2,5)
:HA#1029:E (aba|a*b)(aba|a*b)(aba|a*b) ababa NOMATCH
:HA#30:E (aba|a*b)* ababa (0,5)(2,5)
:HA#31:E (aba|ab|a) ababa (0,3)(0,3)
:HA#32:E (aba|ab|a)(aba|ab|a) ababa (0,5)(0,2)(2,5)
:HA#1032:E (aba|ab|a)(aba|ab|a)(aba|ab|a) ababa (0,5)(0,2)(2,4)(4,5)
:HA#33:E (aba|ab|a)* ababa (0,5)(2,5)
:HA#34:E (a(b)?) aba (0,2)(0,2)(1,2)
:HA#35:E (a(b)?)(a(b)?) aba (0,3)(0,2)(1,2)(2,3)(?,?)
:HA#36:E (a(b)?)+ aba (0,3)(2,3)(?,?)
:HA#37:E (.*)(.*) xx (0,2)(0,2)(2,2)
:HA#38:E .*(.*) xx (0,2)(2,2)
:HA#39:E (a.*z|b.*y) azbazby (0,5)(0,5)
:HA#40:E (a.*z|b.*y)(a.*z|b.*y) azbazby (0,7)(0,5)(5,7)
:HA#41:E (a.*z|b.*y)* azbazby (0,7)(5,7)
:HA#42:E (.|..)(.*) ab (0,2)(0,2)(2,2)
:HA#43:E ((..)*(...)*) xxx (0,3)(0,3)(?,?)(0,3)
:HA#44:E ((..)*(...)*)((..)*(...)*) xxx (0,3)(0,3)(?,?)(0,3)(3,3)(?,?)(?,?)
:HA#45:E ((..)*(...)*)* xxx (0,3)(0,3)(?,?)(0,3)
:HA#83:E (aa(b(b))?)+ aabbaa (0,6)(4,6)(?,?)(?,?)
:HA#84:E (a(b)?)+ aba (0,3)(2,3)(?,?)
:HA#85:E ([ab]+)([bc]+)([cd]*) abcd (0,4)(0,2)(2,3)(3,4)
:HA#90:E ^(A([^B]*))?(B(.*))? Aa (0,2)(0,2)(1,2)(?,?)(?,?)
:HA#91:E ^(A([^B]*))?(B(.*))? Bb (0,2)(?,?)(?,?)(0,2)(1,2)
:HA#110:E (^){0,3} a (0,0)(0,0)
:HA#111:E ($){0,3} a (0,0)(?,?)
:HA#112:E (^){1,3} a (0,0)(0,0)
:HA#113:E ($){1,3} a (1,1)(1,1)
:HA#200:E ((s^)|(s)|(^)|($)|(^.))* searchme (0,1)(0,1)(?,?)(0,1)(?,?)(?,?)(?,?)
:HA#201:Ez s(()|^)e searchme (0,2)(1,1)(1,1)
:HA#202:Ez s(^|())e searchme (0,2)(1,1)(1,1)
:HA#203:Ez s(^|())e searchme (0,2)(1,1)(1,1)
:HA#204:Ez s()?e searchme (0,2)(1,1)
:HA#205:E s(^)?e searchme (0,2)(?,?)
:HA#206:E ((s)|(e)|(a))* searchme (0,3)(2,3)(?,?)(?,?)(2,3)
:HA#207:Ez ((s)|(e)|())* searchme (0,2)(1,2)(?,?)(1,2)(?,?)
:HA#208:E ((b*)|c(c*))* cbb (0,3)(1,3)(1,3)(?,?)
:HA#209:E (yyy|(x?)){2,4} yyyyyy (0,6)(3,6)(?,?)
:HA#210:Ez ($)|() xxx (0,0)(?,?)(0,0)
:HA#211:Ez $()|^() ac\n (0,0)(?,?)(0,0)
:HA#212:Ez ^()|$() ac\n (0,0)(0,0)(?,?)
:HA#213:E ($)?(.) __ (0,1)(?,?)(0,1)
:HA#214:Ez (.|()|())* c (0,1)(0,1)(?,?)(?,?)
:HA#215:E ((a)|(b)){2,} ab (0,2)(1,2)(?,?)(1,2)
:HA#216:Ez .()|((.)?) NULL (0,0)(?,?)(0,0)(?,?)
:HA#217:E (.|$){2,} xx (0,2)(1,2)
:HA#218:E (.|$){2,2} xx (0,2)(1,2)
:HA#219:E (.){2,} xx (0,2)(1,2)
:HA#220:Ez (a|())(b|())(c|()) abc (0,3)(0,1)(?,?)(1,2)(?,?)(2,3)(?,?)
:HA#220:Ez ab()c|ab()c() abc (0,3)(2,2)(-1,-1)(-1,-1)
:HA#250:E (b(c)|d(e))* bcde (0,4)(2,4)(-1,-1)(3,4)
:HA#251:E (a(b)*)* aba (0,3)(2,3)(-1,-1)
# osx / bsd have a tough time with these
:HA#301:Ez (()|.)(b) ab (0,2)(0,1)(?,?)(1,2)
:HA#302:Ez (()|[ab])(b) ab (0,2)(0,1)(?,?)(1,2)
:HA#303:Ez (()|[ab])+b aaab (0,4)(2,3)(?,?)
:HA#311:Ez (.|())(b) ab (0,2)(0,1)(?,?)(1,2)
:HA#312:Ez ([ab]|())(b) ab (0,2)(0,1)(?,?)(1,2)
:HA#314:Ez ([ab]|())+b aaab (0,4)(2,3)(?,?)
:HA#320:Ez (.?)(b) ab (0,2)(0,1)(1,2)