1*57718be8SEnji CooperNOTE regex implementation categorization 2004-05-31 2*57718be8SEnji Cooper 3*57718be8SEnji Cooper?E aa* xaxaax (1,2) POSITION=leftmost 4*57718be8SEnji Cooper; POSITION=bug 5*57718be8SEnji Cooper 6*57718be8SEnji Cooper?E (a*)(ab)*(b*) abc (0,2)(0,1)(?,?)(1,2) ASSOCIATIVITY=right 7*57718be8SEnji Cooper|E (a*)(ab)*(b*) abc (0,2)(0,0)(0,2)(2,2) ASSOCIATIVITY=left 8*57718be8SEnji Cooper; ASSOCIATIVITY=bug 9*57718be8SEnji Cooper 10*57718be8SEnji Cooper?E ((a*)(ab)*)((b*)(a*)) aba (0,3)(0,2)(0,0)(0,2)(2,3)(2,2)(2,3) SUBEXPRESSION=precedence 11*57718be8SEnji Cooper|E ((a*)(ab)*)((b*)(a*)) aba (0,3)(0,1)(0,1)(?,?)(1,3)(1,2)(2,3) SUBEXPRESSION=grouping 12*57718be8SEnji Cooper; SUBEXPRESSION=bug 13*57718be8SEnji Cooper 14*57718be8SEnji Cooper?E (...?.?)* xxxxxx (0,6)(4,6) REPEAT_LONGEST=first 15*57718be8SEnji Cooper|E (...?.?)* xxxxxx (0,6)(2,6) REPEAT_LONGEST=last 16*57718be8SEnji Cooper|E (...?.?)* xxxxxx OK REPEAT_LONGEST=unknown 17*57718be8SEnji Cooper; REPEAT_LONGEST=bug 18*57718be8SEnji Cooper 19*57718be8SEnji Cooper?E (a|ab)(bc|c) abcabc (0,3)(0,2)(2,3) EXPECTED 20*57718be8SEnji Cooper|E (a|ab)(bc|c) abcabc (0,3)(0,1)(1,3) BUG=alternation-order 21*57718be8SEnji Cooper; BUG=alternation-order-UNKNOWN 22*57718be8SEnji Cooper 23*57718be8SEnji Cooper?E (aba|a*b)(aba|a*b) ababa (0,5)(0,2)(2,5) EXPECTED 24*57718be8SEnji Cooper|E (aba|a*b)(aba|a*b) ababa (0,4)(0,3)(3,4) BUG=first-match 25*57718be8SEnji Cooper; BUG=unknown-match 26*57718be8SEnji Cooper 27*57718be8SEnji Cooper?B a\(b\)*\1 a NOMATCH EXPECTED 28*57718be8SEnji Cooper|B a\(b\)*\1 a (0,1) BUG=nomatch-match 29*57718be8SEnji Cooper|B a\(b\)*\1 abab (0,2)(1,2) # BUG=repeat-any 30*57718be8SEnji Cooper; BUG=nomatch-match-UNKNOWN 31*57718be8SEnji Cooper 32*57718be8SEnji Cooper?E (a*){2} xxxxx (0,0)(0,0) EXPECTED 33*57718be8SEnji Cooper|E (a*){2} xxxxx (5,5)(5,5) BUG=range-null 34*57718be8SEnji Cooper; BUG=range-null-UNKNOWN 35*57718be8SEnji Cooper 36*57718be8SEnji Cooper?B a\(b\)*\1 abab NOMATCH EXPECTED 37*57718be8SEnji Cooper|B a\(b\)*\1 abab (0,1) # BUG=nomatch-match 38*57718be8SEnji Cooper|B a\(b\)*\1 abab (0,2)(1,2) BUG=repeat-any 39*57718be8SEnji Cooper; BUG=repeat-any-UNKNOWN 40*57718be8SEnji Cooper 41*57718be8SEnji Cooper?E (a*)* a (0,1)(0,1) EXPECTED 42*57718be8SEnji Cooper|E (a*)* ax (0,1)(0,1) BUG=repeat-null-unknown 43*57718be8SEnji Cooper|E (a*)* a (0,1)(1,1) BUG=repeat-null 44*57718be8SEnji Cooper; BUG=repeat-null-UNKNOWN 45*57718be8SEnji Cooper 46*57718be8SEnji Cooper?E (aba|a*b)* ababa (0,5)(2,5) EXPECTED 47*57718be8SEnji Cooper|E (aba|a*b)* ababa (0,5)(3,4) BUG=repeat-short 48*57718be8SEnji Cooper|E (aba|a*b)* ababa (0,4)(3,4) # LENGTH=first 49*57718be8SEnji Cooper; BUG=repeat-short-UNKNOWN 50*57718be8SEnji Cooper 51*57718be8SEnji Cooper?E (a(b)?)+ aba (0,3)(2,3) EXPECTED 52*57718be8SEnji Cooper|E (a(b)?)+ aba (0,3)(2,3)(1,2) BUG=repeat-artifact 53*57718be8SEnji Cooper; BUG=repeat-artifact-UNKNOWN 54*57718be8SEnji Cooper 55*57718be8SEnji Cooper?B \(a\(b\)*\)*\2 abab NOMATCH EXPECTED 56*57718be8SEnji Cooper|B \(a\(b\)*\)*\2 abab (0,4)(2,3)(1,2) BUG=repeat-artifact-nomatch 57*57718be8SEnji Cooper; BUG=repeat-artifact-nomatch-UNKNOWN 58*57718be8SEnji Cooper 59*57718be8SEnji Cooper?E (a?)((ab)?)(b?)a?(ab)?b? abab (0,4)(0,1)(1,1)(?,?)(1,2)(2,4) BUG=subexpression-first 60*57718be8SEnji Cooper|E .*(.*) ab (0,2)(2,2) EXPECTED 61*57718be8SEnji Cooper|E .*(.*) ab (0,2)(0,2) BUG=subexpression-first 62*57718be8SEnji Cooper; BUG=subexpression-first-UNKNOWN 63