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_RECURSION=4294967280)abc/I 47 48 /(a+)*zz/ 49 aaaaaaaaaaaaaz 50 aaaaaaaaaaaaaz\=match_limit=3000 51 52 /(a+)*zz/ 53 aaaaaaaaaaaaaz\=recursion_limit=10 54 55 /(*LIMIT_MATCH=3000)(a+)*zz/I 56 aaaaaaaaaaaaaz 57 aaaaaaaaaaaaaz\=match_limit=60000 58 59 /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I 60 aaaaaaaaaaaaaz 61 62 /(*LIMIT_MATCH=60000)(a+)*zz/I 63 aaaaaaaaaaaaaz 64 aaaaaaaaaaaaaz\=match_limit=3000 65 66 /(*LIMIT_RECURSION=10)(a+)*zz/I 67 aaaaaaaaaaaaaz 68 aaaaaaaaaaaaaz\=recursion_limit=1000 69 70 /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/I 71 aaaaaaaaaaaaaz 72 73 /(*LIMIT_RECURSION=1000)(a+)*zz/I 74 aaaaaaaaaaaaaz 75 aaaaaaaaaaaaaz\=recursion_limit=10 76 77 # These three have infinitely nested recursions. 78 79 /((?2))((?1))/ 80 abc 81 82 /((?(R2)a+|(?1)b))/ 83 aaaabcde 84 85 /(?(R)a*(?1)|((?R))b)/ 86 aaaabcde 87 88 # The allusedtext modifier does not work with JIT, which does not maintain 89 # the leftchar/rightchar data. 90 91 /abc(?=xyz)/allusedtext 92 abcxyzpqr 93 abcxyzpqr\=aftertext 94 95 /(?<=pqr)abc(?=xyz)/allusedtext 96 xyzpqrabcxyzpqr 97 xyzpqrabcxyzpqr\=aftertext 98 99 /a\b/ 100 a.\=allusedtext 101 a\=allusedtext 102 103 /abc\Kxyz/ 104 abcxyz\=allusedtext 105 106 /abc(?=xyz(*ACCEPT))/ 107 abcxyz\=allusedtext 108 109 /abc(?=abcde)(?=ab)/allusedtext 110 abcabcdefg 111 112 # These tests provoke recursion loops, which give a different error message 113 # when JIT is used. 114 115 /(?R)/I 116 abcd 117 118 /(a|(?R))/I 119 abcd 120 defg 121 122 /(ab|(bc|(de|(?R))))/I 123 abcd 124 fghi 125 126 /(ab|(bc|(de|(?1))))/I 127 abcd 128 fghi 129 130 /x(ab|(bc|(de|(?1)x)x)x)/I 131 xab123 132 xfghi 133 134 /(?!\w)(?R)/ 135 abcd 136 =abc 137 138 /(?=\w)(?R)/ 139 =abc 140 abcd 141 142 /(?<!\w)(?R)/ 143 abcd 144 145 /(?<=\w)(?R)/ 146 abcd 147 148 /(a+|(?R)b)/ 149 aaa 150 bbb 151 152 /[^\xff]((?1))/BI 153 abcd 154 155 # These tests don't behave the same with JIT 156 157 /\w+(?C1)/BI,no_auto_possess 158 abc\=callout_fail=1 159 160 /(*NO_AUTO_POSSESS)\w+(?C1)/BI 161 abc\=callout_fail=1 162 163 # End of testinput15 164