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