1 # These are: 2 # 3 # (1) Tests of the match-limiting features. The results are different for 4 # interpretive or JIT matching, so this test should not be run with JIT. The 5 # same tests are run using JIT in test 17. 6 7 # (2) Other tests that must not be run with JIT. 8 9 /(a+)*zz/I 10 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\=find_limits 11 aaaaaaaaaaaaaz\=find_limits 12 13 !((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)!I 14 /* this is a C style comment */\=find_limits 15 16 /^(?>a)++/ 17 aa\=find_limits 18 aaaaaaaaa\=find_limits 19 20 /(a)(?1)++/ 21 aa\=find_limits 22 aaaaaaaaa\=find_limits 23 24 /a(?:.)*?a/ims 25 abbbbbbbbbbbbbbbbbbbbba\=find_limits 26 27 /a(?:.(*THEN))*?a/ims 28 abbbbbbbbbbbbbbbbbbbbba\=find_limits 29 30 /a(?:.(*THEN:ABC))*?a/ims 31 abbbbbbbbbbbbbbbbbbbbba\=find_limits 32 33 /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/ 34 aabbccddee\=find_limits 35 36 /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/ 37 aabbccddee\=find_limits 38 39 /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/ 40 aabbccddee\=find_limits 41 42 /(*LIMIT_MATCH=12bc)abc/ 43 44 /(*LIMIT_MATCH=4294967290)abc/ 45 46 /(*LIMIT_DEPTH=4294967280)abc/I 47 48 /(a+)*zz/ 49 \= Expect no match 50 aaaaaaaaaaaaaz 51 \= Expect limit exceeded 52 aaaaaaaaaaaaaz\=match_limit=3000 53 54 /(a+)*zz/ 55 \= Expect limit exceeded 56 aaaaaaaaaaaaaz\=depth_limit=10 57 58 /(*LIMIT_MATCH=3000)(a+)*zz/I 59 \= Expect limit exceeded 60 aaaaaaaaaaaaaz 61 \= Expect limit exceeded 62 aaaaaaaaaaaaaz\=match_limit=60000 63 64 /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I 65 \= Expect limit exceeded 66 aaaaaaaaaaaaaz 67 68 /(*LIMIT_MATCH=60000)(a+)*zz/I 69 \= Expect no match 70 aaaaaaaaaaaaaz 71 \= Expect limit exceeded 72 aaaaaaaaaaaaaz\=match_limit=3000 73 74 /(*LIMIT_DEPTH=10)(a+)*zz/I 75 \= Expect limit exceeded 76 aaaaaaaaaaaaaz 77 \= Expect limit exceeded 78 aaaaaaaaaaaaaz\=depth_limit=1000 79 80 /(*LIMIT_DEPTH=10)(*LIMIT_DEPTH=1000)(a+)*zz/I 81 \= Expect no match 82 aaaaaaaaaaaaaz 83 84 /(*LIMIT_DEPTH=1000)(a+)*zz/I 85 \= Expect no match 86 aaaaaaaaaaaaaz 87 \= Expect limit exceeded 88 aaaaaaaaaaaaaz\=depth_limit=10 89 90 # These three have infinitely nested recursions. 91 92 /((?2))((?1))/ 93 abc 94 95 /((?(R2)a+|(?1)b))()/ 96 aaaabcde 97 98 /(?(R)a*(?1)|((?R))b)/ 99 aaaabcde 100 101 # The allusedtext modifier does not work with JIT, which does not maintain 102 # the leftchar/rightchar data. 103 104 /abc(?=xyz)/allusedtext 105 abcxyzpqr 106 abcxyzpqr\=aftertext 107 108 /(?<=pqr)abc(?=xyz)/allusedtext 109 xyzpqrabcxyzpqr 110 xyzpqrabcxyzpqr\=aftertext 111 112 /a\b/ 113 a.\=allusedtext 114 a\=allusedtext 115 116 /abc\Kxyz/ 117 abcxyz\=allusedtext 118 119 /abc(?=xyz(*ACCEPT))/ 120 abcxyz\=allusedtext 121 122 /abc(?=abcde)(?=ab)/allusedtext 123 abcabcdefg 124 125 # These tests provoke recursion loops, which give a different error message 126 # when JIT is used. 127 128 /(?R)/I 129 abcd 130 131 /(a|(?R))/I 132 abcd 133 defg 134 135 /(ab|(bc|(de|(?R))))/I 136 abcd 137 fghi 138 139 /(ab|(bc|(de|(?1))))/I 140 abcd 141 fghi 142 143 /x(ab|(bc|(de|(?1)x)x)x)/I 144 xab123 145 xfghi 146 147 /(?!\w)(?R)/ 148 abcd 149 =abc 150 151 /(?=\w)(?R)/ 152 =abc 153 abcd 154 155 /(?<!\w)(?R)/ 156 abcd 157 158 /(?<=\w)(?R)/ 159 abcd 160 161 /(a+|(?R)b)/ 162 aaa 163 bbb 164 165 /[^\xff]((?1))/BI 166 abcd 167 168 # These tests don't behave the same with JIT 169 170 /\w+(?C1)/BI,no_auto_possess 171 abc\=callout_fail=1 172 173 /(*NO_AUTO_POSSESS)\w+(?C1)/BI 174 abc\=callout_fail=1 175 176 # This test breaks the JIT stack limit 177 178 /(|]+){2,2452}/ 179 (|]+){2,2452} 180 181 /(*LIMIT_HEAP=21)\[(a)]{60}/expand 182 \[a]{60} 183 184 # End of testinput15 185