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