1 /-- This test is run only when JIT support is available. It checks for a 2 successful and an unsuccessful JIT compile and save and restore behaviour, 3 and a couple of things that are different with JIT. --/ 4 5 /abc/S+I 6 Capturing subpattern count = 0 7 No options 8 First char = 'a' 9 Need char = 'c' 10 Subject length lower bound = 3 11 No starting char list 12 JIT study was successful 13 14 /(?(?C1)(?=a)a)/S+I 15 Capturing subpattern count = 0 16 May match empty string 17 No options 18 No first char 19 No need char 20 Study returned NULL 21 JIT study was not successful 22 23 /(?(?C1)(?=a)a)/S!+I 24 Capturing subpattern count = 0 25 May match empty string 26 No options 27 No first char 28 No need char 29 Subject length lower bound = -1 30 No starting char list 31 JIT study was not successful 32 33 /abc/S+I>testsavedregex 34 Capturing subpattern count = 0 35 No options 36 First char = 'a' 37 Need char = 'c' 38 Subject length lower bound = 3 39 No starting char list 40 JIT study was successful 41 Compiled pattern written to testsavedregex 42 Study data written to testsavedregex 43 44 <testsavedregex 45 Compiled pattern loaded from testsavedregex 46 Study data loaded from testsavedregex 47 abc 48 0: abc 49 50 /a*/SI 51 Capturing subpattern count = 0 52 May match empty string 53 No options 54 No first char 55 No need char 56 Study returned NULL 57 58 /(?(R)a*(?1)|((?R))b)/S+ 59 aaaabcde 60 Error -27 (JIT stack limit reached) 61 62 /-- Test various compile modes --/ 63 64 /abcd/S++ 65 abcd 66 0: abcd (JIT) 67 xyz 68 No match (JIT) 69 70 /abcd/S+ 71 abcd 72 0: abcd (JIT) 73 ab\P 74 Partial match: ab (JIT) 75 ab\P\P 76 Partial match: ab (JIT) 77 xyz 78 No match (JIT) 79 80 /abcd/S++ 81 abcd 82 0: abcd (JIT) 83 ab\P 84 Partial match: ab (JIT) 85 ab\P\P 86 Partial match: ab (JIT) 87 xyz 88 No match (JIT) 89 90 /abcd/S++1 91 abcd 92 0: abcd (JIT) 93 ab\P 94 Partial match: ab 95 ab\P\P 96 Partial match: ab 97 xyz 98 No match (JIT) 99 xyz\P 100 No match 101 102 /abcd/S++2 103 abcd 104 0: abcd 105 ab\P 106 Partial match: ab (JIT) 107 ab\P\P 108 Partial match: ab 109 xyz 110 No match 111 112 /abcd/S++3 113 abcd 114 0: abcd (JIT) 115 ab\P 116 Partial match: ab (JIT) 117 ab\P\P 118 Partial match: ab 119 xyz 120 No match (JIT) 121 122 /abcd/S++4 123 abcd 124 0: abcd 125 ab\P 126 Partial match: ab 127 ab\P\P 128 Partial match: ab (JIT) 129 xyz 130 No match 131 132 /abcd/S++5 133 abcd 134 0: abcd (JIT) 135 ab\P 136 Partial match: ab 137 ab\P\P 138 Partial match: ab (JIT) 139 xyz 140 No match (JIT) 141 142 /abcd/S++6 143 abcd 144 0: abcd 145 ab\P 146 Partial match: ab (JIT) 147 ab\P\P 148 Partial match: ab (JIT) 149 xyz 150 No match 151 152 /abcd/S++7 153 abcd 154 0: abcd (JIT) 155 ab\P 156 Partial match: ab (JIT) 157 ab\P\P 158 Partial match: ab (JIT) 159 xyz 160 No match (JIT) 161 162 /abcd/S++2I 163 Capturing subpattern count = 0 164 No options 165 First char = 'a' 166 Need char = 'd' 167 Subject length lower bound = 4 168 No starting char list 169 JIT study was successful 170 171 /(*NO_START_OPT)a(*:m)b/KS++ 172 a 173 No match, mark = m (JIT) 174 175 /^12345678abcd/mS++ 176 12345678abcd 177 0: 12345678abcd (JIT) 178 179 /-- End of testinput12 --/ 180