1*22dc650dSSadaf Ebrahimi# This set of tests is run only with the 8-bit library. It tests the POSIX 2*22dc650dSSadaf Ebrahimi# interface, which is supported only with the 8-bit library. This test should 3*22dc650dSSadaf Ebrahimi# not be run with JIT (which is not available for the POSIX interface). 4*22dc650dSSadaf Ebrahimi 5*22dc650dSSadaf Ebrahimi#forbid_utf 6*22dc650dSSadaf Ebrahimi#pattern posix 7*22dc650dSSadaf Ebrahimi 8*22dc650dSSadaf Ebrahimi# Test some invalid options 9*22dc650dSSadaf Ebrahimi 10*22dc650dSSadaf Ebrahimi/abc/auto_callout 11*22dc650dSSadaf Ebrahimi** Ignored with POSIX interface: auto_callout 12*22dc650dSSadaf Ebrahimi 13*22dc650dSSadaf Ebrahimi/abc/ 14*22dc650dSSadaf Ebrahimi abc\=find_limits 15*22dc650dSSadaf Ebrahimi** Ignored with POSIX interface: find_limits 16*22dc650dSSadaf Ebrahimi 0: abc 17*22dc650dSSadaf Ebrahimi 18*22dc650dSSadaf Ebrahimi/abc/ 19*22dc650dSSadaf Ebrahimi abc\=partial_hard 20*22dc650dSSadaf Ebrahimi** Ignored with POSIX interface: partial_hard 21*22dc650dSSadaf Ebrahimi 0: abc 22*22dc650dSSadaf Ebrahimi 23*22dc650dSSadaf Ebrahimi/a(())bc/parens_nest_limit=1 24*22dc650dSSadaf Ebrahimi** Ignored with POSIX interface: parens_nest_limit 25*22dc650dSSadaf Ebrahimi 26*22dc650dSSadaf Ebrahimi/abc/allow_surrogate_escapes,max_pattern_length=2 27*22dc650dSSadaf Ebrahimi** Ignored with POSIX interface: allow_surrogate_escapes max_pattern_length 28*22dc650dSSadaf Ebrahimi 29*22dc650dSSadaf Ebrahimi# Real tests 30*22dc650dSSadaf Ebrahimi 31*22dc650dSSadaf Ebrahimi/abc/ 32*22dc650dSSadaf Ebrahimi abc 33*22dc650dSSadaf Ebrahimi 0: abc 34*22dc650dSSadaf Ebrahimi 35*22dc650dSSadaf Ebrahimi/^abc|def/ 36*22dc650dSSadaf Ebrahimi abcdef 37*22dc650dSSadaf Ebrahimi 0: abc 38*22dc650dSSadaf Ebrahimi abcdef\=notbol 39*22dc650dSSadaf Ebrahimi 0: def 40*22dc650dSSadaf Ebrahimi 41*22dc650dSSadaf Ebrahimi/.*((abc)$|(def))/ 42*22dc650dSSadaf Ebrahimi defabc 43*22dc650dSSadaf Ebrahimi 0: defabc 44*22dc650dSSadaf Ebrahimi 1: abc 45*22dc650dSSadaf Ebrahimi 2: abc 46*22dc650dSSadaf Ebrahimi defabc\=noteol 47*22dc650dSSadaf Ebrahimi 0: def 48*22dc650dSSadaf Ebrahimi 1: def 49*22dc650dSSadaf Ebrahimi 2: <unset> 50*22dc650dSSadaf Ebrahimi 3: def 51*22dc650dSSadaf Ebrahimi 52*22dc650dSSadaf Ebrahimi/the quick brown fox/ 53*22dc650dSSadaf Ebrahimi the quick brown fox 54*22dc650dSSadaf Ebrahimi 0: the quick brown fox 55*22dc650dSSadaf Ebrahimi\= Expect no match 56*22dc650dSSadaf Ebrahimi The Quick Brown Fox 57*22dc650dSSadaf EbrahimiNo match: POSIX code 17: match failed 58*22dc650dSSadaf Ebrahimi 59*22dc650dSSadaf Ebrahimi/the quick brown fox/i 60*22dc650dSSadaf Ebrahimi the quick brown fox 61*22dc650dSSadaf Ebrahimi 0: the quick brown fox 62*22dc650dSSadaf Ebrahimi The Quick Brown Fox 63*22dc650dSSadaf Ebrahimi 0: The Quick Brown Fox 64*22dc650dSSadaf Ebrahimi 65*22dc650dSSadaf Ebrahimi/(*LF)abc.def/ 66*22dc650dSSadaf Ebrahimi\= Expect no match 67*22dc650dSSadaf Ebrahimi abc\ndef 68*22dc650dSSadaf EbrahimiNo match: POSIX code 17: match failed 69*22dc650dSSadaf Ebrahimi 70*22dc650dSSadaf Ebrahimi/(*LF)abc$/ 71*22dc650dSSadaf Ebrahimi abc 72*22dc650dSSadaf Ebrahimi 0: abc 73*22dc650dSSadaf Ebrahimi abc\n 74*22dc650dSSadaf Ebrahimi 0: abc 75*22dc650dSSadaf Ebrahimi 76*22dc650dSSadaf Ebrahimi/(abc)\2/ 77*22dc650dSSadaf EbrahimiFailed: POSIX code 15: bad back reference at offset 6 78*22dc650dSSadaf Ebrahimi 79*22dc650dSSadaf Ebrahimi/(abc\1)/ 80*22dc650dSSadaf Ebrahimi\= Expect no match 81*22dc650dSSadaf Ebrahimi abc 82*22dc650dSSadaf EbrahimiNo match: POSIX code 17: match failed 83*22dc650dSSadaf Ebrahimi 84*22dc650dSSadaf Ebrahimi/a*(b+)(z)(z)/ 85*22dc650dSSadaf Ebrahimi aaaabbbbzzzz 86*22dc650dSSadaf Ebrahimi 0: aaaabbbbzz 87*22dc650dSSadaf Ebrahimi 1: bbbb 88*22dc650dSSadaf Ebrahimi 2: z 89*22dc650dSSadaf Ebrahimi 3: z 90*22dc650dSSadaf Ebrahimi aaaabbbbzzzz\=ovector=0 91*22dc650dSSadaf EbrahimiMatched without capture 92*22dc650dSSadaf Ebrahimi aaaabbbbzzzz\=ovector=1 93*22dc650dSSadaf Ebrahimi 0: aaaabbbbzz 94*22dc650dSSadaf Ebrahimi aaaabbbbzzzz\=ovector=2 95*22dc650dSSadaf Ebrahimi 0: aaaabbbbzz 96*22dc650dSSadaf Ebrahimi 1: bbbb 97*22dc650dSSadaf Ebrahimi 98*22dc650dSSadaf Ebrahimi/(*ANY)ab.cd/ 99*22dc650dSSadaf Ebrahimi ab-cd 100*22dc650dSSadaf Ebrahimi 0: ab-cd 101*22dc650dSSadaf Ebrahimi ab=cd 102*22dc650dSSadaf Ebrahimi 0: ab=cd 103*22dc650dSSadaf Ebrahimi\= Expect no match 104*22dc650dSSadaf Ebrahimi ab\ncd 105*22dc650dSSadaf EbrahimiNo match: POSIX code 17: match failed 106*22dc650dSSadaf Ebrahimi 107*22dc650dSSadaf Ebrahimi/ab.cd/s 108*22dc650dSSadaf Ebrahimi ab-cd 109*22dc650dSSadaf Ebrahimi 0: ab-cd 110*22dc650dSSadaf Ebrahimi ab=cd 111*22dc650dSSadaf Ebrahimi 0: ab=cd 112*22dc650dSSadaf Ebrahimi ab\ncd 113*22dc650dSSadaf Ebrahimi 0: ab\x0acd 114*22dc650dSSadaf Ebrahimi 115*22dc650dSSadaf Ebrahimi/a(b)c/posix_nosub 116*22dc650dSSadaf Ebrahimi abc 117*22dc650dSSadaf EbrahimiMatched with REG_NOSUB 118*22dc650dSSadaf Ebrahimi 119*22dc650dSSadaf Ebrahimi/a(?P<name>b)c/posix_nosub 120*22dc650dSSadaf Ebrahimi abc 121*22dc650dSSadaf EbrahimiMatched with REG_NOSUB 122*22dc650dSSadaf Ebrahimi 123*22dc650dSSadaf Ebrahimi/(a)\1/posix_nosub 124*22dc650dSSadaf Ebrahimi zaay 125*22dc650dSSadaf EbrahimiMatched with REG_NOSUB 126*22dc650dSSadaf Ebrahimi 127*22dc650dSSadaf Ebrahimi/a?|b?/ 128*22dc650dSSadaf Ebrahimi abc 129*22dc650dSSadaf Ebrahimi 0: a 130*22dc650dSSadaf Ebrahimi\= Expect no match 131*22dc650dSSadaf Ebrahimi ddd\=notempty 132*22dc650dSSadaf EbrahimiNo match: POSIX code 17: match failed 133*22dc650dSSadaf Ebrahimi 134*22dc650dSSadaf Ebrahimi/\w+A/ 135*22dc650dSSadaf Ebrahimi CDAAAAB 136*22dc650dSSadaf Ebrahimi 0: CDAAAA 137*22dc650dSSadaf Ebrahimi 138*22dc650dSSadaf Ebrahimi/\w+A/ungreedy 139*22dc650dSSadaf Ebrahimi CDAAAAB 140*22dc650dSSadaf Ebrahimi 0: CDA 141*22dc650dSSadaf Ebrahimi 142*22dc650dSSadaf Ebrahimi/\Biss\B/I,aftertext 143*22dc650dSSadaf Ebrahimi** Ignored with POSIX interface: info 144*22dc650dSSadaf Ebrahimi Mississippi 145*22dc650dSSadaf Ebrahimi 0: iss 146*22dc650dSSadaf Ebrahimi 0+ issippi 147*22dc650dSSadaf Ebrahimi 148*22dc650dSSadaf Ebrahimi/abc/\ 149*22dc650dSSadaf EbrahimiFailed: POSIX code 9: bad escape sequence at offset 4 150*22dc650dSSadaf Ebrahimi 151*22dc650dSSadaf Ebrahimi"(?(?C)" 152*22dc650dSSadaf EbrahimiFailed: POSIX code 11: unbalanced () at offset 6 153*22dc650dSSadaf Ebrahimi 154*22dc650dSSadaf Ebrahimi"(?(?C))" 155*22dc650dSSadaf EbrahimiFailed: POSIX code 3: pattern error at offset 6 156*22dc650dSSadaf Ebrahimi 157*22dc650dSSadaf Ebrahimi/abcd/substitute_extended 158*22dc650dSSadaf Ebrahimi** Ignored with POSIX interface: substitute_extended 159*22dc650dSSadaf Ebrahimi 160*22dc650dSSadaf Ebrahimi/\[A]{1000000}**/expand,regerror_buffsize=31 161*22dc650dSSadaf EbrahimiFailed: POSIX code 4: ? * + invalid at offset 100000 162*22dc650dSSadaf Ebrahimi** regerror() message truncated 163*22dc650dSSadaf Ebrahimi 164*22dc650dSSadaf Ebrahimi/\[A]{1000000}**/expand,regerror_buffsize=32 165*22dc650dSSadaf EbrahimiFailed: POSIX code 4: ? * + invalid at offset 1000001 166*22dc650dSSadaf Ebrahimi 167*22dc650dSSadaf Ebrahimi//posix_nosub 168*22dc650dSSadaf Ebrahimi \=offset=70000 169*22dc650dSSadaf Ebrahimi** Ignored with POSIX interface: offset 170*22dc650dSSadaf EbrahimiMatched with REG_NOSUB 171*22dc650dSSadaf Ebrahimi 172*22dc650dSSadaf Ebrahimi/^d(e)$/posix 173*22dc650dSSadaf Ebrahimi acdef\=posix_startend=2:4 174*22dc650dSSadaf Ebrahimi 0: de 175*22dc650dSSadaf Ebrahimi 1: e 176*22dc650dSSadaf Ebrahimi acde\=posix_startend=2 177*22dc650dSSadaf Ebrahimi 0: de 178*22dc650dSSadaf Ebrahimi 1: e 179*22dc650dSSadaf Ebrahimi\= Expect no match 180*22dc650dSSadaf Ebrahimi acdef 181*22dc650dSSadaf EbrahimiNo match: POSIX code 17: match failed 182*22dc650dSSadaf Ebrahimi acdef\=posix_startend=2 183*22dc650dSSadaf EbrahimiNo match: POSIX code 17: match failed 184*22dc650dSSadaf Ebrahimi 185*22dc650dSSadaf Ebrahimi/^a\x{00}b$/posix 186*22dc650dSSadaf Ebrahimi a\x{00}b\=posix_startend=0:3 187*22dc650dSSadaf Ebrahimi 0: a\x00b 188*22dc650dSSadaf Ebrahimi 189*22dc650dSSadaf Ebrahimi/"A" 00 "B"/hex 190*22dc650dSSadaf Ebrahimi A\x{00}B\=posix_startend=0:3 191*22dc650dSSadaf Ebrahimi 0: A\x00B 192*22dc650dSSadaf Ebrahimi 193*22dc650dSSadaf Ebrahimi/ABC/use_length 194*22dc650dSSadaf Ebrahimi ABC 195*22dc650dSSadaf Ebrahimi 0: ABC 196*22dc650dSSadaf Ebrahimi 197*22dc650dSSadaf Ebrahimi/a\b(c/literal,posix 198*22dc650dSSadaf Ebrahimi a\\b(c 199*22dc650dSSadaf Ebrahimi 0: a\b(c 200*22dc650dSSadaf Ebrahimi 201*22dc650dSSadaf Ebrahimi/a\b(c/literal,posix,dotall 202*22dc650dSSadaf EbrahimiFailed: POSIX code 16: bad argument at offset 0 203*22dc650dSSadaf Ebrahimi 204*22dc650dSSadaf Ebrahimi/((a)(b)?(c))/posix 205*22dc650dSSadaf Ebrahimi 123ace 206*22dc650dSSadaf Ebrahimi 0: ac 207*22dc650dSSadaf Ebrahimi 1: ac 208*22dc650dSSadaf Ebrahimi 2: a 209*22dc650dSSadaf Ebrahimi 3: <unset> 210*22dc650dSSadaf Ebrahimi 4: c 211*22dc650dSSadaf Ebrahimi 123ace\=posix_startend=2:6 212*22dc650dSSadaf Ebrahimi 0: ac 213*22dc650dSSadaf Ebrahimi 1: ac 214*22dc650dSSadaf Ebrahimi 2: a 215*22dc650dSSadaf Ebrahimi 3: <unset> 216*22dc650dSSadaf Ebrahimi 4: c 217*22dc650dSSadaf Ebrahimi 218*22dc650dSSadaf Ebrahimi//posix 219*22dc650dSSadaf Ebrahimi\= Expect errors 220*22dc650dSSadaf Ebrahimi \=null_subject 221*22dc650dSSadaf EbrahimiNo match: POSIX code 16: bad argument 222*22dc650dSSadaf Ebrahimi abc\=null_subject 223*22dc650dSSadaf EbrahimiNo match: POSIX code 16: bad argument 224*22dc650dSSadaf Ebrahimi 225*22dc650dSSadaf Ebrahimi/(*LIMIT_HEAP=0)xx/posix 226*22dc650dSSadaf Ebrahimi\= Expect error 227*22dc650dSSadaf Ebrahimi xxxx 228*22dc650dSSadaf EbrahimiNo match: POSIX code 14: failed to get memory 229*22dc650dSSadaf Ebrahimi 230*22dc650dSSadaf Ebrahimi# End of testdata/testinput18 231