1272343SngieNOTE all standard compliant implementations should pass these : 2002-05-31 2272343Sngie 3272343SngieBE abracadabra$ abracadabracadabra (7,18) 4272343SngieBE a...b abababbb (2,7) 5272343SngieBE XXXXXX ..XXXXXX (2,8) 6272343SngieE \) () (1,2) 7272343SngieBE a] a]a (0,2) 8272343SngieB } } (0,1) 9272343SngieE \} } (0,1) 10272343SngieBE \] ] (0,1) 11272343SngieB ] ] (0,1) 12272343SngieE ] ] (0,1) 13272343SngieB { { (0,1) 14272343SngieB } } (0,1) 15272343SngieBE ^a ax (0,1) 16272343SngieBE \^a a^a (1,3) 17272343SngieBE a\^ a^ (0,2) 18272343SngieBE a$ aa (1,2) 19272343SngieBE a\$ a$ (0,2) 20272343SngieBE ^$ NULL (0,0) 21272343SngieE $^ NULL (0,0) 22272343SngieE a($) aa (1,2)(2,2) 23272343SngieE a*(^a) aa (0,1)(0,1) 24272343SngieE (..)*(...)* a (0,0) 25272343SngieE (..)*(...)* abcd (0,4)(2,4) 26272343SngieE (ab|a)(bc|c) abc (0,3)(0,2)(2,3) 27272343SngieE (ab)c|abc abc (0,3)(0,2) 28272343SngieE a{0}b ab (1,2) 29272343SngieE (a*)(b?)(b+)b{3} aaabbbbbbb (0,10)(0,3)(3,4)(4,7) 30272343SngieE (a*)(b{0,1})(b{1,})b{3} aaabbbbbbb (0,10)(0,3)(3,4)(4,7) 31272343SngieE a{9876543210} NULL BADBR 32272343SngieE ((a|a)|a) a (0,1)(0,1)(0,1) 33272343SngieE (a*)(a|aa) aaaa (0,4)(0,3)(3,4) 34272343SngieE a*(a.|aa) aaaa (0,4)(2,4) 35272343SngieE a(b)|c(d)|a(e)f aef (0,3)(?,?)(?,?)(1,2) 36272343SngieE (a|b)?.* b (0,1)(0,1) 37272343SngieE (a|b)c|a(b|c) ac (0,2)(0,1) 38272343SngieE (a|b)c|a(b|c) ab (0,2)(?,?)(1,2) 39272343SngieE (a|b)*c|(a|ab)*c abc (0,3)(1,2) 40272343SngieE (a|b)*c|(a|ab)*c xc (1,2) 41272343SngieE (.a|.b).*|.*(.a|.b) xa (0,2)(0,2) 42272343SngieE a?(ab|ba)ab abab (0,4)(0,2) 43272343SngieE a?(ac{0}b|ba)ab abab (0,4)(0,2) 44272343SngieE ab|abab abbabab (0,2) 45272343SngieE aba|bab|bba baaabbbaba (5,8) 46272343SngieE aba|bab baaabbbaba (6,9) 47272343SngieE (aa|aaa)*|(a|aaaaa) aa (0,2)(0,2) 48272343SngieE (a.|.a.)*|(a|.a...) aa (0,2)(0,2) 49272343SngieE ab|a xabc (1,3) 50272343SngieE ab|a xxabc (2,4) 51272343SngieEi (Ab|cD)* aBcD (0,4)(2,4) 52272343SngieBE [^-] --a (2,3) 53272343SngieBE [a-]* --a (0,3) 54272343SngieBE [a-m-]* --amoma-- (0,4) 55272343SngieE :::1:::0:|:::1:1:0: :::0:::1:::1:::0: (8,17) 56272343SngieE :::1:::0:|:::1:1:1: :::0:::1:::1:::0: (8,17) 57272343Sngie{E [[:upper:]] A (0,1) [[<element>]] not supported 58272343SngieE [[:lower:]]+ `az{ (1,3) 59272343SngieE [[:upper:]]+ @AZ[ (1,3) 60272343SngieBE [[-]] [[-]] (2,4) 61272343SngieBE [[.NIL.]] NULL ECOLLATE 62272343SngieBE [[=aleph=]] NULL ECOLLATE 63272343Sngie} 64272343SngieBE$ \n \n (0,1) 65272343SngieBEn$ \n \n (0,1) 66272343SngieBE$ [^a] \n (0,1) 67272343SngieBE$ \na \na (0,2) 68272343SngieE (a)(b)(c) abc (0,3)(0,1)(1,2)(2,3) 69272343SngieBE xxx xxx (0,3) 70272343SngieE1 (^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\* */?)0*[6-7]))([^0-9]|$) feb 6, (0,6) 71272343SngieE1 (^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\* */?)0*[6-7]))([^0-9]|$) 2/7 (0,3) 72272343SngieE1 (^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\* */?)0*[6-7]))([^0-9]|$) feb 1,Feb 6 (5,11) 73272343SngieE3 ((((((((((((((((((((((((((((((x)))))))))))))))))))))))))))))) x (0,1)(0,1)(0,1) 74272343SngieE3 ((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))* xx (0,2)(1,2)(1,2) 75272343SngieE a?(ab|ba)* ababababababababababababababababababababababababababababababababababababababababa (0,81)(79,81) 76272343SngieE abaa|abbaa|abbbaa|abbbbaa ababbabbbabbbabbbbabbbbaa (18,25) 77272343SngieE abaa|abbaa|abbbaa|abbbbaa ababbabbbabbbabbbbabaa (18,22) 78272343SngieE aaac|aabc|abac|abbc|baac|babc|bbac|bbbc baaabbbabac (7,11) 79272343SngieBE$ .* \x01\xff (0,2) 80272343SngieE aaaa|bbbb|cccc|ddddd|eeeeee|fffffff|gggg|hhhh|iiiii|jjjjj|kkkkk|llll XaaaXbbbXcccXdddXeeeXfffXgggXhhhXiiiXjjjXkkkXlllXcbaXaaaa (53,57) 81272343SngieL aaaa\nbbbb\ncccc\nddddd\neeeeee\nfffffff\ngggg\nhhhh\niiiii\njjjjj\nkkkkk\nllll XaaaXbbbXcccXdddXeeeXfffXgggXhhhXiiiXjjjXkkkXlllXcbaXaaaa NOMATCH 82272343SngieE a*a*a*a*a*b aaaaaaaaab (0,10) 83272343SngieBE ^ NULL (0,0) 84272343SngieBE $ NULL (0,0) 85272343SngieBE ^$ NULL (0,0) 86272343SngieBE ^a$ a (0,1) 87272343SngieBE abc abc (0,3) 88272343SngieBE abc xabcy (1,4) 89272343SngieBE abc ababc (2,5) 90272343SngieBE ab*c abc (0,3) 91272343SngieBE ab*bc abc (0,3) 92272343SngieBE ab*bc abbc (0,4) 93272343SngieBE ab*bc abbbbc (0,6) 94272343SngieE ab+bc abbc (0,4) 95272343SngieE ab+bc abbbbc (0,6) 96272343SngieE ab?bc abbc (0,4) 97272343SngieE ab?bc abc (0,3) 98272343SngieE ab?c abc (0,3) 99272343SngieBE ^abc$ abc (0,3) 100272343SngieBE ^abc abcc (0,3) 101272343SngieBE abc$ aabc (1,4) 102272343SngieBE ^ abc (0,0) 103272343SngieBE $ abc (3,3) 104272343SngieBE a.c abc (0,3) 105272343SngieBE a.c axc (0,3) 106272343SngieBE a.*c axyzc (0,5) 107272343SngieBE a[bc]d abd (0,3) 108272343SngieBE a[b-d]e ace (0,3) 109272343SngieBE a[b-d] aac (1,3) 110272343SngieBE a[-b] a- (0,2) 111272343SngieBE a[b-] a- (0,2) 112272343SngieBE a] a] (0,2) 113272343SngieBE a[]]b a]b (0,3) 114272343SngieBE a[^bc]d aed (0,3) 115272343SngieBE a[^-b]c adc (0,3) 116272343SngieBE a[^]b]c adc (0,3) 117272343SngieE ab|cd abc (0,2) 118272343SngieE ab|cd abcd (0,2) 119272343SngieE a\(b a(b (0,3) 120272343SngieE a\(*b ab (0,2) 121272343SngieE a\(*b a((b (0,4) 122272343SngieE ((a)) abc (0,1)(0,1)(0,1) 123272343SngieE (a)b(c) abc (0,3)(0,1)(2,3) 124272343SngieE a+b+c aabbabc (4,7) 125272343SngieE a* aaa (0,3) 126272343SngieE (a*)* - (0,0)(0,0) 127272343SngieE (a*)+ - (0,0)(0,0) 128272343SngieE (a*|b)* - (0,0)(0,0) 129272343SngieE (a+|b)* ab (0,2)(1,2) 130272343SngieE (a+|b)+ ab (0,2)(1,2) 131272343SngieE (a+|b)? ab (0,1)(0,1) 132272343SngieBE [^ab]* cde (0,3) 133272343SngieE (^)* - (0,0)(0,0) 134272343SngieBE a* NULL (0,0) 135272343SngieE ([abc])*d abbbcd (0,6)(4,5) 136272343SngieE ([abc])*bcd abcd (0,4)(0,1) 137272343SngieE a|b|c|d|e e (0,1) 138272343SngieE (a|b|c|d|e)f ef (0,2)(0,1) 139272343SngieE ((a*|b))* - (0,0)(0,0)(0,0) 140272343SngieBE abcd*efg abcdefg (0,7) 141272343SngieBE ab* xabyabbbz (1,3) 142272343SngieBE ab* xayabbbz (1,2) 143272343SngieE (ab|cd)e abcde (2,5)(2,4) 144272343SngieBE [abhgefdc]ij hij (0,3) 145272343SngieE (a|b)c*d abcd (1,4)(1,2) 146272343SngieE (ab|ab*)bc abc (0,3)(0,1) 147272343SngieE a([bc]*)c* abc (0,3)(1,3) 148272343SngieE a([bc]*)(c*d) abcd (0,4)(1,3)(3,4) 149272343SngieE a([bc]+)(c*d) abcd (0,4)(1,3)(3,4) 150272343SngieE a([bc]*)(c+d) abcd (0,4)(1,2)(2,4) 151272343SngieE a[bcd]*dcdcde adcdcde (0,7) 152272343SngieE (ab|a)b*c abc (0,3)(0,2) 153272343SngieE ((a)(b)c)(d) abcd (0,4)(0,3)(0,1)(1,2)(3,4) 154272343SngieBE [A-Za-z_][A-Za-z0-9_]* alpha (0,5) 155272343SngieE ^a(bc+|b[eh])g|.h$ abh (1,3) 156272343SngieE (bc+d$|ef*g.|h?i(j|k)) effgz (0,5)(0,5) 157272343SngieE (bc+d$|ef*g.|h?i(j|k)) ij (0,2)(0,2)(1,2) 158272343SngieE (bc+d$|ef*g.|h?i(j|k)) reffgz (1,6)(1,6) 159272343SngieE (((((((((a))))))))) a (0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1)(0,1) 160272343SngieBE multiple words multiple words yeah (0,14) 161272343SngieE (.*)c(.*) abcde (0,5)(0,2)(3,5) 162272343SngieBE abcd abcd (0,4) 163272343SngieE a(bc)d abcd (0,4)(1,3) 164272343SngieE a[-]?c ac (0,3) 165272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Qaddafi (0,15)(?,?)(10,12) 166272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Mo'ammar Gadhafi (0,16)(?,?)(11,13) 167272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Kaddafi (0,15)(?,?)(10,12) 168272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Qadhafi (0,15)(?,?)(10,12) 169272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Gadafi (0,14)(?,?)(10,11) 170272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Mu'ammar Qadafi (0,15)(?,?)(11,12) 171272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Moamar Gaddafi (0,14)(?,?)(9,11) 172272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Mu'ammar Qadhdhafi (0,18)(?,?)(13,15) 173272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Khaddafi (0,16)(?,?)(11,13) 174272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Ghaddafy (0,16)(?,?)(11,13) 175272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Ghadafi (0,15)(?,?)(11,12) 176272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Ghaddafi (0,16)(?,?)(11,13) 177272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muamar Kaddafi (0,14)(?,?)(9,11) 178272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Quathafi (0,16)(?,?)(11,13) 179272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Muammar Gheddafi (0,16)(?,?)(11,13) 180272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Moammar Khadafy (0,15)(?,?)(11,12) 181272343SngieE M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy] Moammar Qudhafi (0,15)(?,?)(10,12) 182272343SngieE a+(b|c)*d+ aabcdd (0,6)(3,4) 183272343SngieE ^.+$ vivi (0,4) 184272343SngieE ^(.+)$ vivi (0,4)(0,4) 185272343SngieE ^([^!.]+).att.com!(.+)$ gryphon.att.com!eby (0,19)(0,7)(16,19) 186272343SngieE ^([^!]+!)?([^!]+)$ bas (0,3)(?,?)(0,3) 187272343SngieE ^([^!]+!)?([^!]+)$ bar!bas (0,7)(0,4)(4,7) 188272343SngieE ^([^!]+!)?([^!]+)$ foo!bas (0,7)(0,4)(4,7) 189272343SngieE ^.+!([^!]+!)([^!]+)$ foo!bar!bas (0,11)(4,8)(8,11) 190272343SngieE ((foo)|(bar))!bas bar!bas (0,7)(0,3)(?,?)(0,3) 191272343SngieE ((foo)|(bar))!bas foo!bar!bas (4,11)(4,7)(?,?)(4,7) 192272343SngieE ((foo)|(bar))!bas foo!bas (0,7)(0,3)(0,3) 193272343SngieE ((foo)|bar)!bas bar!bas (0,7)(0,3) 194272343SngieE ((foo)|bar)!bas foo!bar!bas (4,11)(4,7) 195272343SngieE ((foo)|bar)!bas foo!bas (0,7)(0,3)(0,3) 196272343SngieE (foo|(bar))!bas bar!bas (0,7)(0,3)(0,3) 197272343SngieE (foo|(bar))!bas foo!bar!bas (4,11)(4,7)(4,7) 198272343SngieE (foo|(bar))!bas foo!bas (0,7)(0,3) 199272343SngieE (foo|bar)!bas bar!bas (0,7)(0,3) 200272343SngieE (foo|bar)!bas foo!bar!bas (4,11)(4,7) 201272343SngieE (foo|bar)!bas foo!bas (0,7)(0,3) 202272343SngieE ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ foo!bar!bas (0,11)(0,11)(?,?)(?,?)(4,8)(8,11) 203272343SngieE ^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$ bas (0,3)(?,?)(0,3) 204272343SngieE ^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$ bar!bas (0,7)(0,4)(4,7) 205272343SngieE ^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$ foo!bar!bas (0,11)(?,?)(?,?)(4,8)(8,11) 206272343SngieE ^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$ foo!bas (0,7)(0,4)(4,7) 207272343SngieE ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ bas (0,3)(0,3)(?,?)(0,3) 208272343SngieE ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ bar!bas (0,7)(0,7)(0,4)(4,7) 209272343SngieE ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ foo!bar!bas (0,11)(0,11)(?,?)(?,?)(4,8)(8,11) 210272343SngieE ^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$ foo!bas (0,7)(0,7)(0,4)(4,7) 211272343SngieE .*(/XXX).* /XXX (0,4)(0,4) 212272343SngieE .*(\\XXX).* \XXX (0,4)(0,4) 213272343SngieE \\XXX \XXX (0,4) 214272343SngieE .*(/000).* /000 (0,4)(0,4) 215272343SngieE .*(\\000).* \000 (0,4)(0,4) 216272343SngieE \\000 \000 (0,4) 217