| OLD | NEW |
| (Empty) |
| 1 description( | |
| 2 "A chunk of our port of PCRE's test suite, adapted to be more applicable to Java
Script." | |
| 3 ); | |
| 4 | |
| 5 var regex0 = /a.b/; | |
| 6 var input0 = "acb"; | |
| 7 var results = ["acb"]; | |
| 8 shouldBe('regex0.exec(input0);', 'results'); | |
| 9 var input1 = "a\x7fb"; | |
| 10 var results = ["a\u007fb"]; | |
| 11 shouldBe('regex0.exec(input1);', 'results'); | |
| 12 var input2 = "a\u0100b"; | |
| 13 var results = ["a\u0100b"]; | |
| 14 shouldBe('regex0.exec(input2);', 'results'); | |
| 15 // Failers | |
| 16 var input3 = "a\nb"; | |
| 17 var results = null; | |
| 18 shouldBe('regex0.exec(input3);', 'results'); | |
| 19 | |
| 20 var regex1 = /a(.{3})b/; | |
| 21 var input0 = "a\u4000xyb"; | |
| 22 var results = ["a\u4000xyb", "\u4000xy"]; | |
| 23 shouldBe('regex1.exec(input0);', 'results'); | |
| 24 var input1 = "a\u4000\x7fyb"; | |
| 25 var results = ["a\u4000\u007fyb", "\u4000\u007fy"]; | |
| 26 shouldBe('regex1.exec(input1);', 'results'); | |
| 27 var input2 = "a\u4000\u0100yb"; | |
| 28 var results = ["a\u4000\u0100yb", "\u4000\u0100y"]; | |
| 29 shouldBe('regex1.exec(input2);', 'results'); | |
| 30 // Failers | |
| 31 var input3 = "a\u4000b"; | |
| 32 var results = null; | |
| 33 shouldBe('regex1.exec(input3);', 'results'); | |
| 34 var input4 = "ac\ncb"; | |
| 35 var results = null; | |
| 36 shouldBe('regex1.exec(input4);', 'results'); | |
| 37 | |
| 38 var regex2 = /a(.*?)(.)/; | |
| 39 var input0 = "a\xc0\x88b"; | |
| 40 var results = ["a\xc0", "", "\xc0"]; | |
| 41 shouldBe('regex2.exec(input0);', 'results'); | |
| 42 | |
| 43 var regex3 = /a(.*?)(.)/; | |
| 44 var input0 = "a\u0100b"; | |
| 45 var results = ["a\u0100", "", "\u0100"]; | |
| 46 shouldBe('regex3.exec(input0);', 'results'); | |
| 47 | |
| 48 var regex4 = /a(.*)(.)/; | |
| 49 var input0 = "a\xc0\x88b"; | |
| 50 var results = ["a\xc0\x88b", "\xc0\x88", "b"]; | |
| 51 shouldBe('regex4.exec(input0);', 'results'); | |
| 52 | |
| 53 var regex5 = /a(.*)(.)/; | |
| 54 var input0 = "a\u0100b"; | |
| 55 var results = ["a\u0100b", "\u0100", "b"]; | |
| 56 shouldBe('regex5.exec(input0);', 'results'); | |
| 57 | |
| 58 var regex6 = /a(.)(.)/; | |
| 59 var input0 = "a\xc0\x92bcd"; | |
| 60 var results = ["a\xc0\x92", "\xc0", "\x92"]; | |
| 61 shouldBe('regex6.exec(input0);', 'results'); | |
| 62 | |
| 63 var regex7 = /a(.)(.)/; | |
| 64 var input0 = "a\u0240bcd"; | |
| 65 var results = ["a\u0240b", "\u0240", "b"]; | |
| 66 shouldBe('regex7.exec(input0);', 'results'); | |
| 67 | |
| 68 var regex8 = /a(.?)(.)/; | |
| 69 var input0 = "a\xc0\x92bcd"; | |
| 70 var results = ["a\xc0\x92", "\xc0", "\x92"]; | |
| 71 shouldBe('regex8.exec(input0);', 'results'); | |
| 72 | |
| 73 var regex9 = /a(.?)(.)/; | |
| 74 var input0 = "a\u0240bcd"; | |
| 75 var results = ["a\u0240b", "\u0240", "b"]; | |
| 76 shouldBe('regex9.exec(input0);', 'results'); | |
| 77 | |
| 78 var regex10 = /a(.??)(.)/; | |
| 79 var input0 = "a\xc0\x92bcd"; | |
| 80 var results = ["a\xc0", "", "\xc0"]; | |
| 81 shouldBe('regex10.exec(input0);', 'results'); | |
| 82 | |
| 83 var regex11 = /a(.??)(.)/; | |
| 84 var input0 = "a\u0240bcd"; | |
| 85 var results = ["a\u0240", "", "\u0240"]; | |
| 86 shouldBe('regex11.exec(input0);', 'results'); | |
| 87 | |
| 88 var regex12 = /a(.{3})b/; | |
| 89 var input0 = "a\u1234xyb"; | |
| 90 var results = ["a\u1234xyb", "\u1234xy"]; | |
| 91 shouldBe('regex12.exec(input0);', 'results'); | |
| 92 var input1 = "a\u1234\u4321yb"; | |
| 93 var results = ["a\u1234\u4321yb", "\u1234\u4321y"]; | |
| 94 shouldBe('regex12.exec(input1);', 'results'); | |
| 95 var input2 = "a\u1234\u4321\u3412b"; | |
| 96 var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"]; | |
| 97 shouldBe('regex12.exec(input2);', 'results'); | |
| 98 // Failers | |
| 99 var input3 = "a\u1234b"; | |
| 100 var results = null; | |
| 101 shouldBe('regex12.exec(input3);', 'results'); | |
| 102 var input4 = "ac\ncb"; | |
| 103 var results = null; | |
| 104 shouldBe('regex12.exec(input4);', 'results'); | |
| 105 | |
| 106 var regex13 = /a(.{3,})b/; | |
| 107 var input0 = "a\u1234xyb"; | |
| 108 var results = ["a\u1234xyb", "\u1234xy"]; | |
| 109 shouldBe('regex13.exec(input0);', 'results'); | |
| 110 var input1 = "a\u1234\u4321yb"; | |
| 111 var results = ["a\u1234\u4321yb", "\u1234\u4321y"]; | |
| 112 shouldBe('regex13.exec(input1);', 'results'); | |
| 113 var input2 = "a\u1234\u4321\u3412b"; | |
| 114 var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"]; | |
| 115 shouldBe('regex13.exec(input2);', 'results'); | |
| 116 var input3 = "axxxxbcdefghijb"; | |
| 117 var results = ["axxxxbcdefghijb", "xxxxbcdefghij"]; | |
| 118 shouldBe('regex13.exec(input3);', 'results'); | |
| 119 var input4 = "a\u1234\u4321\u3412\u3421b"; | |
| 120 var results = ["a\u1234\u4321\u3412\u3421b", "\u1234\u4321\u3412\u3421"]; | |
| 121 shouldBe('regex13.exec(input4);', 'results'); | |
| 122 // Failers | |
| 123 var input5 = "a\u1234b"; | |
| 124 var results = null; | |
| 125 shouldBe('regex13.exec(input5);', 'results'); | |
| 126 | |
| 127 var regex14 = /a(.{3,}?)b/; | |
| 128 var input0 = "a\u1234xyb"; | |
| 129 var results = ["a\u1234xyb", "\u1234xy"]; | |
| 130 shouldBe('regex14.exec(input0);', 'results'); | |
| 131 var input1 = "a\u1234\u4321yb"; | |
| 132 var results = ["a\u1234\u4321yb", "\u1234\u4321y"]; | |
| 133 shouldBe('regex14.exec(input1);', 'results'); | |
| 134 var input2 = "a\u1234\u4321\u3412b"; | |
| 135 var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"]; | |
| 136 shouldBe('regex14.exec(input2);', 'results'); | |
| 137 var input3 = "axxxxbcdefghijb"; | |
| 138 var results = ["axxxxb", "xxxx"]; | |
| 139 shouldBe('regex14.exec(input3);', 'results'); | |
| 140 var input4 = "a\u1234\u4321\u3412\u3421b"; | |
| 141 var results = ["a\u1234\u4321\u3412\u3421b", "\u1234\u4321\u3412\u3421"]; | |
| 142 shouldBe('regex14.exec(input4);', 'results'); | |
| 143 // Failers | |
| 144 var input5 = "a\u1234b"; | |
| 145 var results = null; | |
| 146 shouldBe('regex14.exec(input5);', 'results'); | |
| 147 | |
| 148 var regex15 = /a(.{3,5})b/; | |
| 149 var input0 = "a\u1234xyb"; | |
| 150 var results = ["a\u1234xyb", "\u1234xy"]; | |
| 151 shouldBe('regex15.exec(input0);', 'results'); | |
| 152 var input1 = "a\u1234\u4321yb"; | |
| 153 var results = ["a\u1234\u4321yb", "\u1234\u4321y"]; | |
| 154 shouldBe('regex15.exec(input1);', 'results'); | |
| 155 var input2 = "a\u1234\u4321\u3412b"; | |
| 156 var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"]; | |
| 157 shouldBe('regex15.exec(input2);', 'results'); | |
| 158 var input3 = "axxxxbcdefghijb"; | |
| 159 var results = ["axxxxb", "xxxx"]; | |
| 160 shouldBe('regex15.exec(input3);', 'results'); | |
| 161 var input4 = "a\u1234\u4321\u3412\u3421b"; | |
| 162 var results = ["a\u1234\u4321\u3412\u3421b", "\u1234\u4321\u3412\u3421"]; | |
| 163 shouldBe('regex15.exec(input4);', 'results'); | |
| 164 var input5 = "axbxxbcdefghijb"; | |
| 165 var results = ["axbxxb", "xbxx"]; | |
| 166 shouldBe('regex15.exec(input5);', 'results'); | |
| 167 var input6 = "axxxxxbcdefghijb"; | |
| 168 var results = ["axxxxxb", "xxxxx"]; | |
| 169 shouldBe('regex15.exec(input6);', 'results'); | |
| 170 // Failers | |
| 171 var input7 = "a\u1234b"; | |
| 172 var results = null; | |
| 173 shouldBe('regex15.exec(input7);', 'results'); | |
| 174 var input8 = "axxxxxxbcdefghijb"; | |
| 175 var results = null; | |
| 176 shouldBe('regex15.exec(input8);', 'results'); | |
| 177 | |
| 178 var regex16 = /a(.{3,5}?)b/; | |
| 179 var input0 = "a\u1234xyb"; | |
| 180 var results = ["a\u1234xyb", "\u1234xy"]; | |
| 181 shouldBe('regex16.exec(input0);', 'results'); | |
| 182 var input1 = "a\u1234\u4321yb"; | |
| 183 var results = ["a\u1234\u4321yb", "\u1234\u4321y"]; | |
| 184 shouldBe('regex16.exec(input1);', 'results'); | |
| 185 var input2 = "a\u1234\u4321\u3412b"; | |
| 186 var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"]; | |
| 187 shouldBe('regex16.exec(input2);', 'results'); | |
| 188 var input3 = "axxxxbcdefghijb"; | |
| 189 var results = ["axxxxb", "xxxx"]; | |
| 190 shouldBe('regex16.exec(input3);', 'results'); | |
| 191 var input4 = "a\u1234\u4321\u3412\u3421b"; | |
| 192 var results = ["a\u1234\u4321\u3412\u3421b", "\u1234\u4321\u3412\u3421"]; | |
| 193 shouldBe('regex16.exec(input4);', 'results'); | |
| 194 var input5 = "axbxxbcdefghijb"; | |
| 195 var results = ["axbxxb", "xbxx"]; | |
| 196 shouldBe('regex16.exec(input5);', 'results'); | |
| 197 var input6 = "axxxxxbcdefghijb"; | |
| 198 var results = ["axxxxxb", "xxxxx"]; | |
| 199 shouldBe('regex16.exec(input6);', 'results'); | |
| 200 // Failers | |
| 201 var input7 = "a\u1234b"; | |
| 202 var results = null; | |
| 203 shouldBe('regex16.exec(input7);', 'results'); | |
| 204 var input8 = "axxxxxxbcdefghijb"; | |
| 205 var results = null; | |
| 206 shouldBe('regex16.exec(input8);', 'results'); | |
| 207 | |
| 208 var regex17 = /^[a\u00c0]/; | |
| 209 // Failers | |
| 210 var input0 = "\u0100"; | |
| 211 var results = null; | |
| 212 shouldBe('regex17.exec(input0);', 'results'); | |
| 213 | |
| 214 var regex21 = /(?:\u0100){3}b/; | |
| 215 var input0 = "\u0100\u0100\u0100b"; | |
| 216 var results = ["\u0100\u0100\u0100b"]; | |
| 217 shouldBe('regex21.exec(input0);', 'results'); | |
| 218 // Failers | |
| 219 var input1 = "\u0100\u0100b"; | |
| 220 var results = null; | |
| 221 shouldBe('regex21.exec(input1);', 'results'); | |
| 222 | |
| 223 var regex22 = /\u00ab/; | |
| 224 var input0 = "\u00ab"; | |
| 225 var results = ["\u00ab"]; | |
| 226 shouldBe('regex22.exec(input0);', 'results'); | |
| 227 var input1 = "\xc2\xab"; | |
| 228 var results = ["\u00ab"]; | |
| 229 shouldBe('regex22.exec(input1);', 'results'); | |
| 230 // Failers | |
| 231 var input2 = "\x00{ab}"; | |
| 232 var results = null; | |
| 233 shouldBe('regex22.exec(input2);', 'results'); | |
| 234 | |
| 235 var regex30 = /^[^a]{2}/; | |
| 236 var input0 = "\u0100bc"; | |
| 237 var results = ["\u0100b"]; | |
| 238 shouldBe('regex30.exec(input0);', 'results'); | |
| 239 | |
| 240 var regex31 = /^[^a]{2,}/; | |
| 241 var input0 = "\u0100bcAa"; | |
| 242 var results = ["\u0100bcA"]; | |
| 243 shouldBe('regex31.exec(input0);', 'results'); | |
| 244 | |
| 245 var regex32 = /^[^a]{2,}?/; | |
| 246 var input0 = "\u0100bca"; | |
| 247 var results = ["\u0100b"]; | |
| 248 shouldBe('regex32.exec(input0);', 'results'); | |
| 249 | |
| 250 var regex33 = /^[^a]{2}/i; | |
| 251 var input0 = "\u0100bc"; | |
| 252 var results = ["\u0100b"]; | |
| 253 shouldBe('regex33.exec(input0);', 'results'); | |
| 254 | |
| 255 var regex34 = /^[^a]{2,}/i; | |
| 256 var input0 = "\u0100bcAa"; | |
| 257 var results = ["\u0100bc"]; | |
| 258 shouldBe('regex34.exec(input0);', 'results'); | |
| 259 | |
| 260 var regex35 = /^[^a]{2,}?/i; | |
| 261 var input0 = "\u0100bca"; | |
| 262 var results = ["\u0100b"]; | |
| 263 shouldBe('regex35.exec(input0);', 'results'); | |
| 264 | |
| 265 var regex36 = /\u0100{0,0}/; | |
| 266 var input0 = "abcd"; | |
| 267 var results = [""]; | |
| 268 shouldBe('regex36.exec(input0);', 'results'); | |
| 269 | |
| 270 var regex37 = /\u0100?/; | |
| 271 var input0 = "abcd"; | |
| 272 var results = [""]; | |
| 273 shouldBe('regex37.exec(input0);', 'results'); | |
| 274 var input1 = "\u0100\u0100"; | |
| 275 var results = ["\u0100"]; | |
| 276 shouldBe('regex37.exec(input1);', 'results'); | |
| 277 | |
| 278 var regex38 = /\u0100{0,3}/; | |
| 279 var input0 = "\u0100\u0100"; | |
| 280 var results = ["\u0100\u0100"]; | |
| 281 shouldBe('regex38.exec(input0);', 'results'); | |
| 282 var input1 = "\u0100\u0100\u0100\u0100"; | |
| 283 var results = ["\u0100\u0100\u0100"]; | |
| 284 shouldBe('regex38.exec(input1);', 'results'); | |
| 285 | |
| 286 var regex39 = /\u0100*/; | |
| 287 var input0 = "abce"; | |
| 288 var results = [""]; | |
| 289 shouldBe('regex39.exec(input0);', 'results'); | |
| 290 var input1 = "\u0100\u0100\u0100\u0100"; | |
| 291 var results = ["\u0100\u0100\u0100\u0100"]; | |
| 292 shouldBe('regex39.exec(input1);', 'results'); | |
| 293 | |
| 294 var regex40 = /\u0100{1,1}/; | |
| 295 var input0 = "abcd\u0100\u0100\u0100\u0100"; | |
| 296 var results = ["\u0100"]; | |
| 297 shouldBe('regex40.exec(input0);', 'results'); | |
| 298 | |
| 299 var regex41 = /\u0100{1,3}/; | |
| 300 var input0 = "abcd\u0100\u0100\u0100\u0100"; | |
| 301 var results = ["\u0100\u0100\u0100"]; | |
| 302 shouldBe('regex41.exec(input0);', 'results'); | |
| 303 | |
| 304 var regex42 = /\u0100+/; | |
| 305 var input0 = "abcd\u0100\u0100\u0100\u0100"; | |
| 306 var results = ["\u0100\u0100\u0100\u0100"]; | |
| 307 shouldBe('regex42.exec(input0);', 'results'); | |
| 308 | |
| 309 var regex43 = /\u0100{3}/; | |
| 310 var input0 = "abcd\u0100\u0100\u0100XX"; | |
| 311 var results = ["\u0100\u0100\u0100"]; | |
| 312 shouldBe('regex43.exec(input0);', 'results'); | |
| 313 | |
| 314 var regex44 = /\u0100{3,5}/; | |
| 315 var input0 = "abcd\u0100\u0100\u0100\u0100\u0100\u0100\u0100XX"; | |
| 316 var results = ["\u0100\u0100\u0100\u0100\u0100"]; | |
| 317 shouldBe('regex44.exec(input0);', 'results'); | |
| 318 | |
| 319 var regex45 = /\u0100{3,}/; | |
| 320 var input0 = "abcd\u0100\u0100\u0100\u0100\u0100\u0100\u0100XX"; | |
| 321 var results = ["\u0100\u0100\u0100\u0100\u0100\u0100\u0100"]; | |
| 322 shouldBe('regex45.exec(input0);', 'results'); | |
| 323 | |
| 324 var regex47 = /\D*/; | |
| 325 var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; | |
| 326 var results = ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
; | |
| 327 shouldBe('regex47.exec(input0);', 'results'); | |
| 328 | |
| 329 var regex48 = /\D*/; | |
| 330 var input0 = "\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100"; | |
| 331 var results = ["\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100
\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u
0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u01
00\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100"]; | |
| 332 shouldBe('regex48.exec(input0);', 'results'); | |
| 333 | |
| 334 var regex49 = /\D/; | |
| 335 var input0 = "1X2"; | |
| 336 var results = ["X"]; | |
| 337 shouldBe('regex49.exec(input0);', 'results'); | |
| 338 var input1 = "1\u01002"; | |
| 339 var results = ["\u0100"]; | |
| 340 shouldBe('regex49.exec(input1);', 'results'); | |
| 341 | |
| 342 var regex50 = />\S/; | |
| 343 var input0 = "> >X Y"; | |
| 344 var results = [">X"]; | |
| 345 shouldBe('regex50.exec(input0);', 'results'); | |
| 346 var input1 = "> >\u0100 Y"; | |
| 347 var results = [">\u0100"]; | |
| 348 shouldBe('regex50.exec(input1);', 'results'); | |
| 349 | |
| 350 var regex51 = /\d/; | |
| 351 var input0 = "\u01003"; | |
| 352 var results = ["3"]; | |
| 353 shouldBe('regex51.exec(input0);', 'results'); | |
| 354 | |
| 355 var regex52 = /\s/; | |
| 356 var input0 = "\u0100 X"; | |
| 357 var results = [" "]; | |
| 358 shouldBe('regex52.exec(input0);', 'results'); | |
| 359 | |
| 360 var regex53 = /\D+/; | |
| 361 var input0 = "12abcd34"; | |
| 362 var results = ["abcd"]; | |
| 363 shouldBe('regex53.exec(input0);', 'results'); | |
| 364 // Failers | |
| 365 var input1 = "1234"; | |
| 366 var results = null; | |
| 367 shouldBe('regex53.exec(input1);', 'results'); | |
| 368 | |
| 369 var regex54 = /\D{2,3}/; | |
| 370 var input0 = "12abcd34"; | |
| 371 var results = ["abc"]; | |
| 372 shouldBe('regex54.exec(input0);', 'results'); | |
| 373 var input1 = "12ab34"; | |
| 374 var results = ["ab"]; | |
| 375 shouldBe('regex54.exec(input1);', 'results'); | |
| 376 // Failers | |
| 377 var input2 = "1234"; | |
| 378 var results = null; | |
| 379 shouldBe('regex54.exec(input2);', 'results'); | |
| 380 var input3 = "12a34"; | |
| 381 var results = null; | |
| 382 shouldBe('regex54.exec(input3);', 'results'); | |
| 383 | |
| 384 var regex55 = /\D{2,3}?/; | |
| 385 var input0 = "12abcd34"; | |
| 386 var results = ["ab"]; | |
| 387 shouldBe('regex55.exec(input0);', 'results'); | |
| 388 var input1 = "12ab34"; | |
| 389 var results = ["ab"]; | |
| 390 shouldBe('regex55.exec(input1);', 'results'); | |
| 391 // Failers | |
| 392 var input2 = "1234"; | |
| 393 var results = null; | |
| 394 shouldBe('regex55.exec(input2);', 'results'); | |
| 395 var input3 = "12a34"; | |
| 396 var results = null; | |
| 397 shouldBe('regex55.exec(input3);', 'results'); | |
| 398 | |
| 399 var regex56 = /\d+/; | |
| 400 var input0 = "12abcd34"; | |
| 401 var results = ["12"]; | |
| 402 shouldBe('regex56.exec(input0);', 'results'); | |
| 403 | |
| 404 var regex57 = /\d{2,3}/; | |
| 405 var input0 = "12abcd34"; | |
| 406 var results = ["12"]; | |
| 407 shouldBe('regex57.exec(input0);', 'results'); | |
| 408 var input1 = "1234abcd"; | |
| 409 var results = ["123"]; | |
| 410 shouldBe('regex57.exec(input1);', 'results'); | |
| 411 // Failers | |
| 412 var input2 = "1.4"; | |
| 413 var results = null; | |
| 414 shouldBe('regex57.exec(input2);', 'results'); | |
| 415 | |
| 416 var regex58 = /\d{2,3}?/; | |
| 417 var input0 = "12abcd34"; | |
| 418 var results = ["12"]; | |
| 419 shouldBe('regex58.exec(input0);', 'results'); | |
| 420 var input1 = "1234abcd"; | |
| 421 var results = ["12"]; | |
| 422 shouldBe('regex58.exec(input1);', 'results'); | |
| 423 // Failers | |
| 424 var input2 = "1.4"; | |
| 425 var results = null; | |
| 426 shouldBe('regex58.exec(input2);', 'results'); | |
| 427 | |
| 428 var regex59 = /\S+/; | |
| 429 var input0 = "12abcd34"; | |
| 430 var results = ["12abcd34"]; | |
| 431 shouldBe('regex59.exec(input0);', 'results'); | |
| 432 // Failers | |
| 433 var input1 = " "; | |
| 434 var results = null; | |
| 435 shouldBe('regex59.exec(input1);', 'results'); | |
| 436 | |
| 437 var regex60 = /\S{2,3}/; | |
| 438 var input0 = "12abcd34"; | |
| 439 var results = ["12a"]; | |
| 440 shouldBe('regex60.exec(input0);', 'results'); | |
| 441 var input1 = "1234abcd"; | |
| 442 var results = ["123"]; | |
| 443 shouldBe('regex60.exec(input1);', 'results'); | |
| 444 // Failers | |
| 445 var input2 = " "; | |
| 446 var results = null; | |
| 447 shouldBe('regex60.exec(input2);', 'results'); | |
| 448 | |
| 449 var regex61 = /\S{2,3}?/; | |
| 450 var input0 = "12abcd34"; | |
| 451 var results = ["12"]; | |
| 452 shouldBe('regex61.exec(input0);', 'results'); | |
| 453 var input1 = "1234abcd"; | |
| 454 var results = ["12"]; | |
| 455 shouldBe('regex61.exec(input1);', 'results'); | |
| 456 // Failers | |
| 457 var input2 = " "; | |
| 458 var results = null; | |
| 459 shouldBe('regex61.exec(input2);', 'results'); | |
| 460 | |
| 461 var regex62 = />\s+</; | |
| 462 var input0 = "12> <34"; | |
| 463 var results = ["> <"]; | |
| 464 shouldBe('regex62.exec(input0);', 'results'); | |
| 465 | |
| 466 var regex63 = />\s{2,3}</; | |
| 467 var input0 = "ab> <cd"; | |
| 468 var results = ["> <"]; | |
| 469 shouldBe('regex63.exec(input0);', 'results'); | |
| 470 var input1 = "ab> <ce"; | |
| 471 var results = ["> <"]; | |
| 472 shouldBe('regex63.exec(input1);', 'results'); | |
| 473 // Failers | |
| 474 var input2 = "ab> <cd"; | |
| 475 var results = null; | |
| 476 shouldBe('regex63.exec(input2);', 'results'); | |
| 477 | |
| 478 var regex64 = />\s{2,3}?</; | |
| 479 var input0 = "ab> <cd"; | |
| 480 var results = ["> <"]; | |
| 481 shouldBe('regex64.exec(input0);', 'results'); | |
| 482 var input1 = "ab> <ce"; | |
| 483 var results = ["> <"]; | |
| 484 shouldBe('regex64.exec(input1);', 'results'); | |
| 485 // Failers | |
| 486 var input2 = "ab> <cd"; | |
| 487 var results = null; | |
| 488 shouldBe('regex64.exec(input2);', 'results'); | |
| 489 | |
| 490 var regex65 = /\w+/; | |
| 491 var input0 = "12 34"; | |
| 492 var results = ["12"]; | |
| 493 shouldBe('regex65.exec(input0);', 'results'); | |
| 494 // Failers | |
| 495 var input1 = "+++=*!"; | |
| 496 var results = null; | |
| 497 shouldBe('regex65.exec(input1);', 'results'); | |
| 498 | |
| 499 var regex66 = /\w{2,3}/; | |
| 500 var input0 = "ab cd"; | |
| 501 var results = ["ab"]; | |
| 502 shouldBe('regex66.exec(input0);', 'results'); | |
| 503 var input1 = "abcd ce"; | |
| 504 var results = ["abc"]; | |
| 505 shouldBe('regex66.exec(input1);', 'results'); | |
| 506 // Failers | |
| 507 var input2 = "a.b.c"; | |
| 508 var results = null; | |
| 509 shouldBe('regex66.exec(input2);', 'results'); | |
| 510 | |
| 511 var regex67 = /\w{2,3}?/; | |
| 512 var input0 = "ab cd"; | |
| 513 var results = ["ab"]; | |
| 514 shouldBe('regex67.exec(input0);', 'results'); | |
| 515 var input1 = "abcd ce"; | |
| 516 var results = ["ab"]; | |
| 517 shouldBe('regex67.exec(input1);', 'results'); | |
| 518 // Failers | |
| 519 var input2 = "a.b.c"; | |
| 520 var results = null; | |
| 521 shouldBe('regex67.exec(input2);', 'results'); | |
| 522 | |
| 523 var regex68 = /\W+/; | |
| 524 var input0 = "12====34"; | |
| 525 var results = ["===="]; | |
| 526 shouldBe('regex68.exec(input0);', 'results'); | |
| 527 // Failers | |
| 528 var input1 = "abcd"; | |
| 529 var results = null; | |
| 530 shouldBe('regex68.exec(input1);', 'results'); | |
| 531 | |
| 532 var regex69 = /\W{2,3}/; | |
| 533 var input0 = "ab====cd"; | |
| 534 var results = ["==="]; | |
| 535 shouldBe('regex69.exec(input0);', 'results'); | |
| 536 var input1 = "ab==cd"; | |
| 537 var results = ["=="]; | |
| 538 shouldBe('regex69.exec(input1);', 'results'); | |
| 539 // Failers | |
| 540 var input2 = "a.b.c"; | |
| 541 var results = null; | |
| 542 shouldBe('regex69.exec(input2);', 'results'); | |
| 543 | |
| 544 var regex70 = /\W{2,3}?/; | |
| 545 var input0 = "ab====cd"; | |
| 546 var results = ["=="]; | |
| 547 shouldBe('regex70.exec(input0);', 'results'); | |
| 548 var input1 = "ab==cd"; | |
| 549 var results = ["=="]; | |
| 550 shouldBe('regex70.exec(input1);', 'results'); | |
| 551 // Failers | |
| 552 var input2 = "a.b.c"; | |
| 553 var results = null; | |
| 554 shouldBe('regex70.exec(input2);', 'results'); | |
| 555 | |
| 556 var regex71 = /[\u0100]/; | |
| 557 var input0 = "\u0100"; | |
| 558 var results = ["\u0100"]; | |
| 559 shouldBe('regex71.exec(input0);', 'results'); | |
| 560 var input1 = "Z\u0100"; | |
| 561 var results = ["\u0100"]; | |
| 562 shouldBe('regex71.exec(input1);', 'results'); | |
| 563 var input2 = "\u0100Z"; | |
| 564 var results = ["\u0100"]; | |
| 565 shouldBe('regex71.exec(input2);', 'results'); | |
| 566 | |
| 567 var regex72 = /[Z\u0100]/; | |
| 568 var input0 = "Z\u0100"; | |
| 569 var results = ["Z"]; | |
| 570 shouldBe('regex72.exec(input0);', 'results'); | |
| 571 var input1 = "\u0100"; | |
| 572 var results = ["\u0100"]; | |
| 573 shouldBe('regex72.exec(input1);', 'results'); | |
| 574 var input2 = "\u0100Z"; | |
| 575 var results = ["\u0100"]; | |
| 576 shouldBe('regex72.exec(input2);', 'results'); | |
| 577 | |
| 578 var regex73 = /[\u0100\u0200]/; | |
| 579 var input0 = "ab\u0100cd"; | |
| 580 var results = ["\u0100"]; | |
| 581 shouldBe('regex73.exec(input0);', 'results'); | |
| 582 var input1 = "ab\u0200cd"; | |
| 583 var results = ["\u0200"]; | |
| 584 shouldBe('regex73.exec(input1);', 'results'); | |
| 585 | |
| 586 var regex74 = /[\u0100-\u0200]/; | |
| 587 var input0 = "ab\u0100cd"; | |
| 588 var results = ["\u0100"]; | |
| 589 shouldBe('regex74.exec(input0);', 'results'); | |
| 590 var input1 = "ab\u0200cd"; | |
| 591 var results = ["\u0200"]; | |
| 592 shouldBe('regex74.exec(input1);', 'results'); | |
| 593 var input2 = "ab\u0111cd"; | |
| 594 var results = ["\u0111"]; | |
| 595 shouldBe('regex74.exec(input2);', 'results'); | |
| 596 | |
| 597 var regex75 = /[z-\u0200]/; | |
| 598 var input0 = "ab\u0100cd"; | |
| 599 var results = ["\u0100"]; | |
| 600 shouldBe('regex75.exec(input0);', 'results'); | |
| 601 var input1 = "ab\u0200cd"; | |
| 602 var results = ["\u0200"]; | |
| 603 shouldBe('regex75.exec(input1);', 'results'); | |
| 604 var input2 = "ab\u0111cd"; | |
| 605 var results = ["\u0111"]; | |
| 606 shouldBe('regex75.exec(input2);', 'results'); | |
| 607 var input3 = "abzcd"; | |
| 608 var results = ["z"]; | |
| 609 shouldBe('regex75.exec(input3);', 'results'); | |
| 610 var input4 = "ab|cd"; | |
| 611 var results = ["|"]; | |
| 612 shouldBe('regex75.exec(input4);', 'results'); | |
| 613 | |
| 614 var regex76 = /[Q\u0100\u0200]/; | |
| 615 var input0 = "ab\u0100cd"; | |
| 616 var results = ["\u0100"]; | |
| 617 shouldBe('regex76.exec(input0);', 'results'); | |
| 618 var input1 = "ab\u0200cd"; | |
| 619 var results = ["\u0200"]; | |
| 620 shouldBe('regex76.exec(input1);', 'results'); | |
| 621 var input2 = "Q?"; | |
| 622 var results = ["Q"]; | |
| 623 shouldBe('regex76.exec(input2);', 'results'); | |
| 624 | |
| 625 var regex77 = /[Q\u0100-\u0200]/; | |
| 626 var input0 = "ab\u0100cd"; | |
| 627 var results = ["\u0100"]; | |
| 628 shouldBe('regex77.exec(input0);', 'results'); | |
| 629 var input1 = "ab\u0200cd"; | |
| 630 var results = ["\u0200"]; | |
| 631 shouldBe('regex77.exec(input1);', 'results'); | |
| 632 var input2 = "ab\u0111cd"; | |
| 633 var results = ["\u0111"]; | |
| 634 shouldBe('regex77.exec(input2);', 'results'); | |
| 635 var input3 = "Q?"; | |
| 636 var results = ["Q"]; | |
| 637 shouldBe('regex77.exec(input3);', 'results'); | |
| 638 | |
| 639 var regex78 = /[Qz-\u0200]/; | |
| 640 var input0 = "ab\u0100cd"; | |
| 641 var results = ["\u0100"]; | |
| 642 shouldBe('regex78.exec(input0);', 'results'); | |
| 643 var input1 = "ab\u0200cd"; | |
| 644 var results = ["\u0200"]; | |
| 645 shouldBe('regex78.exec(input1);', 'results'); | |
| 646 var input2 = "ab\u0111cd"; | |
| 647 var results = ["\u0111"]; | |
| 648 shouldBe('regex78.exec(input2);', 'results'); | |
| 649 var input3 = "abzcd"; | |
| 650 var results = ["z"]; | |
| 651 shouldBe('regex78.exec(input3);', 'results'); | |
| 652 var input4 = "ab|cd"; | |
| 653 var results = ["|"]; | |
| 654 shouldBe('regex78.exec(input4);', 'results'); | |
| 655 var input5 = "Q?"; | |
| 656 var results = ["Q"]; | |
| 657 shouldBe('regex78.exec(input5);', 'results'); | |
| 658 | |
| 659 var regex79 = /[\u0100\u0200]{1,3}/; | |
| 660 var input0 = "ab\u0100cd"; | |
| 661 var results = ["\u0100"]; | |
| 662 shouldBe('regex79.exec(input0);', 'results'); | |
| 663 var input1 = "ab\u0200cd"; | |
| 664 var results = ["\u0200"]; | |
| 665 shouldBe('regex79.exec(input1);', 'results'); | |
| 666 var input2 = "ab\u0200\u0100\u0200\u0100cd"; | |
| 667 var results = ["\u0200\u0100\u0200"]; | |
| 668 shouldBe('regex79.exec(input2);', 'results'); | |
| 669 | |
| 670 var regex80 = /[\u0100\u0200]{1,3}?/; | |
| 671 var input0 = "ab\u0100cd"; | |
| 672 var results = ["\u0100"]; | |
| 673 shouldBe('regex80.exec(input0);', 'results'); | |
| 674 var input1 = "ab\u0200cd"; | |
| 675 var results = ["\u0200"]; | |
| 676 shouldBe('regex80.exec(input1);', 'results'); | |
| 677 var input2 = "ab\u0200\u0100\u0200\u0100cd"; | |
| 678 var results = ["\u0200"]; | |
| 679 shouldBe('regex80.exec(input2);', 'results'); | |
| 680 | |
| 681 var regex81 = /[Q\u0100\u0200]{1,3}/; | |
| 682 var input0 = "ab\u0100cd"; | |
| 683 var results = ["\u0100"]; | |
| 684 shouldBe('regex81.exec(input0);', 'results'); | |
| 685 var input1 = "ab\u0200cd"; | |
| 686 var results = ["\u0200"]; | |
| 687 shouldBe('regex81.exec(input1);', 'results'); | |
| 688 var input2 = "ab\u0200\u0100\u0200\u0100cd"; | |
| 689 var results = ["\u0200\u0100\u0200"]; | |
| 690 shouldBe('regex81.exec(input2);', 'results'); | |
| 691 | |
| 692 var regex82 = /[Q\u0100\u0200]{1,3}?/; | |
| 693 var input0 = "ab\u0100cd"; | |
| 694 var results = ["\u0100"]; | |
| 695 shouldBe('regex82.exec(input0);', 'results'); | |
| 696 var input1 = "ab\u0200cd"; | |
| 697 var results = ["\u0200"]; | |
| 698 shouldBe('regex82.exec(input1);', 'results'); | |
| 699 var input2 = "ab\u0200\u0100\u0200\u0100cd"; | |
| 700 var results = ["\u0200"]; | |
| 701 shouldBe('regex82.exec(input2);', 'results'); | |
| 702 | |
| 703 var regex86 = /[^\u0100\u0200]X/; | |
| 704 var input0 = "AX"; | |
| 705 var results = ["AX"]; | |
| 706 shouldBe('regex86.exec(input0);', 'results'); | |
| 707 var input1 = "\u0150X"; | |
| 708 var results = ["\u0150X"]; | |
| 709 shouldBe('regex86.exec(input1);', 'results'); | |
| 710 var input2 = "\u0500X"; | |
| 711 var results = ["\u0500X"]; | |
| 712 shouldBe('regex86.exec(input2);', 'results'); | |
| 713 // Failers | |
| 714 var input3 = "\u0100X"; | |
| 715 var results = null; | |
| 716 shouldBe('regex86.exec(input3);', 'results'); | |
| 717 var input4 = "\u0200X"; | |
| 718 var results = null; | |
| 719 shouldBe('regex86.exec(input4);', 'results'); | |
| 720 | |
| 721 var regex87 = /[^Q\u0100\u0200]X/; | |
| 722 var input0 = "AX"; | |
| 723 var results = ["AX"]; | |
| 724 shouldBe('regex87.exec(input0);', 'results'); | |
| 725 var input1 = "\u0150X"; | |
| 726 var results = ["\u0150X"]; | |
| 727 shouldBe('regex87.exec(input1);', 'results'); | |
| 728 var input2 = "\u0500X"; | |
| 729 var results = ["\u0500X"]; | |
| 730 shouldBe('regex87.exec(input2);', 'results'); | |
| 731 // Failers | |
| 732 var input3 = "\u0100X"; | |
| 733 var results = null; | |
| 734 shouldBe('regex87.exec(input3);', 'results'); | |
| 735 var input4 = "\u0200X"; | |
| 736 var results = null; | |
| 737 shouldBe('regex87.exec(input4);', 'results'); | |
| 738 var input5 = "QX"; | |
| 739 var results = null; | |
| 740 shouldBe('regex87.exec(input5);', 'results'); | |
| 741 | |
| 742 var regex88 = /[^\u0100-\u0200]X/; | |
| 743 var input0 = "AX"; | |
| 744 var results = ["AX"]; | |
| 745 shouldBe('regex88.exec(input0);', 'results'); | |
| 746 var input1 = "\u0500X"; | |
| 747 var results = ["\u0500X"]; | |
| 748 shouldBe('regex88.exec(input1);', 'results'); | |
| 749 // Failers | |
| 750 var input2 = "\u0100X"; | |
| 751 var results = null; | |
| 752 shouldBe('regex88.exec(input2);', 'results'); | |
| 753 var input3 = "\u0150X"; | |
| 754 var results = null; | |
| 755 shouldBe('regex88.exec(input3);', 'results'); | |
| 756 var input4 = "\u0200X"; | |
| 757 var results = null; | |
| 758 shouldBe('regex88.exec(input4);', 'results'); | |
| 759 | |
| 760 var regex91 = /[z-\u0100]/i; | |
| 761 var input0 = "z"; | |
| 762 var results = ["z"]; | |
| 763 shouldBe('regex91.exec(input0);', 'results'); | |
| 764 var input1 = "Z"; | |
| 765 var results = ["Z"]; | |
| 766 shouldBe('regex91.exec(input1);', 'results'); | |
| 767 var input2 = "\u0100"; | |
| 768 var results = ["\u0100"]; | |
| 769 shouldBe('regex91.exec(input2);', 'results'); | |
| 770 // Failers | |
| 771 var input3 = "\u0102"; | |
| 772 var results = null; | |
| 773 shouldBe('regex91.exec(input3);', 'results'); | |
| 774 var input4 = "y"; | |
| 775 var results = null; | |
| 776 shouldBe('regex91.exec(input4);', 'results'); | |
| 777 | |
| 778 var regex92 = /[\xFF]/; | |
| 779 var input0 = ">\xff<"; | |
| 780 var results = ["\xff"]; | |
| 781 shouldBe('regex92.exec(input0);', 'results'); | |
| 782 | |
| 783 var regex93 = /[\xff]/; | |
| 784 var input0 = ">\u00ff<"; | |
| 785 var results = ["\u00ff"]; | |
| 786 shouldBe('regex93.exec(input0);', 'results'); | |
| 787 | |
| 788 var regex94 = /[^\xFF]/; | |
| 789 var input0 = "XYZ"; | |
| 790 var results = ["X"]; | |
| 791 shouldBe('regex94.exec(input0);', 'results'); | |
| 792 | |
| 793 var regex95 = /[^\xff]/; | |
| 794 var input0 = "XYZ"; | |
| 795 var results = ["X"]; | |
| 796 shouldBe('regex95.exec(input0);', 'results'); | |
| 797 var input1 = "\u0123"; | |
| 798 var results = ["\u0123"]; | |
| 799 shouldBe('regex95.exec(input1);', 'results'); | |
| 800 | |
| 801 var regex96 = /^[ac]*b/; | |
| 802 var input0 = "xb"; | |
| 803 var results = null; | |
| 804 shouldBe('regex96.exec(input0);', 'results'); | |
| 805 | |
| 806 var regex97 = /^[ac\u0100]*b/; | |
| 807 var input0 = "xb"; | |
| 808 var results = null; | |
| 809 shouldBe('regex97.exec(input0);', 'results'); | |
| 810 | |
| 811 var regex98 = /^[^x]*b/i; | |
| 812 var input0 = "xb"; | |
| 813 var results = null; | |
| 814 shouldBe('regex98.exec(input0);', 'results'); | |
| 815 | |
| 816 var regex99 = /^[^x]*b/; | |
| 817 var input0 = "xb"; | |
| 818 var results = null; | |
| 819 shouldBe('regex99.exec(input0);', 'results'); | |
| 820 | |
| 821 var regex100 = /^\d*b/; | |
| 822 var input0 = "xb"; | |
| 823 var results = null; | |
| 824 shouldBe('regex100.exec(input0);', 'results'); | |
| 825 | |
| 826 var regex102 = /^\u0085$/i; | |
| 827 var input0 = "\u0085"; | |
| 828 var results = ["\u0085"]; | |
| 829 shouldBe('regex102.exec(input0);', 'results'); | |
| 830 | |
| 831 var regex103 = /^\xe1\x88\xb4/; | |
| 832 var input0 = "\xe1\x88\xb4"; | |
| 833 var results = ["\xe1\x88\xb4"]; | |
| 834 shouldBe('regex103.exec(input0);', 'results'); | |
| 835 | |
| 836 var regex104 = /^\xe1\x88\xb4/; | |
| 837 var input0 = "\xe1\x88\xb4"; | |
| 838 var results = ["\xe1\x88\xb4"]; | |
| 839 shouldBe('regex104.exec(input0);', 'results'); | |
| 840 | |
| 841 var regex105 = /(.{1,5})/; | |
| 842 var input0 = "abcdefg"; | |
| 843 var results = ["abcde", "abcde"]; | |
| 844 shouldBe('regex105.exec(input0);', 'results'); | |
| 845 var input1 = "ab"; | |
| 846 var results = ["ab", "ab"]; | |
| 847 shouldBe('regex105.exec(input1);', 'results'); | |
| 848 | |
| 849 var regex106 = /a*\u0100*\w/; | |
| 850 var input0 = "a"; | |
| 851 var results = ["a"]; | |
| 852 shouldBe('regex106.exec(input0);', 'results'); | |
| 853 | |
| 854 var regex107 = /[\S\s]*/; | |
| 855 var input0 = "abc\n\r\u0442\u0435\u0441\u0442xyz"; | |
| 856 var results = ["abc\u000a\u000d\u0442\u0435\u0441\u0442xyz"]; | |
| 857 shouldBe('regex107.exec(input0);', 'results'); | |
| 858 | |
| 859 var regexGlobal0 = /[^a]+/g; | |
| 860 var input0 = "bcd"; | |
| 861 var results = ["bcd"]; | |
| 862 shouldBe('input0.match(regexGlobal0);', 'results'); | |
| 863 var input1 = "\u0100aY\u0256Z"; | |
| 864 var results = ["\u0100", "Y\u0256Z"]; | |
| 865 shouldBe('input1.match(regexGlobal0);', 'results'); | |
| 866 | |
| 867 var regexGlobal1 = /\S\S/g; | |
| 868 var input0 = "A\u00a3BC"; | |
| 869 var results = ["A\u00a3", "BC"]; | |
| 870 shouldBe('input0.match(regexGlobal1);', 'results'); | |
| 871 | |
| 872 var regexGlobal2 = /\S{2}/g; | |
| 873 var input0 = "A\u00a3BC"; | |
| 874 var results = ["A\u00a3", "BC"]; | |
| 875 shouldBe('input0.match(regexGlobal2);', 'results'); | |
| 876 | |
| 877 var regexGlobal3 = /\W\W/g; | |
| 878 var input0 = "+\u00a3=="; | |
| 879 var results = ["+\u00a3", "=="]; | |
| 880 shouldBe('input0.match(regexGlobal3);', 'results'); | |
| 881 | |
| 882 var regexGlobal4 = /\W{2}/g; | |
| 883 var input0 = "+\u00a3=="; | |
| 884 var results = ["+\u00a3", "=="]; | |
| 885 shouldBe('input0.match(regexGlobal4);', 'results'); | |
| 886 | |
| 887 var regexGlobal5 = /\S/g; | |
| 888 var input0 = "\u0442\u0435\u0441\u0442"; | |
| 889 var results = ["\u0442", "\u0435", "\u0441", "\u0442"]; | |
| 890 shouldBe('input0.match(regexGlobal5);', 'results'); | |
| 891 | |
| 892 var regexGlobal6 = /[\S]/g; | |
| 893 var input0 = "\u0442\u0435\u0441\u0442"; | |
| 894 var results = ["\u0442", "\u0435", "\u0441", "\u0442"]; | |
| 895 shouldBe('input0.match(regexGlobal6);', 'results'); | |
| 896 | |
| 897 var regexGlobal7 = /\D/g; | |
| 898 var input0 = "\u0442\u0435\u0441\u0442"; | |
| 899 var results = ["\u0442", "\u0435", "\u0441", "\u0442"]; | |
| 900 shouldBe('input0.match(regexGlobal7);', 'results'); | |
| 901 | |
| 902 var regexGlobal8 = /[\D]/g; | |
| 903 var input0 = "\u0442\u0435\u0441\u0442"; | |
| 904 var results = ["\u0442", "\u0435", "\u0441", "\u0442"]; | |
| 905 shouldBe('input0.match(regexGlobal8);', 'results'); | |
| 906 | |
| 907 var regexGlobal9 = /\W/g; | |
| 908 var input0 = "\u2442\u2435\u2441\u2442"; | |
| 909 var results = ["\u2442", "\u2435", "\u2441", "\u2442"]; | |
| 910 shouldBe('input0.match(regexGlobal9);', 'results'); | |
| 911 | |
| 912 var regexGlobal10 = /[\W]/g; | |
| 913 var input0 = "\u2442\u2435\u2441\u2442"; | |
| 914 var results = ["\u2442", "\u2435", "\u2441", "\u2442"]; | |
| 915 shouldBe('input0.match(regexGlobal10);', 'results'); | |
| 916 | |
| 917 var regexGlobal11 = /[\u041f\S]/g; | |
| 918 var input0 = "\u0442\u0435\u0441\u0442"; | |
| 919 var results = ["\u0442", "\u0435", "\u0441", "\u0442"]; | |
| 920 shouldBe('input0.match(regexGlobal11);', 'results'); | |
| 921 | |
| 922 var regexGlobal12 = /.[^\S]./g; | |
| 923 var input0 = "abc def\u0442\u0443xyz\npqr"; | |
| 924 var results = ["c d", "z\u000ap"]; | |
| 925 shouldBe('input0.match(regexGlobal12);', 'results'); | |
| 926 | |
| 927 var regexGlobal13 = /.[^\S\n]./g; | |
| 928 var input0 = "abc def\u0442\u0443xyz\npqr"; | |
| 929 var results = ["c d"]; | |
| 930 shouldBe('input0.match(regexGlobal13);', 'results'); | |
| 931 | |
| 932 var regexGlobal14 = /[\W]/g; | |
| 933 var input0 = "+\u2442"; | |
| 934 var results = ["+", "\u2442"]; | |
| 935 shouldBe('input0.match(regexGlobal14);', 'results'); | |
| 936 | |
| 937 var regexGlobal15 = /[^a-zA-Z]/g; | |
| 938 var input0 = "+\u2442"; | |
| 939 var results = ["+", "\u2442"]; | |
| 940 shouldBe('input0.match(regexGlobal15);', 'results'); | |
| 941 | |
| 942 var regexGlobal16 = /[^a-zA-Z]/g; | |
| 943 var input0 = "A\u0442"; | |
| 944 var results = ["\u0442"]; | |
| 945 shouldBe('input0.match(regexGlobal16);', 'results'); | |
| 946 | |
| 947 var regexGlobal17 = /[\S]/g; | |
| 948 var input0 = "A\u0442"; | |
| 949 var results = ["A", "\u0442"]; | |
| 950 shouldBe('input0.match(regexGlobal17);', 'results'); | |
| 951 | |
| 952 var regexGlobal19 = /[\D]/g; | |
| 953 var input0 = "A\u0442"; | |
| 954 var results = ["A", "\u0442"]; | |
| 955 shouldBe('input0.match(regexGlobal19);', 'results'); | |
| 956 | |
| 957 var regexGlobal21 = /[^a-z]/g; | |
| 958 var input0 = "A\u0422"; | |
| 959 var results = ["A", "\u0422"]; | |
| 960 shouldBe('input0.match(regexGlobal21);', 'results'); | |
| 961 | |
| 962 var regexGlobal24 = /[\S]/g; | |
| 963 var input0 = "A\u0442"; | |
| 964 var results = ["A", "\u0442"]; | |
| 965 shouldBe('input0.match(regexGlobal24);', 'results'); | |
| 966 | |
| 967 var regexGlobal25 = /[^A-Z]/g; | |
| 968 var input0 = "a\u0442"; | |
| 969 var results = ["a", "\u0442"]; | |
| 970 shouldBe('input0.match(regexGlobal25);', 'results'); | |
| 971 | |
| 972 var regexGlobal26 = /[\W]/g; | |
| 973 var input0 = "+\u2442"; | |
| 974 var results = ["+", "\u2442"]; | |
| 975 shouldBe('input0.match(regexGlobal26);', 'results'); | |
| 976 | |
| 977 var regexGlobal27 = /[\D]/g; | |
| 978 var input0 = "M\u0442"; | |
| 979 var results = ["M", "\u0442"]; | |
| 980 shouldBe('input0.match(regexGlobal27);', 'results'); | |
| 981 | |
| 982 var regexGlobal28 = /[^a]+/ig; | |
| 983 var input0 = "bcd"; | |
| 984 var results = ["bcd"]; | |
| 985 shouldBe('input0.match(regexGlobal28);', 'results'); | |
| 986 var input1 = "\u0100aY\u0256Z"; | |
| 987 var results = ["\u0100", "Y\u0256Z"]; | |
| 988 shouldBe('input1.match(regexGlobal28);', 'results'); | |
| 989 | |
| 990 var regexGlobal29 = /(a|)/g; | |
| 991 var input0 = "catac"; | |
| 992 var results = ["", "a", "", "a", "", ""]; | |
| 993 shouldBe('input0.match(regexGlobal29);', 'results'); | |
| 994 var input1 = "a\u0256a"; | |
| 995 var results = ["a", "", "a", ""]; | |
| 996 shouldBe('input1.match(regexGlobal29);', 'results'); | |
| 997 | |
| 998 // DISABLED: | |
| 999 // These tests use (?<) or (?>) constructs. These are not currently valid in ECM
AScript, | |
| 1000 // but these tests may be useful if similar constructs are introduced in the fut
ure. | |
| 1001 | |
| 1002 //var regex18 = /(?<=aXb)cd/; | |
| 1003 //var input0 = "aXbcd"; | |
| 1004 //var results = ["cd"]; | |
| 1005 //shouldBe('regex18.exec(input0);', 'results'); | |
| 1006 // | |
| 1007 //var regex19 = /(?<=a\u0100b)cd/; | |
| 1008 //var input0 = "a\u0100bcd"; | |
| 1009 //var results = ["cd"]; | |
| 1010 //shouldBe('regex19.exec(input0);', 'results'); | |
| 1011 // | |
| 1012 //var regex20 = /(?<=a\u100000b)cd/; | |
| 1013 //var input0 = "a\u100000bcd"; | |
| 1014 //var results = ["cd"]; | |
| 1015 //shouldBe('regex20.exec(input0);', 'results'); | |
| 1016 // | |
| 1017 //var regex23 = /(?<=(.))X/; | |
| 1018 //var input0 = "WXYZ"; | |
| 1019 //var results = ["X", "W"]; | |
| 1020 //shouldBe('regex23.exec(input0);', 'results'); | |
| 1021 //var input1 = "\u0256XYZ"; | |
| 1022 //var results = ["X", "\u0256"]; | |
| 1023 //shouldBe('regex23.exec(input1);', 'results'); | |
| 1024 //// Failers | |
| 1025 //var input2 = "XYZ"; | |
| 1026 //var results = null; | |
| 1027 //shouldBe('regex23.exec(input2);', 'results'); | |
| 1028 // | |
| 1029 //var regex46 = /(?<=a\u0100{2}b)X/; | |
| 1030 //var input0 = "Xyyya\u0100\u0100bXzzz"; | |
| 1031 //var results = ["X"]; | |
| 1032 //shouldBe('regex46.exec(input0);', 'results'); | |
| 1033 // | |
| 1034 //var regex83 = /(?<=[\u0100\u0200])X/; | |
| 1035 //var input0 = "abc\u0200X"; | |
| 1036 //var results = ["X"]; | |
| 1037 //shouldBe('regex83.exec(input0);', 'results'); | |
| 1038 //var input1 = "abc\u0100X"; | |
| 1039 //var results = ["X"]; | |
| 1040 //shouldBe('regex83.exec(input1);', 'results'); | |
| 1041 //// Failers | |
| 1042 //var input2 = "X"; | |
| 1043 //var results = null; | |
| 1044 //shouldBe('regex83.exec(input2);', 'results'); | |
| 1045 // | |
| 1046 //var regex84 = /(?<=[Q\u0100\u0200])X/; | |
| 1047 //var input0 = "abc\u0200X"; | |
| 1048 //var results = ["X"]; | |
| 1049 //shouldBe('regex84.exec(input0);', 'results'); | |
| 1050 //var input1 = "abc\u0100X"; | |
| 1051 //var results = ["X"]; | |
| 1052 //shouldBe('regex84.exec(input1);', 'results'); | |
| 1053 //var input2 = "abQX"; | |
| 1054 //var results = ["X"]; | |
| 1055 //shouldBe('regex84.exec(input2);', 'results'); | |
| 1056 //// Failers | |
| 1057 //var input3 = "X"; | |
| 1058 //var results = null; | |
| 1059 //shouldBe('regex84.exec(input3);', 'results'); | |
| 1060 // | |
| 1061 //var regex85 = /(?<=[\u0100\u0200]{3})X/; | |
| 1062 //var input0 = "abc\u0100\u0200\u0100X"; | |
| 1063 //var results = ["X"]; | |
| 1064 //shouldBe('regex85.exec(input0);', 'results'); | |
| 1065 //// Failers | |
| 1066 //var input1 = "abc\u0200X"; | |
| 1067 //var results = null; | |
| 1068 //shouldBe('regex85.exec(input1);', 'results'); | |
| 1069 //var input2 = "X"; | |
| 1070 //var results = null; | |
| 1071 //shouldBe('regex85.exec(input2);', 'results'); | |
| 1072 | |
| 1073 // DISABLED: | |
| 1074 // These tests use PCRE's \C token. This is not currently valid in ECMAScript, | |
| 1075 // but these tests may be useful if similar constructs are introduced in the fut
ure. | |
| 1076 | |
| 1077 //var regex24 = /X(\C{3})/; | |
| 1078 //var input0 = "X\u1234"; | |
| 1079 //var results = ["X\u1234", "\u1234"]; | |
| 1080 //shouldBe('regex24.exec(input0);', 'results'); | |
| 1081 // | |
| 1082 //var regex25 = /X(\C{4})/; | |
| 1083 //var input0 = "X\u1234YZ"; | |
| 1084 //var results = ["X\u1234Y", "\u1234Y"]; | |
| 1085 //shouldBe('regex25.exec(input0);', 'results'); | |
| 1086 // | |
| 1087 //var regex26 = /X\C*/; | |
| 1088 //var input0 = "XYZabcdce"; | |
| 1089 //var results = ["XYZabcdce"]; | |
| 1090 //shouldBe('regex26.exec(input0);', 'results'); | |
| 1091 // | |
| 1092 //var regex27 = /X\C*?/; | |
| 1093 //var input0 = "XYZabcde"; | |
| 1094 //var results = ["X"]; | |
| 1095 //shouldBe('regex27.exec(input0);', 'results'); | |
| 1096 // | |
| 1097 //var regex28 = /X\C{3,5}/; | |
| 1098 //var input0 = "Xabcdefg"; | |
| 1099 //var results = ["Xabcde"]; | |
| 1100 //shouldBe('regex28.exec(input0);', 'results'); | |
| 1101 //var input1 = "X\u1234"; | |
| 1102 //var results = ["X\u1234"]; | |
| 1103 //shouldBe('regex28.exec(input1);', 'results'); | |
| 1104 //var input2 = "X\u1234YZ"; | |
| 1105 //var results = ["X\u1234YZ"]; | |
| 1106 //shouldBe('regex28.exec(input2);', 'results'); | |
| 1107 //var input3 = "X\u1234\u0512"; | |
| 1108 //var results = ["X\u1234\u0512"]; | |
| 1109 //shouldBe('regex28.exec(input3);', 'results'); | |
| 1110 //var input4 = "X\u1234\u0512YZ"; | |
| 1111 //var results = ["X\u1234\u0512"]; | |
| 1112 //shouldBe('regex28.exec(input4);', 'results'); | |
| 1113 // | |
| 1114 //var regex29 = /X\C{3,5}?/; | |
| 1115 //var input0 = "Xabcdefg"; | |
| 1116 //var results = ["Xabc"]; | |
| 1117 //shouldBe('regex29.exec(input0);', 'results'); | |
| 1118 //var input1 = "X\u1234"; | |
| 1119 //var results = ["X\u1234"]; | |
| 1120 //shouldBe('regex29.exec(input1);', 'results'); | |
| 1121 //var input2 = "X\u1234YZ"; | |
| 1122 //var results = ["X\u1234"]; | |
| 1123 //shouldBe('regex29.exec(input2);', 'results'); | |
| 1124 //var input3 = "X\u1234\u0512"; | |
| 1125 //var results = ["X\u1234"]; | |
| 1126 //shouldBe('regex29.exec(input3);', 'results'); | |
| 1127 // | |
| 1128 //var regex89 = /a\Cb/; | |
| 1129 //var input0 = "aXb"; | |
| 1130 //var results = ["aXb"]; | |
| 1131 //shouldBe('regex89.exec(input0);', 'results'); | |
| 1132 //var input1 = "a\nb"; | |
| 1133 //var results = ["a\x0ab"]; | |
| 1134 //shouldBe('regex89.exec(input1);', 'results'); | |
| 1135 // | |
| 1136 //var regex90 = /a\Cb/; | |
| 1137 //var input0 = "aXb"; | |
| 1138 //var results = ["aXb"]; | |
| 1139 //shouldBe('regex90.exec(input0);', 'results'); | |
| 1140 //var input1 = "a\nb"; | |
| 1141 //var results = ["a\u000ab"]; | |
| 1142 //shouldBe('regex90.exec(input1);', 'results'); | |
| 1143 //// Failers | |
| 1144 //var input2 = "a\u0100b"; | |
| 1145 //var results = null; | |
| 1146 //shouldBe('regex90.exec(input2);', 'results'); | |
| OLD | NEW |