tizen beta release
[profile/ivi/webkit-efl.git] / LayoutTests / fast / regex / script-tests / pcre-test-1.js
1 description(
2 "A chunk of our port of PCRE's test suite, adapted to be more applicable to JavaScript."
3 );
4
5 var regex0 = /the quick brown fox/;
6 var input0 = "the quick brown fox";
7 var results = ["the quick brown fox"];
8 shouldBe('regex0.exec(input0);', 'results');
9 var input1 = "The quick brown FOX";
10 var results = null;
11 shouldBe('regex0.exec(input1);', 'results');
12 var input2 = "What do you know about the quick brown fox?";
13 var results = ["the quick brown fox"];
14 shouldBe('regex0.exec(input2);', 'results');
15 var input3 = "What do you know about THE QUICK BROWN FOX?";
16 var results = null;
17 shouldBe('regex0.exec(input3);', 'results');
18
19 var regex1 = /The quick brown fox/i;
20 var input0 = "the quick brown fox";
21 var results = ["the quick brown fox"];
22 shouldBe('regex1.exec(input0);', 'results');
23 var input1 = "The quick brown FOX";
24 var results = ["The quick brown FOX"];
25 shouldBe('regex1.exec(input1);', 'results');
26 var input2 = "What do you know about the quick brown fox?";
27 var results = ["the quick brown fox"];
28 shouldBe('regex1.exec(input2);', 'results');
29 var input3 = "What do you know about THE QUICK BROWN FOX?";
30 var results = ["THE QUICK BROWN FOX"];
31 shouldBe('regex1.exec(input3);', 'results');
32
33 var regex2 = /abcd\t\n\r\f\v[\b]\071\x3b\$\\\?caxyz/;
34 var input0 = "abcd\t\n\r\f\v\b9;\$\\?caxyz";
35 var results = ["abcd\x09\x0a\x0d\x0c\x0b\x089;$\\?caxyz"];
36 shouldBe('regex2.exec(input0);', 'results');
37
38 var regex3 = /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/;
39 var input0 = "abxyzpqrrrabbxyyyypqAzz";
40 var results = ["abxyzpqrrrabbxyyyypqAzz"];
41 shouldBe('regex3.exec(input0);', 'results');
42 var input1 = "abxyzpqrrrabbxyyyypqAzz";
43 var results = ["abxyzpqrrrabbxyyyypqAzz"];
44 shouldBe('regex3.exec(input1);', 'results');
45 var input2 = "aabxyzpqrrrabbxyyyypqAzz";
46 var results = ["aabxyzpqrrrabbxyyyypqAzz"];
47 shouldBe('regex3.exec(input2);', 'results');
48 var input3 = "aaabxyzpqrrrabbxyyyypqAzz";
49 var results = ["aaabxyzpqrrrabbxyyyypqAzz"];
50 shouldBe('regex3.exec(input3);', 'results');
51 var input4 = "aaaabxyzpqrrrabbxyyyypqAzz";
52 var results = ["aaaabxyzpqrrrabbxyyyypqAzz"];
53 shouldBe('regex3.exec(input4);', 'results');
54 var input5 = "abcxyzpqrrrabbxyyyypqAzz";
55 var results = ["abcxyzpqrrrabbxyyyypqAzz"];
56 shouldBe('regex3.exec(input5);', 'results');
57 var input6 = "aabcxyzpqrrrabbxyyyypqAzz";
58 var results = ["aabcxyzpqrrrabbxyyyypqAzz"];
59 shouldBe('regex3.exec(input6);', 'results');
60 var input7 = "aaabcxyzpqrrrabbxyyyypAzz";
61 var results = ["aaabcxyzpqrrrabbxyyyypAzz"];
62 shouldBe('regex3.exec(input7);', 'results');
63 var input8 = "aaabcxyzpqrrrabbxyyyypqAzz";
64 var results = ["aaabcxyzpqrrrabbxyyyypqAzz"];
65 shouldBe('regex3.exec(input8);', 'results');
66 var input9 = "aaabcxyzpqrrrabbxyyyypqqAzz";
67 var results = ["aaabcxyzpqrrrabbxyyyypqqAzz"];
68 shouldBe('regex3.exec(input9);', 'results');
69 var input10 = "aaabcxyzpqrrrabbxyyyypqqqAzz";
70 var results = ["aaabcxyzpqrrrabbxyyyypqqqAzz"];
71 shouldBe('regex3.exec(input10);', 'results');
72 var input11 = "aaabcxyzpqrrrabbxyyyypqqqqAzz";
73 var results = ["aaabcxyzpqrrrabbxyyyypqqqqAzz"];
74 shouldBe('regex3.exec(input11);', 'results');
75 var input12 = "aaabcxyzpqrrrabbxyyyypqqqqqAzz";
76 var results = ["aaabcxyzpqrrrabbxyyyypqqqqqAzz"];
77 shouldBe('regex3.exec(input12);', 'results');
78 var input13 = "aaabcxyzpqrrrabbxyyyypqqqqqqAzz";
79 var results = ["aaabcxyzpqrrrabbxyyyypqqqqqqAzz"];
80 shouldBe('regex3.exec(input13);', 'results');
81 var input14 = "aaaabcxyzpqrrrabbxyyyypqAzz";
82 var results = ["aaaabcxyzpqrrrabbxyyyypqAzz"];
83 shouldBe('regex3.exec(input14);', 'results');
84 var input15 = "abxyzzpqrrrabbxyyyypqAzz";
85 var results = ["abxyzzpqrrrabbxyyyypqAzz"];
86 shouldBe('regex3.exec(input15);', 'results');
87 var input16 = "aabxyzzzpqrrrabbxyyyypqAzz";
88 var results = ["aabxyzzzpqrrrabbxyyyypqAzz"];
89 shouldBe('regex3.exec(input16);', 'results');
90 var input17 = "aaabxyzzzzpqrrrabbxyyyypqAzz";
91 var results = ["aaabxyzzzzpqrrrabbxyyyypqAzz"];
92 shouldBe('regex3.exec(input17);', 'results');
93 var input18 = "aaaabxyzzzzpqrrrabbxyyyypqAzz";
94 var results = ["aaaabxyzzzzpqrrrabbxyyyypqAzz"];
95 shouldBe('regex3.exec(input18);', 'results');
96 var input19 = "abcxyzzpqrrrabbxyyyypqAzz";
97 var results = ["abcxyzzpqrrrabbxyyyypqAzz"];
98 shouldBe('regex3.exec(input19);', 'results');
99 var input20 = "aabcxyzzzpqrrrabbxyyyypqAzz";
100 var results = ["aabcxyzzzpqrrrabbxyyyypqAzz"];
101 shouldBe('regex3.exec(input20);', 'results');
102 var input21 = "aaabcxyzzzzpqrrrabbxyyyypqAzz";
103 var results = ["aaabcxyzzzzpqrrrabbxyyyypqAzz"];
104 shouldBe('regex3.exec(input21);', 'results');
105 var input22 = "aaaabcxyzzzzpqrrrabbxyyyypqAzz";
106 var results = ["aaaabcxyzzzzpqrrrabbxyyyypqAzz"];
107 shouldBe('regex3.exec(input22);', 'results');
108 var input23 = "aaaabcxyzzzzpqrrrabbbxyyyypqAzz";
109 var results = ["aaaabcxyzzzzpqrrrabbbxyyyypqAzz"];
110 shouldBe('regex3.exec(input23);', 'results');
111 var input24 = "aaaabcxyzzzzpqrrrabbbxyyyyypqAzz";
112 var results = ["aaaabcxyzzzzpqrrrabbbxyyyyypqAzz"];
113 shouldBe('regex3.exec(input24);', 'results');
114 var input25 = "aaabcxyzpqrrrabbxyyyypABzz";
115 var results = ["aaabcxyzpqrrrabbxyyyypABzz"];
116 shouldBe('regex3.exec(input25);', 'results');
117 var input26 = "aaabcxyzpqrrrabbxyyyypABBzz";
118 var results = ["aaabcxyzpqrrrabbxyyyypABBzz"];
119 shouldBe('regex3.exec(input26);', 'results');
120 var input27 = ">>>aaabxyzpqrrrabbxyyyypqAzz";
121 var results = ["aaabxyzpqrrrabbxyyyypqAzz"];
122 shouldBe('regex3.exec(input27);', 'results');
123 var input28 = ">aaaabxyzpqrrrabbxyyyypqAzz";
124 var results = ["aaaabxyzpqrrrabbxyyyypqAzz"];
125 shouldBe('regex3.exec(input28);', 'results');
126 var input29 = ">>>>abcxyzpqrrrabbxyyyypqAzz";
127 var results = ["abcxyzpqrrrabbxyyyypqAzz"];
128 shouldBe('regex3.exec(input29);', 'results');
129 // Failers
130 var input30 = "abxyzpqrrabbxyyyypqAzz";
131 var results = null;
132 shouldBe('regex3.exec(input30);', 'results');
133 var input31 = "abxyzpqrrrrabbxyyyypqAzz";
134 var results = null;
135 shouldBe('regex3.exec(input31);', 'results');
136 var input32 = "abxyzpqrrrabxyyyypqAzz";
137 var results = null;
138 shouldBe('regex3.exec(input32);', 'results');
139 var input33 = "aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz";
140 var results = null;
141 shouldBe('regex3.exec(input33);', 'results');
142 var input34 = "aaaabcxyzzzzpqrrrabbbxyyypqAzz";
143 var results = null;
144 shouldBe('regex3.exec(input34);', 'results');
145 var input35 = "aaabcxyzpqrrrabbxyyyypqqqqqqqAzz";
146 var results = null;
147 shouldBe('regex3.exec(input35);', 'results');
148
149 var regex4 = /^(abc){1,2}zz/;
150 var input0 = "abczz";
151 var results = ["abczz", "abc"];
152 shouldBe('regex4.exec(input0);', 'results');
153 var input1 = "abcabczz";
154 var results = ["abcabczz", "abc"];
155 shouldBe('regex4.exec(input1);', 'results');
156 // Failers
157 var input2 = "zz";
158 var results = null;
159 shouldBe('regex4.exec(input2);', 'results');
160 var input3 = "abcabcabczz";
161 var results = null;
162 shouldBe('regex4.exec(input3);', 'results');
163 var input4 = ">>abczz";
164 var results = null;
165 shouldBe('regex4.exec(input4);', 'results');
166
167 var regex5 = /^(b+?|a){1,2}?c/;
168 var input0 = "bc";
169 var results = ["bc", "b"];
170 shouldBe('regex5.exec(input0);', 'results');
171 var input1 = "bbc";
172 var results = ["bbc", "b"];
173 shouldBe('regex5.exec(input1);', 'results');
174 var input2 = "bbbc";
175 var results = ["bbbc", "bb"];
176 shouldBe('regex5.exec(input2);', 'results');
177 var input3 = "bac";
178 var results = ["bac", "a"];
179 shouldBe('regex5.exec(input3);', 'results');
180 var input4 = "bbac";
181 var results = ["bbac", "a"];
182 shouldBe('regex5.exec(input4);', 'results');
183 var input5 = "aac";
184 var results = ["aac", "a"];
185 shouldBe('regex5.exec(input5);', 'results');
186 var input6 = "abbbbbbbbbbbc";
187 var results = ["abbbbbbbbbbbc", "bbbbbbbbbbb"];
188 shouldBe('regex5.exec(input6);', 'results');
189 var input7 = "bbbbbbbbbbbac";
190 var results = ["bbbbbbbbbbbac", "a"];
191 shouldBe('regex5.exec(input7);', 'results');
192 // Failers
193 var input8 = "aaac";
194 var results = null;
195 shouldBe('regex5.exec(input8);', 'results');
196 var input9 = "abbbbbbbbbbbac";
197 var results = null;
198 shouldBe('regex5.exec(input9);', 'results');
199
200 var regex6 = /^(b+|a){1,2}c/;
201 var input0 = "bc";
202 var results = ["bc", "b"];
203 shouldBe('regex6.exec(input0);', 'results');
204 var input1 = "bbc";
205 var results = ["bbc", "bb"];
206 shouldBe('regex6.exec(input1);', 'results');
207 var input2 = "bbbc";
208 var results = ["bbbc", "bbb"];
209 shouldBe('regex6.exec(input2);', 'results');
210 var input3 = "bac";
211 var results = ["bac", "a"];
212 shouldBe('regex6.exec(input3);', 'results');
213 var input4 = "bbac";
214 var results = ["bbac", "a"];
215 shouldBe('regex6.exec(input4);', 'results');
216 var input5 = "aac";
217 var results = ["aac", "a"];
218 shouldBe('regex6.exec(input5);', 'results');
219 var input6 = "abbbbbbbbbbbc";
220 var results = ["abbbbbbbbbbbc", "bbbbbbbbbbb"];
221 shouldBe('regex6.exec(input6);', 'results');
222 var input7 = "bbbbbbbbbbbac";
223 var results = ["bbbbbbbbbbbac", "a"];
224 shouldBe('regex6.exec(input7);', 'results');
225 // Failers
226 var input8 = "aaac";
227 var results = null;
228 shouldBe('regex6.exec(input8);', 'results');
229 var input9 = "abbbbbbbbbbbac";
230 var results = null;
231 shouldBe('regex6.exec(input9);', 'results');
232
233 var regex7 = /^(b+|a){1,2}?bc/;
234 var input0 = "bbc";
235 var results = ["bbc", "b"];
236 shouldBe('regex7.exec(input0);', 'results');
237
238 var regex8 = /^(b*|ba){1,2}?bc/;
239 var input0 = "babc";
240 var results = ["babc", "ba"];
241 shouldBe('regex8.exec(input0);', 'results');
242 var input1 = "bbabc";
243 var results = ["bbabc", "ba"];
244 shouldBe('regex8.exec(input1);', 'results');
245 var input2 = "bababc";
246 var results = ["bababc", "ba"];
247 shouldBe('regex8.exec(input2);', 'results');
248 // Failers
249 var input3 = "bababbc";
250 var results = null;
251 shouldBe('regex8.exec(input3);', 'results');
252 var input4 = "babababc";
253 var results = null;
254 shouldBe('regex8.exec(input4);', 'results');
255
256 var regex9 = /^(ba|b*){1,2}?bc/;
257 var input0 = "babc";
258 var results = ["babc", "ba"];
259 shouldBe('regex9.exec(input0);', 'results');
260 var input1 = "bbabc";
261 var results = ["bbabc", "ba"];
262 shouldBe('regex9.exec(input1);', 'results');
263 var input2 = "bababc";
264 var results = ["bababc", "ba"];
265 shouldBe('regex9.exec(input2);', 'results');
266 // Failers
267 var input3 = "bababbc";
268 var results = null;
269 shouldBe('regex9.exec(input3);', 'results');
270 var input4 = "babababc";
271 var results = null;
272 shouldBe('regex9.exec(input4);', 'results');
273
274 var regex10 = /^\ca\cA/;
275 var input0 = "\x01\x01";
276 var results = ["\x01\x01"];
277 shouldBe('regex10.exec(input0);', 'results');
278
279 var regex11 = /^[ab\]cde]/;
280 var input0 = "athing";
281 var results = ["a"];
282 shouldBe('regex11.exec(input0);', 'results');
283 var input1 = "bthing";
284 var results = ["b"];
285 shouldBe('regex11.exec(input1);', 'results');
286 var input2 = "]thing";
287 var results = ["]"];
288 shouldBe('regex11.exec(input2);', 'results');
289 var input3 = "cthing";
290 var results = ["c"];
291 shouldBe('regex11.exec(input3);', 'results');
292 var input4 = "dthing";
293 var results = ["d"];
294 shouldBe('regex11.exec(input4);', 'results');
295 var input5 = "ething";
296 var results = ["e"];
297 shouldBe('regex11.exec(input5);', 'results');
298 // Failers
299 var input6 = "fthing";
300 var results = null;
301 shouldBe('regex11.exec(input6);', 'results');
302 var input7 = "[thing";
303 var results = null;
304 shouldBe('regex11.exec(input7);', 'results');
305 var input8 = "\\thing";
306 var results = null;
307 shouldBe('regex11.exec(input8);', 'results');
308
309 var regex12 = /^[\]cde]/;
310 var input0 = "]thing";
311 var results = ["]"];
312 shouldBe('regex12.exec(input0);', 'results');
313 var input1 = "cthing";
314 var results = ["c"];
315 shouldBe('regex12.exec(input1);', 'results');
316 var input2 = "dthing";
317 var results = ["d"];
318 shouldBe('regex12.exec(input2);', 'results');
319 var input3 = "ething";
320 var results = ["e"];
321 shouldBe('regex12.exec(input3);', 'results');
322 // Failers
323 var input4 = "athing";
324 var results = null;
325 shouldBe('regex12.exec(input4);', 'results');
326 var input5 = "fthing";
327 var results = null;
328 shouldBe('regex12.exec(input5);', 'results');
329
330 var regex13 = /^[^ab\]cde]/;
331 var input0 = "fthing";
332 var results = ["f"];
333 shouldBe('regex13.exec(input0);', 'results');
334 var input1 = "[thing";
335 var results = ["["];
336 shouldBe('regex13.exec(input1);', 'results');
337 var input2 = "\\thing";
338 var results = ["\\"];
339 shouldBe('regex13.exec(input2);', 'results');
340 // Failers
341 var input3 = "athing";
342 var results = null;
343 shouldBe('regex13.exec(input3);', 'results');
344 var input4 = "bthing";
345 var results = null;
346 shouldBe('regex13.exec(input4);', 'results');
347 var input5 = "]thing";
348 var results = null;
349 shouldBe('regex13.exec(input5);', 'results');
350 var input6 = "cthing";
351 var results = null;
352 shouldBe('regex13.exec(input6);', 'results');
353 var input7 = "dthing";
354 var results = null;
355 shouldBe('regex13.exec(input7);', 'results');
356 var input8 = "ething";
357 var results = null;
358 shouldBe('regex13.exec(input8);', 'results');
359
360 var regex14 = /^[^\]cde]/;
361 var input0 = "athing";
362 var results = ["a"];
363 shouldBe('regex14.exec(input0);', 'results');
364 var input1 = "fthing";
365 var results = ["f"];
366 shouldBe('regex14.exec(input1);', 'results');
367 // Failers
368 var input2 = "]thing";
369 var results = null;
370 shouldBe('regex14.exec(input2);', 'results');
371 var input3 = "cthing";
372 var results = null;
373 shouldBe('regex14.exec(input3);', 'results');
374 var input4 = "dthing";
375 var results = null;
376 shouldBe('regex14.exec(input4);', 'results');
377 var input5 = "ething";
378 var results = null;
379 shouldBe('regex14.exec(input5);', 'results');
380
381 var regex15 = /^\xc2/;
382 var input0 = "\xc2";
383 var results = ["\xc2"];
384 shouldBe('regex15.exec(input0);', 'results');
385
386 var regex16 = /^\xc3/;
387 var input0 = "\xc3";
388 var results = ["\xc3"];
389 shouldBe('regex16.exec(input0);', 'results');
390
391 var regex17 = /^[0-9]+$/;
392 var input0 = "0";
393 var results = ["0"];
394 shouldBe('regex17.exec(input0);', 'results');
395 var input1 = "1";
396 var results = ["1"];
397 shouldBe('regex17.exec(input1);', 'results');
398 var input2 = "2";
399 var results = ["2"];
400 shouldBe('regex17.exec(input2);', 'results');
401 var input3 = "3";
402 var results = ["3"];
403 shouldBe('regex17.exec(input3);', 'results');
404 var input4 = "4";
405 var results = ["4"];
406 shouldBe('regex17.exec(input4);', 'results');
407 var input5 = "5";
408 var results = ["5"];
409 shouldBe('regex17.exec(input5);', 'results');
410 var input6 = "6";
411 var results = ["6"];
412 shouldBe('regex17.exec(input6);', 'results');
413 var input7 = "7";
414 var results = ["7"];
415 shouldBe('regex17.exec(input7);', 'results');
416 var input8 = "8";
417 var results = ["8"];
418 shouldBe('regex17.exec(input8);', 'results');
419 var input9 = "9";
420 var results = ["9"];
421 shouldBe('regex17.exec(input9);', 'results');
422 var input10 = "10";
423 var results = ["10"];
424 shouldBe('regex17.exec(input10);', 'results');
425 var input11 = "100";
426 var results = ["100"];
427 shouldBe('regex17.exec(input11);', 'results');
428 // Failers
429 var input12 = "abc";
430 var results = null;
431 shouldBe('regex17.exec(input12);', 'results');
432
433 var regex18 = /^.*nter/;
434 var input0 = "enter";
435 var results = ["enter"];
436 shouldBe('regex18.exec(input0);', 'results');
437 var input1 = "inter";
438 var results = ["inter"];
439 shouldBe('regex18.exec(input1);', 'results');
440 var input2 = "uponter";
441 var results = ["uponter"];
442 shouldBe('regex18.exec(input2);', 'results');
443
444 var regex19 = /^xxx[0-9]+$/;
445 var input0 = "xxx0";
446 var results = ["xxx0"];
447 shouldBe('regex19.exec(input0);', 'results');
448 var input1 = "xxx1234";
449 var results = ["xxx1234"];
450 shouldBe('regex19.exec(input1);', 'results');
451 // Failers
452 var input2 = "xxx";
453 var results = null;
454 shouldBe('regex19.exec(input2);', 'results');
455
456 var regex20 = /^.+[0-9][0-9][0-9]$/;
457 var input0 = "x123";
458 var results = ["x123"];
459 shouldBe('regex20.exec(input0);', 'results');
460 var input1 = "xx123";
461 var results = ["xx123"];
462 shouldBe('regex20.exec(input1);', 'results');
463 var input2 = "123456";
464 var results = ["123456"];
465 shouldBe('regex20.exec(input2);', 'results');
466 // Failers
467 var input3 = "123";
468 var results = null;
469 shouldBe('regex20.exec(input3);', 'results');
470 var input4 = "x1234";
471 var results = ["x1234"];
472 shouldBe('regex20.exec(input4);', 'results');
473
474 var regex21 = /^.+?[0-9][0-9][0-9]$/;
475 var input0 = "x123";
476 var results = ["x123"];
477 shouldBe('regex21.exec(input0);', 'results');
478 var input1 = "xx123";
479 var results = ["xx123"];
480 shouldBe('regex21.exec(input1);', 'results');
481 var input2 = "123456";
482 var results = ["123456"];
483 shouldBe('regex21.exec(input2);', 'results');
484 // Failers
485 var input3 = "123";
486 var results = null;
487 shouldBe('regex21.exec(input3);', 'results');
488 var input4 = "x1234";
489 var results = ["x1234"];
490 shouldBe('regex21.exec(input4);', 'results');
491
492 var regex22 = /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/;
493 var input0 = "abc!pqr=apquxz.ixr.zzz.ac.uk";
494 var results = ["abc!pqr=apquxz.ixr.zzz.ac.uk", "abc", "pqr"];
495 shouldBe('regex22.exec(input0);', 'results');
496 // Failers
497 var input1 = "!pqr=apquxz.ixr.zzz.ac.uk";
498 var results = null;
499 shouldBe('regex22.exec(input1);', 'results');
500 var input2 = "abc!=apquxz.ixr.zzz.ac.uk";
501 var results = null;
502 shouldBe('regex22.exec(input2);', 'results');
503 var input3 = "abc!pqr=apquxz:ixr.zzz.ac.uk";
504 var results = null;
505 shouldBe('regex22.exec(input3);', 'results');
506 var input4 = "abc!pqr=apquxz.ixr.zzz.ac.ukk";
507 var results = null;
508 shouldBe('regex22.exec(input4);', 'results');
509
510 var regex23 = /:/;
511 var input0 = "Well, we need a colon: somewhere";
512 var results = [":"];
513 shouldBe('regex23.exec(input0);', 'results');
514 var input1 = "*** Fail if we don't";
515 var results = null;
516 shouldBe('regex23.exec(input1);', 'results');
517
518 var regex24 = /([\da-f:]+)$/i;
519 var input0 = "0abc";
520 var results = ["0abc", "0abc"];
521 shouldBe('regex24.exec(input0);', 'results');
522 var input1 = "abc";
523 var results = ["abc", "abc"];
524 shouldBe('regex24.exec(input1);', 'results');
525 var input2 = "fed";
526 var results = ["fed", "fed"];
527 shouldBe('regex24.exec(input2);', 'results');
528 var input3 = "E";
529 var results = ["E", "E"];
530 shouldBe('regex24.exec(input3);', 'results');
531 var input4 = "::";
532 var results = ["::", "::"];
533 shouldBe('regex24.exec(input4);', 'results');
534 var input5 = "5f03:12C0::932e";
535 var results = ["5f03:12C0::932e", "5f03:12C0::932e"];
536 shouldBe('regex24.exec(input5);', 'results');
537 var input6 = "fed def";
538 var results = ["def", "def"];
539 shouldBe('regex24.exec(input6);', 'results');
540 var input7 = "Any old stuff";
541 var results = ["ff", "ff"];
542 shouldBe('regex24.exec(input7);', 'results');
543 // Failers
544 var input8 = "0zzz";
545 var results = null;
546 shouldBe('regex24.exec(input8);', 'results');
547 var input9 = "gzzz";
548 var results = null;
549 shouldBe('regex24.exec(input9);', 'results');
550 var input10 = "fed\x20";
551 var results = null;
552 shouldBe('regex24.exec(input10);', 'results');
553 var input11 = "Any old rubbish";
554 var results = null;
555 shouldBe('regex24.exec(input11);', 'results');
556
557 var regex25 = /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
558 var input0 = ".1.2.3";
559 var results = [".1.2.3", "1", "2", "3"];
560 shouldBe('regex25.exec(input0);', 'results');
561 var input1 = "A.12.123.0";
562 var results = ["A.12.123.0", "12", "123", "0"];
563 shouldBe('regex25.exec(input1);', 'results');
564 // Failers
565 var input2 = ".1.2.3333";
566 var results = null;
567 shouldBe('regex25.exec(input2);', 'results');
568 var input3 = "1.2.3";
569 var results = null;
570 shouldBe('regex25.exec(input3);', 'results');
571 var input4 = "1234.2.3";
572 var results = null;
573 shouldBe('regex25.exec(input4);', 'results');
574
575 var regex26 = /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/;
576 var input0 = "1 IN SOA non-sp1 non-sp2(";
577 var results = ["1 IN SOA non-sp1 non-sp2(", "1", "non-sp1", "non-sp2"];
578 shouldBe('regex26.exec(input0);', 'results');
579 var input1 = "1    IN    SOA    non-sp1    non-sp2   (";
580 var results = ["1    IN    SOA    non-sp1    non-sp2   (", "1", "non-sp1", "non-sp2"];
581 shouldBe('regex26.exec(input1);', 'results');
582 // Failers
583 var input2 = "1IN SOA non-sp1 non-sp2(";
584 var results = null;
585 shouldBe('regex26.exec(input2);', 'results');
586
587 var regex27 = /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/;
588 var input0 = "a.";
589 var results = ["a.", undefined];
590 shouldBe('regex27.exec(input0);', 'results');
591 var input1 = "Z.";
592 var results = ["Z.", undefined];
593 shouldBe('regex27.exec(input1);', 'results');
594 var input2 = "2.";
595 var results = ["2.", undefined];
596 shouldBe('regex27.exec(input2);', 'results');
597 var input3 = "ab-c.pq-r.";
598 var results = ["ab-c.pq-r.", ".pq-r"];
599 shouldBe('regex27.exec(input3);', 'results');
600 var input4 = "sxk.zzz.ac.uk.";
601 var results = ["sxk.zzz.ac.uk.", ".uk"];
602 shouldBe('regex27.exec(input4);', 'results');
603 var input5 = "x-.y-.";
604 var results = ["x-.y-.", ".y-"];
605 shouldBe('regex27.exec(input5);', 'results');
606 // Failers
607 var input6 = "-abc.peq.";
608 var results = null;
609 shouldBe('regex27.exec(input6);', 'results');
610
611 var regex28 = /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/;
612 var input0 = "*.a";
613 var results = ["*.a", undefined, undefined, undefined];
614 shouldBe('regex28.exec(input0);', 'results');
615 var input1 = "*.b0-a";
616 var results = ["*.b0-a", "0-a", undefined, undefined];
617 shouldBe('regex28.exec(input1);', 'results');
618 var input2 = "*.c3-b.c";
619 var results = ["*.c3-b.c", "3-b", ".c", undefined];
620 shouldBe('regex28.exec(input2);', 'results');
621 var input3 = "*.c-a.b-c";
622 var results = ["*.c-a.b-c", "-a", ".b-c", "-c"];
623 shouldBe('regex28.exec(input3);', 'results');
624 // Failers
625 var input4 = "*.0";
626 var results = null;
627 shouldBe('regex28.exec(input4);', 'results');
628 var input5 = "*.a-";
629 var results = null;
630 shouldBe('regex28.exec(input5);', 'results');
631 var input6 = "*.a-b.c-";
632 var results = null;
633 shouldBe('regex28.exec(input6);', 'results');
634 var input7 = "*.c-a.0-c";
635 var results = null;
636 shouldBe('regex28.exec(input7);', 'results');
637
638 var regex29 = /^(?=ab(de))(abd)(e)/;
639 var input0 = "abde";
640 var results = ["abde", "de", "abd", "e"];
641 shouldBe('regex29.exec(input0);', 'results');
642
643 var regex30 = /^(?!(ab)de|x)(abd)(f)/;
644 var input0 = "abdf";
645 var results = ["abdf", undefined, "abd", "f"];
646 shouldBe('regex30.exec(input0);', 'results');
647
648 var regex31 = /^(?=(ab(cd)))(ab)/;
649 var input0 = "abcd";
650 var results = ["ab", "abcd", "cd", "ab"];
651 shouldBe('regex31.exec(input0);', 'results');
652
653 var regex32 = /^[\da-f](\.[\da-f])*$/i;
654 var input0 = "a.b.c.d";
655 var results = ["a.b.c.d", ".d"];
656 shouldBe('regex32.exec(input0);', 'results');
657 var input1 = "A.B.C.D";
658 var results = ["A.B.C.D", ".D"];
659 shouldBe('regex32.exec(input1);', 'results');
660 var input2 = "a.b.c.1.2.3.C";
661 var results = ["a.b.c.1.2.3.C", ".C"];
662 shouldBe('regex32.exec(input2);', 'results');
663
664 var regex33 = /^\".*\"\s*(;.*)?$/;
665 var input0 = "\"1234\"";
666 var results = ["\"1234\"", undefined];
667 shouldBe('regex33.exec(input0);', 'results');
668 var input1 = "\"abcd\" ;";
669 var results = ["\"abcd\" ;", ";"];
670 shouldBe('regex33.exec(input1);', 'results');
671 var input2 = "\"\" ; rhubarb";
672 var results = ["\"\" ; rhubarb", "; rhubarb"];
673 shouldBe('regex33.exec(input2);', 'results');
674 // Failers
675 var input3 = "\"1234\" : things";
676 var results = null;
677 shouldBe('regex33.exec(input3);', 'results');
678
679 var regex34 = /^$/;
680 var input0 = "";
681 var results = [""];
682 shouldBe('regex34.exec(input0);', 'results');
683
684 var regex35 = /^a\ b[c ]d$/;
685 var input0 = "a bcd";
686 var results = ["a bcd"];
687 shouldBe('regex35.exec(input0);', 'results');
688 var input1 = "a b d";
689 var results = ["a b d"];
690 shouldBe('regex35.exec(input1);', 'results');
691 var input2 = "abcd";
692 var results = null;
693 shouldBe('regex35.exec(input2);', 'results');
694 var input3 = "ab d";
695 var results = null;
696 shouldBe('regex35.exec(input3);', 'results');
697
698 var regex36 = /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/;
699 var input0 = "abcdefhijklm";
700 var results = ["abcdefhijklm", "abc", "bc", "c", "def", "ef", "f", "hij", "ij", "j", "klm", "lm", "m"];
701 shouldBe('regex36.exec(input0);', 'results');
702
703 var regex37 = /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/;
704 var input0 = "abcdefhijklm";
705 var results = ["abcdefhijklm", "bc", "c", "ef", "f", "ij", "j", "lm", "m"];
706 shouldBe('regex37.exec(input0);', 'results');
707
708 var regex38 = /^[\w][\W][\s][\S][\d][\D][\n][\cc][\022]/;
709 var input0 = "a+ Z0+\n\x03\x12";
710 var results = ["a+ Z0+\x0a\x03\x12"];
711 shouldBe('regex38.exec(input0);', 'results');
712
713 var regex39 = /^[.^$|()*+?{,}]+/;
714 var input0 = ".^\$(*+)|{?,?}";
715 var results = [".^$(*+)|{?,?}"];
716 shouldBe('regex39.exec(input0);', 'results');
717
718 var regex40 = /^a*\w/;
719 var input0 = "z";
720 var results = ["z"];
721 shouldBe('regex40.exec(input0);', 'results');
722 var input1 = "az";
723 var results = ["az"];
724 shouldBe('regex40.exec(input1);', 'results');
725 var input2 = "aaaz";
726 var results = ["aaaz"];
727 shouldBe('regex40.exec(input2);', 'results');
728 var input3 = "a";
729 var results = ["a"];
730 shouldBe('regex40.exec(input3);', 'results');
731 var input4 = "aa";
732 var results = ["aa"];
733 shouldBe('regex40.exec(input4);', 'results');
734 var input5 = "aaaa";
735 var results = ["aaaa"];
736 shouldBe('regex40.exec(input5);', 'results');
737 var input6 = "a+";
738 var results = ["a"];
739 shouldBe('regex40.exec(input6);', 'results');
740 var input7 = "aa+";
741 var results = ["aa"];
742 shouldBe('regex40.exec(input7);', 'results');
743
744 var regex41 = /^a*?\w/;
745 var input0 = "z";
746 var results = ["z"];
747 shouldBe('regex41.exec(input0);', 'results');
748 var input1 = "az";
749 var results = ["a"];
750 shouldBe('regex41.exec(input1);', 'results');
751 var input2 = "aaaz";
752 var results = ["a"];
753 shouldBe('regex41.exec(input2);', 'results');
754 var input3 = "a";
755 var results = ["a"];
756 shouldBe('regex41.exec(input3);', 'results');
757 var input4 = "aa";
758 var results = ["a"];
759 shouldBe('regex41.exec(input4);', 'results');
760 var input5 = "aaaa";
761 var results = ["a"];
762 shouldBe('regex41.exec(input5);', 'results');
763 var input6 = "a+";
764 var results = ["a"];
765 shouldBe('regex41.exec(input6);', 'results');
766 var input7 = "aa+";
767 var results = ["a"];
768 shouldBe('regex41.exec(input7);', 'results');
769
770 var regex42 = /^a+\w/;
771 var input0 = "az";
772 var results = ["az"];
773 shouldBe('regex42.exec(input0);', 'results');
774 var input1 = "aaaz";
775 var results = ["aaaz"];
776 shouldBe('regex42.exec(input1);', 'results');
777 var input2 = "aa";
778 var results = ["aa"];
779 shouldBe('regex42.exec(input2);', 'results');
780 var input3 = "aaaa";
781 var results = ["aaaa"];
782 shouldBe('regex42.exec(input3);', 'results');
783 var input4 = "aa+";
784 var results = ["aa"];
785 shouldBe('regex42.exec(input4);', 'results');
786
787 var regex43 = /^a+?\w/;
788 var input0 = "az";
789 var results = ["az"];
790 shouldBe('regex43.exec(input0);', 'results');
791 var input1 = "aaaz";
792 var results = ["aa"];
793 shouldBe('regex43.exec(input1);', 'results');
794 var input2 = "aa";
795 var results = ["aa"];
796 shouldBe('regex43.exec(input2);', 'results');
797 var input3 = "aaaa";
798 var results = ["aa"];
799 shouldBe('regex43.exec(input3);', 'results');
800 var input4 = "aa+";
801 var results = ["aa"];
802 shouldBe('regex43.exec(input4);', 'results');
803
804 var regex44 = /^\d{8}\w{2,}/;
805 var input0 = "1234567890";
806 var results = ["1234567890"];
807 shouldBe('regex44.exec(input0);', 'results');
808 var input1 = "12345678ab";
809 var results = ["12345678ab"];
810 shouldBe('regex44.exec(input1);', 'results');
811 var input2 = "12345678__";
812 var results = ["12345678__"];
813 shouldBe('regex44.exec(input2);', 'results');
814 // Failers
815 var input3 = "1234567";
816 var results = null;
817 shouldBe('regex44.exec(input3);', 'results');
818
819 var regex45 = /^[aeiou\d]{4,5}$/;
820 var input0 = "uoie";
821 var results = ["uoie"];
822 shouldBe('regex45.exec(input0);', 'results');
823 var input1 = "1234";
824 var results = ["1234"];
825 shouldBe('regex45.exec(input1);', 'results');
826 var input2 = "12345";
827 var results = ["12345"];
828 shouldBe('regex45.exec(input2);', 'results');
829 var input3 = "aaaaa";
830 var results = ["aaaaa"];
831 shouldBe('regex45.exec(input3);', 'results');
832 // Failers
833 var input4 = "123456";
834 var results = null;
835 shouldBe('regex45.exec(input4);', 'results');
836
837 var regex46 = /^[aeiou\d]{4,5}?/;
838 var input0 = "uoie";
839 var results = ["uoie"];
840 shouldBe('regex46.exec(input0);', 'results');
841 var input1 = "1234";
842 var results = ["1234"];
843 shouldBe('regex46.exec(input1);', 'results');
844 var input2 = "12345";
845 var results = ["1234"];
846 shouldBe('regex46.exec(input2);', 'results');
847 var input3 = "aaaaa";
848 var results = ["aaaa"];
849 shouldBe('regex46.exec(input3);', 'results');
850 var input4 = "123456";
851 var results = ["1234"];
852 shouldBe('regex46.exec(input4);', 'results');
853
854 var regex47 = /^(abc|def)=(\1){2,3}$/;
855 var input0 = "abc=abcabc";
856 var results = ["abc=abcabc", "abc", "abc"];
857 shouldBe('regex47.exec(input0);', 'results');
858 var input1 = "def=defdefdef";
859 var results = ["def=defdefdef", "def", "def"];
860 shouldBe('regex47.exec(input1);', 'results');
861 // Failers
862 var input2 = "abc=defdef";
863 var results = null;
864 shouldBe('regex47.exec(input2);', 'results');
865
866 var regex48 = /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?:)2$/;
867 var input0 = "abcdefghijkcda2";
868 var results = ["abcdefghijkcda2", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "cd"];
869 shouldBe('regex48.exec(input0);', 'results');
870 var input1 = "abcdefghijkkkkcda2";
871 var results = ["abcdefghijkkkkcda2", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "cd"];
872 shouldBe('regex48.exec(input1);', 'results');
873
874 var regex49 = /(cat(a(ract|tonic)|erpillar)) \1()2(3)/;
875 var input0 = "cataract cataract23";
876 var results = ["cataract cataract23", "cataract", "aract", "ract", "", "3"];
877 shouldBe('regex49.exec(input0);', 'results');
878 var input1 = "catatonic catatonic23";
879 var results = ["catatonic catatonic23", "catatonic", "atonic", "tonic", "", "3"];
880 shouldBe('regex49.exec(input1);', 'results');
881 var input2 = "caterpillar caterpillar23";
882 var results = ["caterpillar caterpillar23", "caterpillar", "erpillar", undefined, "", "3"];
883 shouldBe('regex49.exec(input2);', 'results');
884
885 var regex50 = /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/;
886 var input0 = "From abcd  Mon Sep 01 12:33:02 1997";
887 var results = ["From abcd  Mon Sep 01 12:33", "abcd"];
888 shouldBe('regex50.exec(input0);', 'results');
889
890 var regex51 = /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/;
891 var input0 = "From abcd  Mon Sep 01 12:33:02 1997";
892 var results = ["From abcd  Mon Sep 01 12:33", "Sep "];
893 shouldBe('regex51.exec(input0);', 'results');
894 var input1 = "From abcd  Mon Sep  1 12:33:02 1997";
895 var results = ["From abcd  Mon Sep  1 12:33", "Sep  "];
896 shouldBe('regex51.exec(input1);', 'results');
897 // Failers
898 var input2 = "From abcd  Sep 01 12:33:02 1997";
899 var results = null;
900 shouldBe('regex51.exec(input2);', 'results');
901
902 var regex52 = /^12.34/;
903 // Failers
904 var input0 = "12\n34";
905 var results = null;
906 shouldBe('regex52.exec(input0);', 'results');
907 var input1 = "12\r34";
908 var results = null;
909 shouldBe('regex52.exec(input1);', 'results');
910
911 var regex53 = /\w+(?=\t)/;
912 var input0 = "the quick brown\t fox";
913 var results = ["brown"];
914 shouldBe('regex53.exec(input0);', 'results');
915
916 var regex54 = /foo(?!bar)(.*)/;
917 var input0 = "foobar is foolish see?";
918 var results = ["foolish see?", "lish see?"];
919 shouldBe('regex54.exec(input0);', 'results');
920
921 var regex55 = /(?:(?!foo)...|^.{0,2})bar(.*)/;
922 var input0 = "foobar crowbar etc";
923 var results = ["rowbar etc", " etc"];
924 shouldBe('regex55.exec(input0);', 'results');
925 var input1 = "barrel";
926 var results = ["barrel", "rel"];
927 shouldBe('regex55.exec(input1);', 'results');
928 var input2 = "2barrel";
929 var results = ["2barrel", "rel"];
930 shouldBe('regex55.exec(input2);', 'results');
931 var input3 = "A barrel";
932 var results = ["A barrel", "rel"];
933 shouldBe('regex55.exec(input3);', 'results');
934
935 var regex56 = /^(\D*)(?=\d)(?!123)/;
936 var input0 = "abc456";
937 var results = ["abc", "abc"];
938 shouldBe('regex56.exec(input0);', 'results');
939 // Failers
940 var input1 = "abc123";
941 var results = null;
942 shouldBe('regex56.exec(input1);', 'results');
943
944 var regex57 = /^(a)\1{2,3}(.)/;
945 var input0 = "aaab";
946 var results = ["aaab", "a", "b"];
947 shouldBe('regex57.exec(input0);', 'results');
948 var input1 = "aaaab";
949 var results = ["aaaab", "a", "b"];
950 shouldBe('regex57.exec(input1);', 'results');
951 var input2 = "aaaaab";
952 var results = ["aaaaa", "a", "a"];
953 shouldBe('regex57.exec(input2);', 'results');
954 var input3 = "aaaaaab";
955 var results = ["aaaaa", "a", "a"];
956 shouldBe('regex57.exec(input3);', 'results');
957
958 var regex58 = /(?!^)abc/;
959 var input0 = "the abc";
960 var results = ["abc"];
961 shouldBe('regex58.exec(input0);', 'results');
962 // Failers
963 var input1 = "abc";
964 var results = null;
965 shouldBe('regex58.exec(input1);', 'results');
966
967 var regex59 = /(?=^)abc/;
968 var input0 = "abc";
969 var results = ["abc"];
970 shouldBe('regex59.exec(input0);', 'results');
971 // Failers
972 var input1 = "the abc";
973 var results = null;
974 shouldBe('regex59.exec(input1);', 'results');
975
976 var regex60 = /^[ab]{1,3}(ab*|b)/;
977 var input0 = "aabbbbb";
978 var results = ["aabb", "b"];
979 shouldBe('regex60.exec(input0);', 'results');
980
981 var regex61 = /^[ab]{1,3}?(ab*|b)/;
982 var input0 = "aabbbbb";
983 var results = ["aabbbbb", "abbbbb"];
984 shouldBe('regex61.exec(input0);', 'results');
985
986 var regex62 = /^[ab]{1,3}?(ab*?|b)/;
987 var input0 = "aabbbbb";
988 var results = ["aa", "a"];
989 shouldBe('regex62.exec(input0);', 'results');
990
991 var regex63 = /^[ab]{1,3}(ab*?|b)/;
992 var input0 = "aabbbbb";
993 var results = ["aabb", "b"];
994 shouldBe('regex63.exec(input0);', 'results');
995
996 var regex64 = /abc\0def\00pqr\000xyz\0000AB/;
997 var input0 = "abc\0def\0pqr\0xyz\0AB";
998 var results = ["abc\0def\0pqr\0xyz\0AB"];
999 shouldBe('regex64.exec(input0);', 'results');
1000 var input1 = "abc456 abc\0def\0pqr\0xyz\0ABCDE";
1001 var results = ["abc\0def\0pqr\0xyz\0AB"];
1002 shouldBe('regex64.exec(input1);', 'results');
1003
1004 var regex65 = /abc\x0def\x00pqr\x000xyz\x0000AB/;
1005 var input0 = "abc\x0def\x00pqr\x000xyz\x0000AB";
1006 var results = ["abc\x0def\x00pqr\x000xyz\x0000AB"];
1007 shouldBe('regex65.exec(input0);', 'results');
1008 var input1 = "abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE";
1009 var results = ["abc\x0def\x00pqr\x000xyz\x0000AB"];
1010 shouldBe('regex65.exec(input1);', 'results');
1011
1012 var regex66 = /^[\000-\037]/;
1013 var input0 = "\0A";
1014 var results = ["\x00"];
1015 shouldBe('regex66.exec(input0);', 'results');
1016 var input1 = "\01B";
1017 var results = ["\x01"];
1018 shouldBe('regex66.exec(input1);', 'results');
1019 var input2 = "\037C";
1020 var results = ["\x1f"];
1021 shouldBe('regex66.exec(input2);', 'results');
1022
1023 var regex67 = /\0*/;
1024 var input0 = "\0\0\0\0";
1025 var results = ["\x00\x00\x00\x00"];
1026 shouldBe('regex67.exec(input0);', 'results');
1027
1028 var regex68 = /A\0{2,3}Z/;
1029 var input0 = "The A\0\0Z";
1030 var results = ["A\x00\x00Z"];
1031 shouldBe('regex68.exec(input0);', 'results');
1032 var input1 = "An A\0\0\0Z";
1033 var results = ["A\x00\x00\x00Z"];
1034 shouldBe('regex68.exec(input1);', 'results');
1035 // Failers
1036 var input2 = "A\0Z";
1037 var results = null;
1038 shouldBe('regex68.exec(input2);', 'results');
1039 var input3 = "A\0\x0\0\x0Z";
1040 var results = null;
1041 shouldBe('regex68.exec(input3);', 'results');
1042
1043 var regex69 = /^(cow|)\1(bell)/;
1044 var input0 = "cowcowbell";
1045 var results = ["cowcowbell", "cow", "bell"];
1046 shouldBe('regex69.exec(input0);', 'results');
1047 var input1 = "bell";
1048 var results = ["bell", "", "bell"];
1049 shouldBe('regex69.exec(input1);', 'results');
1050 // Failers
1051 var input2 = "cowbell";
1052 var results = null;
1053 shouldBe('regex69.exec(input2);', 'results');
1054
1055 var regex70 = /^\s/;
1056 var input0 = "\040abc";
1057 var results = [" "];
1058 shouldBe('regex70.exec(input0);', 'results');
1059 var input1 = "\x0cabc";
1060 var results = ["\x0c"];
1061 shouldBe('regex70.exec(input1);', 'results');
1062 var input2 = "\nabc";
1063 var results = ["\x0a"];
1064 shouldBe('regex70.exec(input2);', 'results');
1065 var input3 = "\rabc";
1066 var results = ["\x0d"];
1067 shouldBe('regex70.exec(input3);', 'results');
1068 var input4 = "\tabc";
1069 var results = ["\x09"];
1070 shouldBe('regex70.exec(input4);', 'results');
1071 // Failers
1072 var input5 = "abc";
1073 var results = null;
1074 shouldBe('regex70.exec(input5);', 'results');
1075
1076 var regex71 = /^(a|)\1*b/;
1077 var input0 = "ab";
1078 var results = ["ab", "a"];
1079 shouldBe('regex71.exec(input0);', 'results');
1080 var input1 = "aaaab";
1081 var results = ["aaaab", "a"];
1082 shouldBe('regex71.exec(input1);', 'results');
1083 var input2 = "b";
1084 var results = ["b", ""];
1085 shouldBe('regex71.exec(input2);', 'results');
1086 // Failers
1087 var input3 = "acb";
1088 var results = null;
1089 shouldBe('regex71.exec(input3);', 'results');
1090
1091 var regex72 = /^(a|)\1+b/;
1092 var input0 = "aab";
1093 var results = ["aab", "a"];
1094 shouldBe('regex72.exec(input0);', 'results');
1095 var input1 = "aaaab";
1096 var results = ["aaaab", "a"];
1097 shouldBe('regex72.exec(input1);', 'results');
1098 var input2 = "b";
1099 var results = ["b", ""];
1100 shouldBe('regex72.exec(input2);', 'results');
1101 // Failers
1102 var input3 = "ab";
1103 var results = null;
1104 shouldBe('regex72.exec(input3);', 'results');
1105
1106 var regex73 = /^(a|)\1?b/;
1107 var input0 = "ab";
1108 var results = ["ab", "a"];
1109 shouldBe('regex73.exec(input0);', 'results');
1110 var input1 = "aab";
1111 var results = ["aab", "a"];
1112 shouldBe('regex73.exec(input1);', 'results');
1113 var input2 = "b";
1114 var results = ["b", ""];
1115 shouldBe('regex73.exec(input2);', 'results');
1116 // Failers
1117 var input3 = "acb";
1118 var results = null;
1119 shouldBe('regex73.exec(input3);', 'results');
1120
1121 var regex74 = /^(a|)\1{2}b/;
1122 var input0 = "aaab";
1123 var results = ["aaab", "a"];
1124 shouldBe('regex74.exec(input0);', 'results');
1125 var input1 = "b";
1126 var results = ["b", ""];
1127 shouldBe('regex74.exec(input1);', 'results');
1128 // Failers
1129 var input2 = "ab";
1130 var results = null;
1131 shouldBe('regex74.exec(input2);', 'results');
1132 var input3 = "aab";
1133 var results = null;
1134 shouldBe('regex74.exec(input3);', 'results');
1135 var input4 = "aaaab";
1136 var results = null;
1137 shouldBe('regex74.exec(input4);', 'results');
1138
1139 var regex75 = /^(a|)\1{2,3}b/;
1140 var input0 = "aaab";
1141 var results = ["aaab", "a"];
1142 shouldBe('regex75.exec(input0);', 'results');
1143 var input1 = "aaaab";
1144 var results = ["aaaab", "a"];
1145 shouldBe('regex75.exec(input1);', 'results');
1146 var input2 = "b";
1147 var results = ["b", ""];
1148 shouldBe('regex75.exec(input2);', 'results');
1149 // Failers
1150 var input3 = "ab";
1151 var results = null;
1152 shouldBe('regex75.exec(input3);', 'results');
1153 var input4 = "aab";
1154 var results = null;
1155 shouldBe('regex75.exec(input4);', 'results');
1156 var input5 = "aaaaab";
1157 var results = null;
1158 shouldBe('regex75.exec(input5);', 'results');
1159
1160 var regex76 = /ab{1,3}bc/;
1161 var input0 = "abbbbc";
1162 var results = ["abbbbc"];
1163 shouldBe('regex76.exec(input0);', 'results');
1164 var input1 = "abbbc";
1165 var results = ["abbbc"];
1166 shouldBe('regex76.exec(input1);', 'results');
1167 var input2 = "abbc";
1168 var results = ["abbc"];
1169 shouldBe('regex76.exec(input2);', 'results');
1170 // Failers
1171 var input3 = "abc";
1172 var results = null;
1173 shouldBe('regex76.exec(input3);', 'results');
1174 var input4 = "abbbbbc";
1175 var results = null;
1176 shouldBe('regex76.exec(input4);', 'results');
1177
1178 var regex77 = /([^.]*)\.([^:]*):[T ]+(.*)/;
1179 var input0 = "track1.title:TBlah blah blah";
1180 var results = ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"];
1181 shouldBe('regex77.exec(input0);', 'results');
1182
1183 var regex78 = /([^.]*)\.([^:]*):[T ]+(.*)/i;
1184 var input0 = "track1.title:TBlah blah blah";
1185 var results = ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"];
1186 shouldBe('regex78.exec(input0);', 'results');
1187
1188 var regex79 = /([^.]*)\.([^:]*):[t ]+(.*)/i;
1189 var input0 = "track1.title:TBlah blah blah";
1190 var results = ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"];
1191 shouldBe('regex79.exec(input0);', 'results');
1192
1193 var regex80 = /^[W-c]+$/;
1194 var input0 = "WXY_^abc";
1195 var results = ["WXY_^abc"];
1196 shouldBe('regex80.exec(input0);', 'results');
1197 // Failers
1198 var input1 = "wxy";
1199 var results = null;
1200 shouldBe('regex80.exec(input1);', 'results');
1201
1202 var regex81 = /^[W-c]+$/i;
1203 var input0 = "WXY_^abc";
1204 var results = ["WXY_^abc"];
1205 shouldBe('regex81.exec(input0);', 'results');
1206 var input1 = "wxy_^ABC";
1207 var results = ["wxy_^ABC"];
1208 shouldBe('regex81.exec(input1);', 'results');
1209
1210 var regex82 = /^[\x3f-\x5F]+$/i;
1211 var input0 = "WXY_^abc";
1212 var results = ["WXY_^abc"];
1213 shouldBe('regex82.exec(input0);', 'results');
1214 var input1 = "wxy_^ABC";
1215 var results = ["wxy_^ABC"];
1216 shouldBe('regex82.exec(input1);', 'results');
1217
1218 var regex83 = /^abc$/m;
1219 var input0 = "abc";
1220 var results = ["abc"];
1221 shouldBe('regex83.exec(input0);', 'results');
1222 var input1 = "qqq\nabc";
1223 var results = ["abc"];
1224 shouldBe('regex83.exec(input1);', 'results');
1225 var input2 = "abc\nzzz";
1226 var results = ["abc"];
1227 shouldBe('regex83.exec(input2);', 'results');
1228 var input3 = "qqq\nabc\nzzz";
1229 var results = ["abc"];
1230 shouldBe('regex83.exec(input3);', 'results');
1231
1232 var regex84 = /^abc$/;
1233 var input0 = "abc";
1234 var results = ["abc"];
1235 shouldBe('regex84.exec(input0);', 'results');
1236 var input1 = "abbbbc";
1237 var results = null;
1238 shouldBe('regex84.exec(input1);', 'results');
1239 var input2 = "abcc";
1240 var results = null;
1241 shouldBe('regex84.exec(input2);', 'results');
1242 var input3 = "qqq\nabc";
1243 var results = null;
1244 shouldBe('regex84.exec(input3);', 'results');
1245 var input4 = "abc\nzzz";
1246 var results = null;
1247 shouldBe('regex84.exec(input4);', 'results');
1248 var input5 = "qqq\nabc\nzzz";
1249 var results = null;
1250 shouldBe('regex84.exec(input5);', 'results');
1251
1252 var regex85 = /^abc$/m;
1253 var input0 = "abc";
1254 var results = ["abc"];
1255 shouldBe('regex85.exec(input0);', 'results');
1256 var input1 = "abc\n";
1257 var results = ["abc"];
1258 shouldBe('regex85.exec(input1);', 'results');
1259 var input2 = "qqq\nabc";
1260 var results = ["abc"];
1261 shouldBe('regex85.exec(input2);', 'results');
1262 var input3 = "abc\nzzz";
1263 var results = ["abc"];
1264 shouldBe('regex85.exec(input3);', 'results');
1265 var input4 = "qqq\nabc\nzzz";
1266 var results = ["abc"];
1267 shouldBe('regex85.exec(input4);', 'results');
1268
1269 var regex86 = /^([\w\W])*$/;
1270 var input0 = "abc\ndef";
1271 var results = ["abc\x0adef", "f"];
1272 shouldBe('regex86.exec(input0);', 'results');
1273
1274 var regex87 = /^(.)*$/m;
1275 var input0 = "abc\ndef";
1276 var results = ["abc", "c"];
1277 shouldBe('regex87.exec(input0);', 'results');
1278
1279 var regex88 = /(?:b)|(?::+)/;
1280 var input0 = "b::c";
1281 var results = ["b"];
1282 shouldBe('regex88.exec(input0);', 'results');
1283 var input1 = "c::b";
1284 var results = ["::"];
1285 shouldBe('regex88.exec(input1);', 'results');
1286
1287 var regex89 = /[-az]+/;
1288 var input0 = "az-";
1289 var results = ["az-"];
1290 shouldBe('regex89.exec(input0);', 'results');
1291 // Failers
1292 var input1 = "b";
1293 var results = null;
1294 shouldBe('regex89.exec(input1);', 'results');
1295
1296 var regex90 = /[az-]+/;
1297 var input0 = "za-";
1298 var results = ["za-"];
1299 shouldBe('regex90.exec(input0);', 'results');
1300 // Failers
1301 var input1 = "b";
1302 var results = null;
1303 shouldBe('regex90.exec(input1);', 'results');
1304
1305 var regex91 = /[a\-z]+/;
1306 var input0 = "a-z";
1307 var results = ["a-z"];
1308 shouldBe('regex91.exec(input0);', 'results');
1309 // Failers
1310 var input1 = "b";
1311 var results = null;
1312 shouldBe('regex91.exec(input1);', 'results');
1313
1314 var regex92 = /[a-z]+/;
1315 var input0 = "abcdxyz";
1316 var results = ["abcdxyz"];
1317 shouldBe('regex92.exec(input0);', 'results');
1318
1319 var regex93 = /[\d-]+/;
1320 var input0 = "12-34";
1321 var results = ["12-34"];
1322 shouldBe('regex93.exec(input0);', 'results');
1323 // Failers
1324 var input1 = "aaa";
1325 var results = null;
1326 shouldBe('regex93.exec(input1);', 'results');
1327
1328 var regex94 = /[\d-z]+/;
1329 var input0 = "12-34z";
1330 var results = ["12-34z"];
1331 shouldBe('regex94.exec(input0);', 'results');
1332 // Failers
1333 var input1 = "aaa";
1334 var results = null;
1335 shouldBe('regex94.exec(input1);', 'results');
1336
1337 var regex95 = /\x5c/;
1338 var input0 = "\\";
1339 var results = ["\\"];
1340 shouldBe('regex95.exec(input0);', 'results');
1341
1342 var regex96 = /\x20Z/;
1343 var input0 = "the Zoo";
1344 var results = [" Z"];
1345 shouldBe('regex96.exec(input0);', 'results');
1346 // Failers
1347 var input1 = "Zulu";
1348 var results = null;
1349 shouldBe('regex96.exec(input1);', 'results');
1350
1351 var regex97 = /(abc)\1/i;
1352 var input0 = "abcabc";
1353 var results = ["abcabc", "abc"];
1354 shouldBe('regex97.exec(input0);', 'results');
1355 var input1 = "ABCabc";
1356 var results = ["ABCabc", "ABC"];
1357 shouldBe('regex97.exec(input1);', 'results');
1358 var input2 = "abcABC";
1359 var results = ["abcABC", "abc"];
1360 shouldBe('regex97.exec(input2);', 'results');
1361
1362 var regex98 = /ab{3cd/;
1363 var input0 = "ab{3cd";
1364 var results = ["ab{3cd"];
1365 shouldBe('regex98.exec(input0);', 'results');
1366
1367 var regex99 = /ab{3,cd/;
1368 var input0 = "ab{3,cd";
1369 var results = ["ab{3,cd"];
1370 shouldBe('regex99.exec(input0);', 'results');
1371
1372 var regex100 = /ab{3,4a}cd/;
1373 var input0 = "ab{3,4a}cd";
1374 var results = ["ab{3,4a}cd"];
1375 shouldBe('regex100.exec(input0);', 'results');
1376
1377 var regex101 = /{4,5a}bc/;
1378 var input0 = "{4,5a}bc";
1379 var results = ["{4,5a}bc"];
1380 shouldBe('regex101.exec(input0);', 'results');
1381
1382 var regex102 = /abc$/;
1383 var input0 = "abc";
1384 var results = ["abc"];
1385 shouldBe('regex102.exec(input0);', 'results');
1386 // Failers
1387 var input1 = "abc\n";
1388 var results = null;
1389 shouldBe('regex102.exec(input1);', 'results');
1390 var input2 = "abc\ndef";
1391 var results = null;
1392 shouldBe('regex102.exec(input2);', 'results');
1393
1394 var regex103 = /abc$/m;
1395 var input0 = "abc";
1396 var results = ["abc"];
1397 shouldBe('regex103.exec(input0);', 'results');
1398 var input1 = "abc\n";
1399 var results = ["abc"];
1400 shouldBe('regex103.exec(input1);', 'results');
1401 var input2 = "abc\ndef";
1402 var results = ["abc"];
1403 shouldBe('regex103.exec(input2);', 'results');
1404
1405 var regex104 = /(abc)\123/;
1406 var input0 = "abc\x53";
1407 var results = ["abcS", "abc"];
1408 shouldBe('regex104.exec(input0);', 'results');
1409
1410 var regex105 = /(abc)\223/;
1411 var input0 = "abc\x93";
1412 var results = ["abc\x93", "abc"];
1413 shouldBe('regex105.exec(input0);', 'results');
1414
1415 var regex106 = /(abc)\323/;
1416 var input0 = "abc\xd3";
1417 var results = ["abc\xd3", "abc"];
1418 shouldBe('regex106.exec(input0);', 'results');
1419
1420 var regex107 = /(abc)\100/;
1421 var input0 = "abc\x40";
1422 var results = ["abc@", "abc"];
1423 shouldBe('regex107.exec(input0);', 'results');
1424 var input1 = "abc\100";
1425 var results = ["abc@", "abc"];
1426 shouldBe('regex107.exec(input1);', 'results');
1427
1428 var regex108 = /(abc)\1000/;
1429 var input0 = "abc\x400";
1430 var results = ["abc@0", "abc"];
1431 shouldBe('regex108.exec(input0);', 'results');
1432 var input1 = "abc\x40\x30";
1433 var results = ["abc@0", "abc"];
1434 shouldBe('regex108.exec(input1);', 'results');
1435 var input2 = "abc\1000";
1436 var results = ["abc@0", "abc"];
1437 shouldBe('regex108.exec(input2);', 'results');
1438 var input3 = "abc\100\x30";
1439 var results = ["abc@0", "abc"];
1440 shouldBe('regex108.exec(input3);', 'results');
1441 var input4 = "abc\100\060";
1442 var results = ["abc@0", "abc"];
1443 shouldBe('regex108.exec(input4);', 'results');
1444 var input5 = "abc\100\60";
1445 var results = ["abc@0", "abc"];
1446 shouldBe('regex108.exec(input5);', 'results');
1447
1448 var regex109 = /abc\081/;
1449 var input0 = "abc\081";
1450 var results = ["abc\x0081"];
1451 shouldBe('regex109.exec(input0);', 'results');
1452 var input1 = "abc\0\x38\x31";
1453 var results = ["abc\x0081"];
1454 shouldBe('regex109.exec(input1);', 'results');
1455
1456 var regex110 = /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/;
1457 var input0 = "abcdefghijkllS";
1458 var results = ["abcdefghijkllS", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"];
1459 shouldBe('regex110.exec(input0);', 'results');
1460
1461 var regex111 = /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/;
1462 var input0 = "abcdefghijk\12S";
1463 var results = ["abcdefghijk\x0aS", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"];
1464 shouldBe('regex111.exec(input0);', 'results');
1465
1466 var regex112 = /ab\idef/;
1467 var input0 = "abidef";
1468 var results = ["abidef"];
1469 shouldBe('regex112.exec(input0);', 'results');
1470
1471 var regex113 = /a{0}bc/;
1472 var input0 = "bc";
1473 var results = ["bc"];
1474 shouldBe('regex113.exec(input0);', 'results');
1475
1476 var regex114 = /(?:a|(?:bc)){0,0}?xyz/;
1477 var input0 = "xyz";
1478 var results = ["xyz"];
1479 shouldBe('regex114.exec(input0);', 'results');
1480
1481 var regex115 = /abc[\10]de/;
1482 var input0 = "abc\010de";
1483 var results = ["abc\x08de"];
1484 shouldBe('regex115.exec(input0);', 'results');
1485
1486 var regex116 = /abc[\1]de/;
1487 var input0 = "abc\1de";
1488 var results = ["abc\x01de"];
1489 shouldBe('regex116.exec(input0);', 'results');
1490
1491 var regex117 = /(abc)[\1]de/;
1492 var input0 = "abc\1de";
1493 var results = ["abc\x01de", "abc"];
1494 shouldBe('regex117.exec(input0);', 'results');
1495
1496 var regex118 = /a.b/;
1497 var input0 = "a\nb";
1498 var results = null;
1499 shouldBe('regex118.exec(input0);', 'results');
1500
1501 var regex119 = /^([^a])([^\b])([^c]*)([^d]{3,4})/;
1502 var input0 = "baNOTccccd";
1503 var results = ["baNOTcccc", "b", "a", "NOT", "cccc"];
1504 shouldBe('regex119.exec(input0);', 'results');
1505 var input1 = "baNOTcccd";
1506 var results = ["baNOTccc", "b", "a", "NOT", "ccc"];
1507 shouldBe('regex119.exec(input1);', 'results');
1508 var input2 = "baNOTccd";
1509 var results = ["baNOTcc", "b", "a", "NO", "Tcc"];
1510 shouldBe('regex119.exec(input2);', 'results');
1511 var input3 = "bacccd";
1512 var results = ["baccc", "b", "a", "", "ccc"];
1513 shouldBe('regex119.exec(input3);', 'results');
1514 // Failers
1515 var input4 = "anything";
1516 var results = null;
1517 shouldBe('regex119.exec(input4);', 'results');
1518 var input5 = "b\bc";
1519 var results = null;
1520 shouldBe('regex119.exec(input5);', 'results');
1521 var input6 = "baccd";
1522 var results = null;
1523 shouldBe('regex119.exec(input6);', 'results');
1524
1525 var regex120 = /[^a]/;
1526 var input0 = "Abc";
1527 var results = ["A"];
1528 shouldBe('regex120.exec(input0);', 'results');
1529
1530 var regex121 = /[^a]/i;
1531 var input0 = "Abc";
1532 var results = ["b"];
1533 shouldBe('regex121.exec(input0);', 'results');
1534
1535 var regex122 = /[^a]+/;
1536 var input0 = "AAAaAbc";
1537 var results = ["AAA"];
1538 shouldBe('regex122.exec(input0);', 'results');
1539
1540 var regex123 = /[^a]+/i;
1541 var input0 = "AAAaAbc";
1542 var results = ["bc"];
1543 shouldBe('regex123.exec(input0);', 'results');
1544
1545 var regex124 = /[^a]+/;
1546 var input0 = "bbb\nccc";
1547 var results = ["bbb\x0accc"];
1548 shouldBe('regex124.exec(input0);', 'results');
1549
1550 var regex125 = /[^k]$/;
1551 var input0 = "abc";
1552 var results = ["c"];
1553 shouldBe('regex125.exec(input0);', 'results');
1554 // Failers
1555 var input1 = "abk";
1556 var results = null;
1557 shouldBe('regex125.exec(input1);', 'results');
1558
1559 var regex126 = /[^k]{2,3}$/;
1560 var input0 = "abc";
1561 var results = ["abc"];
1562 shouldBe('regex126.exec(input0);', 'results');
1563 var input1 = "kbc";
1564 var results = ["bc"];
1565 shouldBe('regex126.exec(input1);', 'results');
1566 var input2 = "kabc";
1567 var results = ["abc"];
1568 shouldBe('regex126.exec(input2);', 'results');
1569 // Failers
1570 var input3 = "abk";
1571 var results = null;
1572 shouldBe('regex126.exec(input3);', 'results');
1573 var input4 = "akb";
1574 var results = null;
1575 shouldBe('regex126.exec(input4);', 'results');
1576 var input5 = "akk";
1577 var results = null;
1578 shouldBe('regex126.exec(input5);', 'results');
1579
1580 var regex127 = /^\d{8,}\@.+[^k]$/;
1581 var input0 = "12345678\@a.b.c.d";
1582 var results = ["12345678@a.b.c.d"];
1583 shouldBe('regex127.exec(input0);', 'results');
1584 var input1 = "123456789\@x.y.z";
1585 var results = ["123456789@x.y.z"];
1586 shouldBe('regex127.exec(input1);', 'results');
1587 // Failers
1588 var input2 = "12345678\@x.y.uk";
1589 var results = null;
1590 shouldBe('regex127.exec(input2);', 'results');
1591 var input3 = "1234567\@a.b.c.d";
1592 var results = null;
1593 shouldBe('regex127.exec(input3);', 'results');
1594
1595 var regex128 = /(a)\1{8,}/;
1596 var input0 = "aaaaaaaaa";
1597 var results = ["aaaaaaaaa", "a"];
1598 shouldBe('regex128.exec(input0);', 'results');
1599 var input1 = "aaaaaaaaaa";
1600 var results = ["aaaaaaaaaa", "a"];
1601 shouldBe('regex128.exec(input1);', 'results');
1602 // Failers
1603 var input2 = "aaaaaaa";
1604 var results = null;
1605 shouldBe('regex128.exec(input2);', 'results');
1606
1607 var regex129 = /[^a]/;
1608 var input0 = "aaaabcd";
1609 var results = ["b"];
1610 shouldBe('regex129.exec(input0);', 'results');
1611 var input1 = "aaAabcd";
1612 var results = ["A"];
1613 shouldBe('regex129.exec(input1);', 'results');
1614
1615 var regex130 = /[^a]/i;
1616 var input0 = "aaaabcd";
1617 var results = ["b"];
1618 shouldBe('regex130.exec(input0);', 'results');
1619 var input1 = "aaAabcd";
1620 var results = ["b"];
1621 shouldBe('regex130.exec(input1);', 'results');
1622
1623 var regex131 = /[^az]/;
1624 var input0 = "aaaabcd";
1625 var results = ["b"];
1626 shouldBe('regex131.exec(input0);', 'results');
1627 var input1 = "aaAabcd";
1628 var results = ["A"];
1629 shouldBe('regex131.exec(input1);', 'results');
1630
1631 var regex132 = /[^az]/i;
1632 var input0 = "aaaabcd";
1633 var results = ["b"];
1634 shouldBe('regex132.exec(input0);', 'results');
1635 var input1 = "aaAabcd";
1636 var results = ["b"];
1637 shouldBe('regex132.exec(input1);', 'results');
1638
1639 var regex133 = /\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377/;
1640 var input0 = "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377";
1641 var results = ["\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"];
1642 shouldBe('regex133.exec(input0);', 'results');
1643
1644 var regex134 = /P[^*]TAIRE[^*]{1,6}?LL/;
1645 var input0 = "xxxxxxxxxxxPSTAIREISLLxxxxxxxxx";
1646 var results = ["PSTAIREISLL"];
1647 shouldBe('regex134.exec(input0);', 'results');
1648
1649 var regex135 = /P[^*]TAIRE[^*]{1,}?LL/;
1650 var input0 = "xxxxxxxxxxxPSTAIREISLLxxxxxxxxx";
1651 var results = ["PSTAIREISLL"];
1652 shouldBe('regex135.exec(input0);', 'results');
1653
1654 var regex136 = /(\.\d\d[1-9]?)\d+/;
1655 var input0 = "1.230003938";
1656 var results = [".230003938", ".23"];
1657 shouldBe('regex136.exec(input0);', 'results');
1658 var input1 = "1.875000282";
1659 var results = [".875000282", ".875"];
1660 shouldBe('regex136.exec(input1);', 'results');
1661 var input2 = "1.235";
1662 var results = [".235", ".23"];
1663 shouldBe('regex136.exec(input2);', 'results');
1664
1665 var regex137 = /(\.\d\d((?=0)|\d(?=\d)))/;
1666 var input0 = "1.230003938";
1667 var results = [".23", ".23", ""];
1668 shouldBe('regex137.exec(input0);', 'results');
1669 var input1 = "1.875000282";
1670 var results = [".875", ".875", "5"];
1671 shouldBe('regex137.exec(input1);', 'results');
1672 // Failers
1673 var input2 = "1.235";
1674 var results = null;
1675 shouldBe('regex137.exec(input2);', 'results');
1676
1677 var regex138 = /a(?:)b/;
1678 var input0 = "ab";
1679 var results = ["ab"];
1680 shouldBe('regex138.exec(input0);', 'results');
1681
1682 var regex139 = /\b(foo)\s+(\w+)/i;
1683 var input0 = "Food is on the foo table";
1684 var results = ["foo table", "foo", "table"];
1685 shouldBe('regex139.exec(input0);', 'results');
1686
1687 var regex140 = /foo(.*)bar/;
1688 var input0 = "The food is under the bar in the barn.";
1689 var results = ["food is under the bar in the bar", "d is under the bar in the "];
1690 shouldBe('regex140.exec(input0);', 'results');
1691
1692 var regex141 = /foo(.*?)bar/  ;
1693 var input0 = "The food is under the bar in the barn.";
1694 var results = ["food is under the bar", "d is under the "];
1695 shouldBe('regex141.exec(input0);', 'results');
1696
1697 var regex142 = /(.*)(\d*)/;
1698 var input0 = "I have 2 numbers: 53147";
1699 var results = ["I have 2 numbers: 53147", "I have 2 numbers: 53147", ""];
1700 shouldBe('regex142.exec(input0);', 'results');
1701
1702 var regex143 = /(.*)(\d+)/;
1703 var input0 = "I have 2 numbers: 53147";
1704 var results = ["I have 2 numbers: 53147", "I have 2 numbers: 5314", "7"];
1705 shouldBe('regex143.exec(input0);', 'results');
1706
1707 var regex144 = /(.*?)(\d*)/;
1708 var input0 = "I have 2 numbers: 53147";
1709 var results = ["", "", ""];
1710 shouldBe('regex144.exec(input0);', 'results');
1711
1712 var regex145 = /(.*?)(\d+)/;
1713 var input0 = "I have 2 numbers: 53147";
1714 var results = ["I have 2", "I have ", "2"];
1715 shouldBe('regex145.exec(input0);', 'results');
1716
1717 var regex146 = /(.*)(\d+)$/;
1718 var input0 = "I have 2 numbers: 53147";
1719 var results = ["I have 2 numbers: 53147", "I have 2 numbers: 5314", "7"];
1720 shouldBe('regex146.exec(input0);', 'results');
1721
1722 var regex147 = /(.*?)(\d+)$/;
1723 var input0 = "I have 2 numbers: 53147";
1724 var results = ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"];
1725 shouldBe('regex147.exec(input0);', 'results');
1726
1727 var regex148 = /(.*)\b(\d+)$/;
1728 var input0 = "I have 2 numbers: 53147";
1729 var results = ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"];
1730 shouldBe('regex148.exec(input0);', 'results');
1731
1732 var regex149 = /(.*\D)(\d+)$/;
1733 var input0 = "I have 2 numbers: 53147";
1734 var results = ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"];
1735 shouldBe('regex149.exec(input0);', 'results');
1736
1737 var regex150 = /^\D*(?!123)/;
1738 var input0 = "ABC123";
1739 var results = ["AB"];
1740 shouldBe('regex150.exec(input0);', 'results');
1741
1742 var regex151 = /^(\D*)(?=\d)(?!123)/;
1743 var input0 = "ABC445";
1744 var results = ["ABC", "ABC"];
1745 shouldBe('regex151.exec(input0);', 'results');
1746 // Failers
1747 var input1 = "ABC123";
1748 var results = null;
1749 shouldBe('regex151.exec(input1);', 'results');
1750
1751 var regex152 = /^[W-]46]/;
1752 var input0 = "W46]789";
1753 var results = ["W46]"];
1754 shouldBe('regex152.exec(input0);', 'results');
1755 var input1 = "-46]789";
1756 var results = ["-46]"];
1757 shouldBe('regex152.exec(input1);', 'results');
1758 // Failers
1759 var input2 = "Wall";
1760 var results = null;
1761 shouldBe('regex152.exec(input2);', 'results');
1762 var input3 = "Zebra";
1763 var results = null;
1764 shouldBe('regex152.exec(input3);', 'results');
1765 var input4 = "42";
1766 var results = null;
1767 shouldBe('regex152.exec(input4);', 'results');
1768 var input5 = "[abcd]";
1769 var results = null;
1770 shouldBe('regex152.exec(input5);', 'results');
1771 var input6 = "]abcd[";
1772 var results = null;
1773 shouldBe('regex152.exec(input6);', 'results');
1774
1775 var regex153 = /^[W-\]46]/;
1776 var input0 = "W46]789";
1777 var results = ["W"];
1778 shouldBe('regex153.exec(input0);', 'results');
1779 var input1 = "Wall";
1780 var results = ["W"];
1781 shouldBe('regex153.exec(input1);', 'results');
1782 var input2 = "Zebra";
1783 var results = ["Z"];
1784 shouldBe('regex153.exec(input2);', 'results');
1785 var input3 = "Xylophone";
1786 var results = ["X"];
1787 shouldBe('regex153.exec(input3);', 'results');
1788 var input4 = "42";
1789 var results = ["4"];
1790 shouldBe('regex153.exec(input4);', 'results');
1791 var input5 = "[abcd]";
1792 var results = ["["];
1793 shouldBe('regex153.exec(input5);', 'results');
1794 var input6 = "]abcd[";
1795 var results = ["]"];
1796 shouldBe('regex153.exec(input6);', 'results');
1797 var input7 = "\\backslash";
1798 var results = ["\\"];
1799 shouldBe('regex153.exec(input7);', 'results');
1800 // Failers
1801 var input8 = "-46]789";
1802 var results = null;
1803 shouldBe('regex153.exec(input8);', 'results');
1804 var input9 = "well";
1805 var results = null;
1806 shouldBe('regex153.exec(input9);', 'results');
1807
1808 var regex154 = /\d\d\/\d\d\/\d\d\d\d/;
1809 var input0 = "01/01/2000";
1810 var results = ["01/01/2000"];
1811 shouldBe('regex154.exec(input0);', 'results');
1812
1813 var regex155 = /word (?:[a-zA-Z0-9]+ ){0,10}otherword/;
1814 var input0 = "word cat dog elephant mussel cow horse canary baboon snake shark otherword";
1815 var results = ["word cat dog elephant mussel cow horse canary baboon snake shark otherword"];
1816 shouldBe('regex155.exec(input0);', 'results');
1817 var input1 = "word cat dog elephant mussel cow horse canary baboon snake shark";
1818 var results = null;
1819 shouldBe('regex155.exec(input1);', 'results');
1820
1821 var regex156 = /word (?:[a-zA-Z0-9]+ ){0,300}otherword/;
1822 var input0 = "word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope";
1823 var results = null;
1824 shouldBe('regex156.exec(input0);', 'results');
1825
1826 var regex157 = /^(?:a){0,0}/;
1827 var input0 = "bcd";
1828 var results = [""];
1829 shouldBe('regex157.exec(input0);', 'results');
1830 var input1 = "abc";
1831 var results = [""];
1832 shouldBe('regex157.exec(input1);', 'results');
1833 var input2 = "aab";
1834 var results = [""];
1835 shouldBe('regex157.exec(input2);', 'results');
1836
1837 var regex158 = /^(a){0,1}/;
1838 var input0 = "bcd";
1839 var results = ["", undefined];
1840 shouldBe('regex158.exec(input0);', 'results');
1841 var input1 = "abc";
1842 var results = ["a", "a"];
1843 shouldBe('regex158.exec(input1);', 'results');
1844 var input2 = "aab";
1845 var results = ["a", "a"];
1846 shouldBe('regex158.exec(input2);', 'results');
1847
1848 var regex159 = /^(a){0,2}/;
1849 var input0 = "bcd";
1850 var results = ["", undefined];
1851 shouldBe('regex159.exec(input0);', 'results');
1852 var input1 = "abc";
1853 var results = ["a", "a"];
1854 shouldBe('regex159.exec(input1);', 'results');
1855 var input2 = "aab";
1856 var results = ["aa", "a"];
1857 shouldBe('regex159.exec(input2);', 'results');
1858
1859 var regex160 = /^(a){0,3}/;
1860 var input0 = "bcd";
1861 var results = ["", undefined];
1862 shouldBe('regex160.exec(input0);', 'results');
1863 var input1 = "abc";
1864 var results = ["a", "a"];
1865 shouldBe('regex160.exec(input1);', 'results');
1866 var input2 = "aab";
1867 var results = ["aa", "a"];
1868 shouldBe('regex160.exec(input2);', 'results');
1869 var input3 = "aaa";
1870 var results = ["aaa", "a"];
1871 shouldBe('regex160.exec(input3);', 'results');
1872
1873 var regex161 = /^(a){0,}/;
1874 var input0 = "bcd";
1875 var results = ["", undefined];
1876 shouldBe('regex161.exec(input0);', 'results');
1877 var input1 = "abc";
1878 var results = ["a", "a"];
1879 shouldBe('regex161.exec(input1);', 'results');
1880 var input2 = "aab";
1881 var results = ["aa", "a"];
1882 shouldBe('regex161.exec(input2);', 'results');
1883 var input3 = "aaa";
1884 var results = ["aaa", "a"];
1885 shouldBe('regex161.exec(input3);', 'results');
1886 var input4 = "aaaaaaaa";
1887 var results = ["aaaaaaaa", "a"];
1888 shouldBe('regex161.exec(input4);', 'results');
1889
1890 var regex162 = /^(a){1,1}/;
1891 var input0 = "bcd";
1892 var results = null;
1893 shouldBe('regex162.exec(input0);', 'results');
1894 var input1 = "abc";
1895 var results = ["a", "a"];
1896 shouldBe('regex162.exec(input1);', 'results');
1897 var input2 = "aab";
1898 var results = ["a", "a"];
1899 shouldBe('regex162.exec(input2);', 'results');
1900
1901 var regex163 = /^(a){1,2}/;
1902 var input0 = "bcd";
1903 var results = null;
1904 shouldBe('regex163.exec(input0);', 'results');
1905 var input1 = "abc";
1906 var results = ["a", "a"];
1907 shouldBe('regex163.exec(input1);', 'results');
1908 var input2 = "aab";
1909 var results = ["aa", "a"];
1910 shouldBe('regex163.exec(input2);', 'results');
1911
1912 var regex164 = /^(a){1,3}/;
1913 var input0 = "bcd";
1914 var results = null;
1915 shouldBe('regex164.exec(input0);', 'results');
1916 var input1 = "abc";
1917 var results = ["a", "a"];
1918 shouldBe('regex164.exec(input1);', 'results');
1919 var input2 = "aab";
1920 var results = ["aa", "a"];
1921 shouldBe('regex164.exec(input2);', 'results');
1922 var input3 = "aaa";
1923 var results = ["aaa", "a"];
1924 shouldBe('regex164.exec(input3);', 'results');
1925
1926 var regex165 = /^(a){1,}/;
1927 var input0 = "bcd";
1928 var results = null;
1929 shouldBe('regex165.exec(input0);', 'results');
1930 var input1 = "abc";
1931 var results = ["a", "a"];
1932 shouldBe('regex165.exec(input1);', 'results');
1933 var input2 = "aab";
1934 var results = ["aa", "a"];
1935 shouldBe('regex165.exec(input2);', 'results');
1936 var input3 = "aaa";
1937 var results = ["aaa", "a"];
1938 shouldBe('regex165.exec(input3);', 'results');
1939 var input4 = "aaaaaaaa";
1940 var results = ["aaaaaaaa", "a"];
1941 shouldBe('regex165.exec(input4);', 'results');
1942
1943 var regex166 = /.*\.gif/;
1944 var input0 = "borfle\nbib.gif\nno";
1945 var results = ["bib.gif"];
1946 shouldBe('regex166.exec(input0);', 'results');
1947
1948 var regex167 = /.{0,}\.gif/;
1949 var input0 = "borfle\nbib.gif\nno";
1950 var results = ["bib.gif"];
1951 shouldBe('regex167.exec(input0);', 'results');
1952
1953 var regex168 = /.*\.gif/m;
1954 var input0 = "borfle\nbib.gif\nno";
1955 var results = ["bib.gif"];
1956 shouldBe('regex168.exec(input0);', 'results');
1957
1958 var regex169 = /.*\.gif/;
1959 var input0 = "borfle\nbib.gif\nno";
1960 var results = ["bib.gif"];
1961 shouldBe('regex169.exec(input0);', 'results');
1962
1963 var regex170 = /.*\.gif/m;
1964 var input0 = "borfle\nbib.gif\nno";
1965 var results = ["bib.gif"];
1966 shouldBe('regex170.exec(input0);', 'results');
1967
1968 var regex171 = /.*$/;
1969 var input0 = "borfle\nbib.gif\nno";
1970 var results = ["no"];
1971 shouldBe('regex171.exec(input0);', 'results');
1972
1973 var regex172 = /.*$/m;
1974 var input0 = "borfle\nbib.gif\nno";
1975 var results = ["borfle"];
1976 shouldBe('regex172.exec(input0);', 'results');
1977
1978 var regex173 = /[\w\W]*?$/;
1979 var input0 = "borfle\nbib.gif\nno";
1980 var results = ["borfle\nbib.gif\x0ano"];
1981 shouldBe('regex173.exec(input0);', 'results');
1982
1983 var regex174 = /[\w\W]*?$/m;
1984 var input0 = "borfle\nbib.gif\nno";
1985 var results = ["borfle"];
1986 shouldBe('regex174.exec(input0);', 'results');
1987
1988 var regex175 = /.*$/;
1989 var input0 = "borfle\nbib.gif\nno\n";
1990 var results = [""];
1991 shouldBe('regex175.exec(input0);', 'results');
1992
1993 var regex176 = /.*$/m;
1994 var input0 = "borfle\nbib.gif\nno\n";
1995 var results = ["borfle"];
1996 shouldBe('regex176.exec(input0);', 'results');
1997
1998 var regex177 = /.*$/;
1999 var input0 = "borfle\nbib.gif\nno\n";
2000 var results = [""];
2001 shouldBe('regex177.exec(input0);', 'results');
2002
2003 var regex178 = /.*$/m;
2004 var input0 = "borfle\nbib.gif\nno\n";
2005 var results = ["borfle"];
2006 shouldBe('regex178.exec(input0);', 'results');
2007
2008 var regex179 = /(.*X|^B)/;
2009 var input0 = "abcde\n1234Xyz";
2010 var results = ["1234X", "1234X"];
2011 shouldBe('regex179.exec(input0);', 'results');
2012 var input1 = "BarFoo";
2013 var results = ["B", "B"];
2014 shouldBe('regex179.exec(input1);', 'results');
2015 // Failers
2016 var input2 = "abcde\nBar";
2017 var results = null;
2018 shouldBe('regex179.exec(input2);', 'results');
2019
2020 var regex180 = /(.*X|^B)/m;
2021 var input0 = "abcde\n1234Xyz";
2022 var results = ["1234X", "1234X"];
2023 shouldBe('regex180.exec(input0);', 'results');
2024 var input1 = "BarFoo";
2025 var results = ["B", "B"];
2026 shouldBe('regex180.exec(input1);', 'results');
2027 var input2 = "abcde\nBar";
2028 var results = ["B", "B"];
2029 shouldBe('regex180.exec(input2);', 'results');
2030
2031 var regex181 = /([\w\W]*X|^B)/;
2032 var input0 = "abcde\n1234Xyz";
2033 var results = ["abcde\x0a1234X", "abcde\x0a1234X"];
2034 shouldBe('regex181.exec(input0);', 'results');
2035 var input1 = "BarFoo";
2036 var results = ["B", "B"];
2037 shouldBe('regex181.exec(input1);', 'results');
2038 // Failers
2039 var input2 = "abcde\nBar";
2040 var results = null;
2041 shouldBe('regex181.exec(input2);', 'results');
2042
2043 var regex182 = /([\w\W]*X|^B)/m;
2044 var input0 = "abcde\n1234Xyz";
2045 var results = ["abcde\x0a1234X", "abcde\x0a1234X"];
2046 shouldBe('regex182.exec(input0);', 'results');
2047 var input1 = "BarFoo";
2048 var results = ["B", "B"];
2049 shouldBe('regex182.exec(input1);', 'results');
2050 var input2 = "abcde\nBar";
2051 var results = ["B", "B"];
2052 shouldBe('regex182.exec(input2);', 'results');
2053
2054 var regex183 = /([\w\W]*X|^B)/;
2055 var input0 = "abcde\n1234Xyz";
2056 var results = ["abcde\x0a1234X", "abcde\x0a1234X"];
2057 shouldBe('regex183.exec(input0);', 'results');
2058 var input1 = "BarFoo";
2059 var results = ["B", "B"];
2060 shouldBe('regex183.exec(input1);', 'results');
2061 // Failers
2062 var input2 = "abcde\nBar";
2063 var results = null;
2064 shouldBe('regex183.exec(input2);', 'results');
2065
2066 var regex184 = /(?:.*X|^B)/;
2067 var input0 = "abcde\n1234Xyz";
2068 var results = ["1234X"];
2069 shouldBe('regex184.exec(input0);', 'results');
2070 var input1 = "BarFoo";
2071 var results = ["B"];
2072 shouldBe('regex184.exec(input1);', 'results');
2073 // Failers
2074 var input2 = "abcde\nBar";
2075 var results = null;
2076 shouldBe('regex184.exec(input2);', 'results');
2077
2078 var regex185 = /^.*B/;
2079 // Failers
2080 var input0 = "abc\nB";
2081 var results = null;
2082 shouldBe('regex185.exec(input0);', 'results');
2083
2084 var regex186 = /^[\w\W]*B/;
2085 var input0 = "abc\nB";
2086 var results = ["abc\x0aB"];
2087 shouldBe('regex186.exec(input0);', 'results');
2088
2089 var regex187 = /.*B/;
2090 var input0 = "abc\nB";
2091 var results = ["B"];
2092 shouldBe('regex187.exec(input0);', 'results');
2093
2094 var regex188 = /^.*B/;
2095 // Failers
2096 var input0 = "abc\nB";
2097 var results = null;
2098 shouldBe('regex188.exec(input0);', 'results');
2099
2100 var regex189a = /^B/;
2101 // Failers
2102 var input0 = "abc\nB";
2103 var results = null;
2104 shouldBe('regex189a.exec(input0);', 'results');
2105
2106 var regex189b = /^B/m;
2107 var input0 = "abc\nB";
2108 var results = ["B"];
2109 shouldBe('regex189b.exec(input0);', 'results');
2110
2111 var regex190a = /B$/;
2112 // Failers
2113 var input0 = "B\n";
2114 var results = null;
2115 shouldBe('regex190a.exec(input0);', 'results');
2116
2117 var regex190b = /B$/m;
2118 var input0 = "B\n";
2119 var results = ["B"];
2120 shouldBe('regex190b.exec(input0);', 'results');
2121
2122 var regex191 = /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/;
2123 var input0 = "123456654321";
2124 var results = ["123456654321"];
2125 shouldBe('regex191.exec(input0);', 'results');
2126
2127 var regex192 = /^\d\d\d\d\d\d\d\d\d\d\d\d/;
2128 var input0 = "123456654321";
2129 var results = ["123456654321"];
2130 shouldBe('regex192.exec(input0);', 'results');
2131
2132 var regex193 = /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/;
2133 var input0 = "123456654321";
2134 var results = ["123456654321"];
2135 shouldBe('regex193.exec(input0);', 'results');
2136
2137 var regex194 = /^[abc]{12}/;
2138 var input0 = "abcabcabcabc";
2139 var results = ["abcabcabcabc"];
2140 shouldBe('regex194.exec(input0);', 'results');
2141
2142 var regex195 = /^[a-c]{12}/;
2143 var input0 = "abcabcabcabc";
2144 var results = ["abcabcabcabc"];
2145 shouldBe('regex195.exec(input0);', 'results');
2146
2147 var regex196 = /^(a|b|c){12}/;
2148 var input0 = "abcabcabcabc";
2149 var results = ["abcabcabcabc", "c"];
2150 shouldBe('regex196.exec(input0);', 'results');
2151
2152 var regex197 = /^[abcdefghijklmnopqrstuvwxy0123456789]/;
2153 var input0 = "n";
2154 var results = ["n"];
2155 shouldBe('regex197.exec(input0);', 'results');
2156 // Failers
2157 var input1 = "z";
2158 var results = null;
2159 shouldBe('regex197.exec(input1);', 'results');
2160
2161 var regex198 = /abcde{0,0}/;
2162 var input0 = "abcd";
2163 var results = ["abcd"];
2164 shouldBe('regex198.exec(input0);', 'results');
2165 // Failers
2166 var input1 = "abce";
2167 var results = null;
2168 shouldBe('regex198.exec(input1);', 'results');
2169
2170 var regex199 = /ab[cd]{0,0}e/;
2171 var input0 = "abe";
2172 var results = ["abe"];
2173 shouldBe('regex199.exec(input0);', 'results');
2174 // Failers
2175 var input1 = "abcde";
2176 var results = null;
2177 shouldBe('regex199.exec(input1);', 'results');
2178
2179 var regex200 = /ab(c){0,0}d/;
2180 var input0 = "abd";
2181 var results = ["abd", undefined];
2182 shouldBe('regex200.exec(input0);', 'results');
2183 // Failers
2184 var input1 = "abcd";
2185 var results = null;
2186 shouldBe('regex200.exec(input1);', 'results');
2187
2188 var regex201 = /a(b*)/;
2189 var input0 = "a";
2190 var results = ["a", ""];
2191 shouldBe('regex201.exec(input0);', 'results');
2192 var input1 = "ab";
2193 var results = ["ab", "b"];
2194 shouldBe('regex201.exec(input1);', 'results');
2195 var input2 = "abbbb";
2196 var results = ["abbbb", "bbbb"];
2197 shouldBe('regex201.exec(input2);', 'results');
2198 // Failers
2199 var input3 = "bbbbb";
2200 var results = null;
2201 shouldBe('regex201.exec(input3);', 'results');
2202
2203 var regex202 = /ab\d{0}e/;
2204 var input0 = "abe";
2205 var results = ["abe"];
2206 shouldBe('regex202.exec(input0);', 'results');
2207 // Failers
2208 var input1 = "ab1e";
2209 var results = null;
2210 shouldBe('regex202.exec(input1);', 'results');
2211
2212 var regex203 = /"([^\\"]+|\\.)*"/;
2213 var input0 = "the \"quick\" brown fox";
2214 var results = ["\"quick\"", "quick"];
2215 shouldBe('regex203.exec(input0);', 'results');
2216 var input1 = "\"the \\\"quick\\\" brown fox\"";
2217 var results = ["\"the \\\"quick\\\" brown fox\"", " brown fox"];
2218 shouldBe('regex203.exec(input1);', 'results');
2219
2220 var regex204 = /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/i;
2221 var input0 = "<TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>";
2222 var results = ["<TR BGCOLOR=\'#DBE9E9\'><TD align=left valign=top>43.<a href=\'joblist.cfm?JobID=94 6735&Keyword=\'>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>", " BGCOLOR=\'#DBE9E9\'", " align=left valign=top", "43.", "<a href=\'joblist.cfm?JobID=94 6735&Keyword=\'>Word Processor<BR>(N-1286)", "", "", undefined, " align=left valign=top", "Lega lstaff.com", " align=left valign=top", "CA - Statewide"];
2223 shouldBe('regex204.exec(input0);', 'results');
2224
2225 var regex205 = /a[^a]b/;
2226 var input0 = "acb";
2227 var results = ["acb"];
2228 shouldBe('regex205.exec(input0);', 'results');
2229 var input1 = "a\nb";
2230 var results = ["a\x0ab"];
2231 shouldBe('regex205.exec(input1);', 'results');
2232
2233 var regex206 = /a.b/;
2234 var input0 = "acb";
2235 var results = ["acb"];
2236 shouldBe('regex206.exec(input0);', 'results');
2237 // Failers
2238 var input1 = "a\nb";
2239 var results = null;
2240 shouldBe('regex206.exec(input1);', 'results');
2241
2242 var regex207 = /a[^a]b/;
2243 var input0 = "acb";
2244 var results = ["acb"];
2245 shouldBe('regex207.exec(input0);', 'results');
2246 var input1 = "a\nb";
2247 var results = ["a\x0ab"];
2248 shouldBe('regex207.exec(input1);', 'results');
2249
2250 var regex208 = /a[\w\W]b/;
2251 var input0 = "acb";
2252 var results = ["acb"];
2253 shouldBe('regex208.exec(input0);', 'results');
2254 var input1 = "a\nb";
2255 var results = ["a\x0ab"];
2256 shouldBe('regex208.exec(input1);', 'results');
2257
2258 var regex209 = /^(b+?|a){1,2}?c/;
2259 var input0 = "bac";
2260 var results = ["bac", "a"];
2261 shouldBe('regex209.exec(input0);', 'results');
2262 var input1 = "bbac";
2263 var results = ["bbac", "a"];
2264 shouldBe('regex209.exec(input1);', 'results');
2265 var input2 = "bbbac";
2266 var results = ["bbbac", "a"];
2267 shouldBe('regex209.exec(input2);', 'results');
2268 var input3 = "bbbbac";
2269 var results = ["bbbbac", "a"];
2270 shouldBe('regex209.exec(input3);', 'results');
2271 var input4 = "bbbbbac";
2272 var results = ["bbbbbac", "a"];
2273 shouldBe('regex209.exec(input4);', 'results');
2274
2275 var regex210 = /^(b+|a){1,2}?c/;
2276 var input0 = "bac";
2277 var results = ["bac", "a"];
2278 shouldBe('regex210.exec(input0);', 'results');
2279 var input1 = "bbac";
2280 var results = ["bbac", "a"];
2281 shouldBe('regex210.exec(input1);', 'results');
2282 var input2 = "bbbac";
2283 var results = ["bbbac", "a"];
2284 shouldBe('regex210.exec(input2);', 'results');
2285 var input3 = "bbbbac";
2286 var results = ["bbbbac", "a"];
2287 shouldBe('regex210.exec(input3);', 'results');
2288 var input4 = "bbbbbac";
2289 var results = ["bbbbbac", "a"];
2290 shouldBe('regex210.exec(input4);', 'results');
2291
2292 var regex211 = /(?!^)x/m;
2293 var input0 = "a\bx\n";
2294 var results = ["x"];
2295 shouldBe('regex211.exec(input0);', 'results');
2296 // Failers
2297 var input1 = "x\nb\n";
2298 var results = null;
2299 shouldBe('regex211.exec(input1);', 'results');
2300
2301 var regex212 = /\0{ab}/;
2302 var input0 = "\0{ab}";
2303 var results = ["\x00{ab}"];
2304 shouldBe('regex212.exec(input0);', 'results');
2305
2306 var regex213 = /(A|B)*?CD/;
2307 var input0 = "CD";
2308 var results = ["CD", undefined];
2309 shouldBe('regex213.exec(input0);', 'results');
2310
2311 var regex214 = /(A|B)*CD/;
2312 var input0 = "CD";
2313 var results = ["CD", undefined];
2314 shouldBe('regex214.exec(input0);', 'results');
2315
2316 var regex215 = /^((AB)+?)\2$/;
2317 var input0 = "ABABAB";
2318 var results = ["ABABAB", "ABAB", "AB"];
2319 shouldBe('regex215.exec(input0);', 'results');
2320
2321 var regex216 = /(AB)*\1/;
2322 var input0 = "ABABAB";
2323 var results = ["ABABAB", "AB"];
2324 shouldBe('regex216.exec(input0);', 'results');
2325
2326 var regex220 = /^abc$/m;
2327 var input0 = "abc";
2328 var results = ["abc"];
2329 shouldBe('regex220.exec(input0);', 'results');
2330 var input1 = "abc\n";
2331 var results = ["abc"];
2332 shouldBe('regex220.exec(input1);', 'results');
2333 var input2 = "qqq\nabc";
2334 var results = ["abc"];
2335 shouldBe('regex220.exec(input2);', 'results');
2336 var input3 = "abc\nzzz";
2337 var results = ["abc"];
2338 shouldBe('regex220.exec(input3);', 'results');
2339 var input4 = "qqq\nabc\nzzz";
2340 var results = ["abc"];
2341 shouldBe('regex220.exec(input4);', 'results');
2342
2343 var regex225 = /(\d+)(\w)/;
2344 var input0 = "12345a";
2345 var results = ["12345a", "12345", "a"];
2346 shouldBe('regex225.exec(input0);', 'results');
2347 var input1 = "12345+";
2348 var results = ["12345", "1234", "5"];
2349 shouldBe('regex225.exec(input1);', 'results');
2350
2351 var regex234 = /ab/;
2352 var input0 = "ab";
2353 var results = ["ab"];
2354 shouldBe('regex234.exec(input0);', 'results');
2355 // Failers
2356 var input1 = "Ab";
2357 var results = null;
2358 shouldBe('regex234.exec(input1);', 'results');
2359 var input2 = "aB";
2360 var results = null;
2361 shouldBe('regex234.exec(input2);', 'results');
2362 var input3 = "AB";
2363 var results = null;
2364 shouldBe('regex234.exec(input3);', 'results');
2365
2366 var regex235 = /(a bc)d e/;
2367 var input0 = "a bcd e";
2368 var results = ["a bcd e", "a bc"];
2369 shouldBe('regex235.exec(input0);', 'results');
2370 // Failers
2371 var input1 = "a b cd e";
2372 var results = null;
2373 shouldBe('regex235.exec(input1);', 'results');
2374 var input2 = "abcd e";
2375 var results = null;
2376 shouldBe('regex235.exec(input2);', 'results');
2377 var input3 = "a bcde";
2378 var results = null;
2379 shouldBe('regex235.exec(input3);', 'results');
2380
2381 var regex236 = /(a bcde f)/;
2382 var input0 = "a bcde f";
2383 var results = ["a bcde f", "a bcde f"];
2384 shouldBe('regex236.exec(input0);', 'results');
2385 // Failers
2386 var input1 = "abcdef";
2387 var results = null;
2388 shouldBe('regex236.exec(input1);', 'results');
2389
2390 var regex237 = /(a[bB])c/;
2391 var input0 = "abc";
2392 var results = ["abc", "ab"];
2393 shouldBe('regex237.exec(input0);', 'results');
2394 var input1 = "aBc";
2395 var results = ["aBc", "aB"];
2396 shouldBe('regex237.exec(input1);', 'results');
2397 // Failers
2398 var input2 = "abC";
2399 var results = null;
2400 shouldBe('regex237.exec(input2);', 'results');
2401 var input3 = "aBC";
2402 var results = null;
2403 shouldBe('regex237.exec(input3);', 'results');
2404 var input4 = "Abc";
2405 var results = null;
2406 shouldBe('regex237.exec(input4);', 'results');
2407 var input5 = "ABc";
2408 var results = null;
2409 shouldBe('regex237.exec(input5);', 'results');
2410 var input6 = "ABC";
2411 var results = null;
2412 shouldBe('regex237.exec(input6);', 'results');
2413 var input7 = "AbC";
2414 var results = null;
2415 shouldBe('regex237.exec(input7);', 'results');
2416
2417 var regex238 = /a[bB]c/;
2418 var input0 = "abc";
2419 var results = ["abc"];
2420 shouldBe('regex238.exec(input0);', 'results');
2421 var input1 = "aBc";
2422 var results = ["aBc"];
2423 shouldBe('regex238.exec(input1);', 'results');
2424 // Failers
2425 var input2 = "ABC";
2426 var results = null;
2427 shouldBe('regex238.exec(input2);', 'results');
2428 var input3 = "abC";
2429 var results = null;
2430 shouldBe('regex238.exec(input3);', 'results');
2431 var input4 = "aBC";
2432 var results = null;
2433 shouldBe('regex238.exec(input4);', 'results');
2434
2435 var regex239 = /a[bB]*c/;
2436 var input0 = "aBc";
2437 var results = ["aBc"];
2438 shouldBe('regex239.exec(input0);', 'results');
2439 var input1 = "aBBc";
2440 var results = ["aBBc"];
2441 shouldBe('regex239.exec(input1);', 'results');
2442 // Failers
2443 var input2 = "aBC";
2444 var results = null;
2445 shouldBe('regex239.exec(input2);', 'results');
2446 var input3 = "aBBC";
2447 var results = null;
2448 shouldBe('regex239.exec(input3);', 'results');
2449
2450 var regex240 = /a(?=b[cC])\w\wd/;
2451 var input0 = "abcd";
2452 var results = ["abcd"];
2453 shouldBe('regex240.exec(input0);', 'results');
2454 var input1 = "abCd";
2455 var results = ["abCd"];
2456 shouldBe('regex240.exec(input1);', 'results');
2457 // Failers
2458 var input2 = "aBCd";
2459 var results = null;
2460 shouldBe('regex240.exec(input2);', 'results');
2461 var input3 = "abcD";
2462 var results = null;
2463 shouldBe('regex240.exec(input3);', 'results');
2464
2465 var regex241 = /(?:more[\w\W]*than).*million/i;
2466 var input0 = "more than million";
2467 var results = ["more than million"];
2468 shouldBe('regex241.exec(input0);', 'results');
2469 var input1 = "more than MILLION";
2470 var results = ["more than MILLION"];
2471 shouldBe('regex241.exec(input1);', 'results');
2472 var input2 = "more \n than Million";
2473 var results = ["more \x0a than Million"];
2474 shouldBe('regex241.exec(input2);', 'results');
2475 var input3 = "MORE THAN MILLION";
2476 var results = ["MORE THAN MILLION"];
2477 // Failers
2478 shouldBe('regex241.exec(input3);', 'results');
2479 var input4 = "more \n than \n million";
2480 var results = null;
2481 shouldBe('regex241.exec(input4);', 'results');
2482
2483 var regex242 = /(?:more[\w\W]*than).*million/i;
2484 var input0 = "more than million";
2485 var results = ["more than million"];
2486 shouldBe('regex242.exec(input0);', 'results');
2487 var input1 = "more than MILLION";
2488 var results = ["more than MILLION"];
2489 shouldBe('regex242.exec(input1);', 'results');
2490 var input2 = "more \n than Million";
2491 var results = ["more \x0a than Million"];
2492 shouldBe('regex242.exec(input2);', 'results');
2493 var input3 = "MORE THAN MILLION";
2494 var results = ["MORE THAN MILLION"];
2495 // Failers
2496 shouldBe('regex242.exec(input3);', 'results');
2497 var input4 = "more \n than \n million";
2498 var results = null;
2499 shouldBe('regex242.exec(input4);', 'results');
2500
2501 var regex243 = /(?:ab+)+c/i ;
2502 var input0 = "abc";
2503 var results = ["abc"];
2504 shouldBe('regex243.exec(input0);', 'results');
2505 var input1 = "aBbc";
2506 var results = ["aBbc"];
2507 shouldBe('regex243.exec(input1);', 'results');
2508 var input2 = "aBBc";
2509 var results = ["aBBc"];
2510 shouldBe('regex243.exec(input2);', 'results');
2511 var input3 = "Abc";
2512 var results = ["Abc"];
2513 shouldBe('regex243.exec(input3);', 'results');
2514 var input4 = "abbC";
2515 var results = ["abbC"];
2516 shouldBe('regex243.exec(input4);', 'results');
2517 // Failers
2518 var input5 = "abAb";
2519 var results = null;
2520 shouldBe('regex243.exec(input5);', 'results');
2521
2522 var regex244 = /(?=a[bB])\w\wc/;
2523 var input0 = "abc";
2524 var results = ["abc"];
2525 shouldBe('regex244.exec(input0);', 'results');
2526 var input1 = "aBc";
2527 var results = ["aBc"];
2528 shouldBe('regex244.exec(input1);', 'results');
2529 // Failers
2530 var input2 = "Ab";
2531 var results = null;
2532 shouldBe('regex244.exec(input2);', 'results');
2533 var input3 = "abC";
2534 var results = null;
2535 shouldBe('regex244.exec(input3);', 'results');
2536 var input4 = "aBC";
2537 var results = null;
2538 shouldBe('regex244.exec(input4);', 'results');
2539
2540 var regex246 = /(?:(a)|b)(?:A|B)/;
2541 var input0 = "aA";
2542 var results = ["aA", "a"];
2543 shouldBe('regex246.exec(input0);', 'results');
2544 var input1 = "bB";
2545 var results = ["bB", undefined];
2546 shouldBe('regex246.exec(input1);', 'results');
2547 var input2 = "aB";
2548 var results = ["aB", "a"];
2549 shouldBe('regex246.exec(input2);', 'results');
2550 var input3 = "bA";
2551 var results = ["bA", undefined];
2552 shouldBe('regex246.exec(input3);', 'results');
2553
2554 var regex247 = /^(a)?(?:a|b)+$/;
2555 var input0 = "aa";
2556 var results = ["aa", "a"];
2557 shouldBe('regex247.exec(input0);', 'results');
2558 var input1 = "b";
2559 var results = ["b", undefined];
2560 shouldBe('regex247.exec(input1);', 'results');
2561 var input2 = "bb";
2562 var results = ["bb", undefined];
2563 shouldBe('regex247.exec(input2);', 'results');
2564 var input3 = "ab";
2565 var results = ["ab", "a"];
2566 shouldBe('regex247.exec(input3);', 'results');
2567
2568 var regex248 = /^(?:(?=abc)\w{3}:|\d\d)$/;
2569 var input0 = "abc:";
2570 var results = ["abc:"];
2571 shouldBe('regex248.exec(input0);', 'results');
2572 var input1 = "12";
2573 var results = ["12"];
2574 shouldBe('regex248.exec(input1);', 'results');
2575 // Failers
2576 var input2 = "123";
2577 var results = null;
2578 shouldBe('regex248.exec(input2);', 'results');
2579 var input3 = "xyz";
2580 var results = null;
2581 shouldBe('regex248.exec(input3);', 'results');
2582
2583 var regex249 = /^(?:(?!abc)\d\d|\w{3}:)$/;
2584 var input0 = "abc:";
2585 var results = ["abc:"];
2586 shouldBe('regex249.exec(input0);', 'results');
2587 var input1 = "12";
2588 var results = ["12"];
2589 shouldBe('regex249.exec(input1);', 'results');
2590 // Failers
2591 var input2 = "123";
2592 var results = null;
2593 shouldBe('regex249.exec(input2);', 'results');
2594 var input3 = "xyz";
2595 var results = null;
2596 shouldBe('regex249.exec(input3);', 'results');
2597
2598 var regex252 = /(?=\()(\()[^()]+\)|[^()]+/;
2599 var input0 = "abcd";
2600 var results = ["abcd", undefined];
2601 shouldBe('regex252.exec(input0);', 'results');
2602 var input1 = "(abcd)";
2603 var results = ["(abcd)", "("];
2604 shouldBe('regex252.exec(input1);', 'results');
2605 var input2 = "the quick (abcd) fox";
2606 var results = ["the quick ", undefined];
2607 shouldBe('regex252.exec(input2);', 'results');
2608 var input3 = "(abcd";
2609 var results = ["abcd", undefined];
2610 shouldBe('regex252.exec(input3);', 'results');
2611
2612 var regex253 = /^(?:a|(1)(2))+$/;
2613 var input0 = "12";
2614 var results = ["12", "1", "2"];
2615 shouldBe('regex253.exec(input0);', 'results');
2616 var input1 = "12a";
2617 var results = ["12a", undefined, undefined];
2618 shouldBe('regex253.exec(input1);', 'results');
2619 var input2 = "12aa";
2620 var results = ["12aa", undefined, undefined];
2621 shouldBe('regex253.exec(input2);', 'results');
2622 // Failers
2623 var input3 = "1234";
2624 var results = null;
2625 shouldBe('regex253.exec(input3);', 'results');
2626
2627 var regex254 = /(blah)\s+\1/i;
2628 var input0 = "blah blah";
2629 var results = ["blah blah", "blah"];
2630 shouldBe('regex254.exec(input0);', 'results');
2631 var input1 = "BLAH BLAH";
2632 var results = ["BLAH BLAH", "BLAH"];
2633 shouldBe('regex254.exec(input1);', 'results');
2634 var input2 = "Blah Blah";
2635 var results = ["Blah Blah", "Blah"];
2636 shouldBe('regex254.exec(input2);', 'results');
2637 var input3 = "blaH blaH";
2638 var results = ["blaH blaH", "blaH"];
2639 shouldBe('regex254.exec(input3);', 'results');
2640 var input4 = "blah BLAH";
2641 var results = ["blah BLAH", "blah"];
2642 shouldBe('regex254.exec(input4);', 'results');
2643 var input5 = "Blah blah";
2644 var results = ["Blah blah", "Blah"];
2645 shouldBe('regex254.exec(input5);', 'results');
2646 var input6 = "blaH blah";
2647 var results = ["blaH blah", "blaH"];
2648 shouldBe('regex254.exec(input6);', 'results');
2649
2650 var regex255 = /(blah)\s+(?:\1)/i;
2651 var input0 = "blah blah";
2652 var results = ["blah blah", "blah"];
2653 shouldBe('regex255.exec(input0);', 'results');
2654 var input1 = "BLAH BLAH";
2655 var results = ["BLAH BLAH", "BLAH"];
2656 shouldBe('regex255.exec(input1);', 'results');
2657 var input2 = "Blah Blah";
2658 var results = ["Blah Blah", "Blah"];
2659 shouldBe('regex255.exec(input2);', 'results');
2660 var input3 = "blaH blaH";
2661 var results = ["blaH blaH", "blaH"];
2662 shouldBe('regex255.exec(input3);', 'results');
2663 var input4 = "blah BLAH";
2664 var results = ["blah BLAH", "blah"];
2665 shouldBe('regex255.exec(input4);', 'results');
2666 var input5 = "Blah blah";
2667 var results = ["Blah blah", "Blah"];
2668 shouldBe('regex255.exec(input5);', 'results');
2669 var input6 = "blaH blah";
2670 var results = ["blaH blah", "blaH"];
2671 shouldBe('regex255.exec(input6);', 'results');
2672
2673 var regex257 = /(abc|)+/;
2674 var input0 = "abc";
2675 var results = ["abc", "abc"];
2676 shouldBe('regex257.exec(input0);', 'results');
2677 var input1 = "abcabc";
2678 var results = ["abcabc", "abc"];
2679 shouldBe('regex257.exec(input1);', 'results');
2680 var input2 = "abcabcabc";
2681 var results = ["abcabcabc", "abc"];
2682 shouldBe('regex257.exec(input2);', 'results');
2683 var input3 = "xyz";
2684 var results = ["", ""];
2685 shouldBe('regex257.exec(input3);', 'results');
2686
2687 var regex258 = /([a]*)*/;
2688 var input0 = "a";
2689 var results = ["a", "a"];
2690 shouldBe('regex258.exec(input0);', 'results');
2691 var input1 = "aaaaa";
2692 var results = ["aaaaa", "aaaaa"];
2693 shouldBe('regex258.exec(input1);', 'results');
2694
2695 var regex259 = /([ab]*)*/;
2696 var input0 = "a";
2697 var results = ["a", "a"];
2698 shouldBe('regex259.exec(input0);', 'results');
2699 var input1 = "b";
2700 var results = ["b", "b"];
2701 shouldBe('regex259.exec(input1);', 'results');
2702 var input2 = "ababab";
2703 var results = ["ababab", "ababab"];
2704 shouldBe('regex259.exec(input2);', 'results');
2705 var input3 = "aaaabcde";
2706 var results = ["aaaab", "aaaab"];
2707 shouldBe('regex259.exec(input3);', 'results');
2708 var input4 = "bbbb";
2709 var results = ["bbbb", "bbbb"];
2710 shouldBe('regex259.exec(input4);', 'results');
2711
2712 var regex260 = /([^a]*)*/;
2713 var input0 = "b";
2714 var results = ["b", "b"];
2715 shouldBe('regex260.exec(input0);', 'results');
2716 var input1 = "bbbb";
2717 var results = ["bbbb", "bbbb"];
2718 shouldBe('regex260.exec(input1);', 'results');
2719 var input2 = "aaa";
2720 var results = ["", undefined];
2721 shouldBe('regex260.exec(input2);', 'results');
2722
2723 var regex261 = /([^ab]*)*/;
2724 var input0 = "cccc";
2725 var results = ["cccc", "cccc"];
2726 shouldBe('regex261.exec(input0);', 'results');
2727 var input1 = "abab";
2728 var results = ["", undefined];
2729 shouldBe('regex261.exec(input1);', 'results');
2730
2731 var regex262 = /([a]*?)*/;
2732 var input0 = "a";
2733 var results = ["a", "a"];
2734 shouldBe('regex262.exec(input0);', 'results');
2735 var input1 = "aaaa";
2736 var results = ["aaaa", "a"];
2737 shouldBe('regex262.exec(input1);', 'results');
2738
2739 var regex263 = /([ab]*?)*/;
2740 var input0 = "a";
2741 var results = ["a", "a"];
2742 shouldBe('regex263.exec(input0);', 'results');
2743 var input1 = "b";
2744 var results = ["b", "b"];
2745 shouldBe('regex263.exec(input1);', 'results');
2746 var input2 = "abab";
2747 var results = ["abab", "b"];
2748 shouldBe('regex263.exec(input2);', 'results');
2749 var input3 = "baba";
2750 var results = ["baba", "a"];
2751 shouldBe('regex263.exec(input3);', 'results');
2752
2753 var regex264 = /([^a]*?)*/;
2754 var input0 = "b";
2755 var results = ["b", "b"];
2756 shouldBe('regex264.exec(input0);', 'results');
2757 var input1 = "bbbb";
2758 var results = ["bbbb", "b"];
2759 shouldBe('regex264.exec(input1);', 'results');
2760 var input2 = "aaa";
2761 var results = ["", undefined];
2762 shouldBe('regex264.exec(input2);', 'results');
2763
2764 var regex265 = /([^ab]*?)*/;
2765 var input0 = "c";
2766 var results = ["c", "c"];
2767 shouldBe('regex265.exec(input0);', 'results');
2768 var input1 = "cccc";
2769 var results = ["cccc", "c"];
2770 shouldBe('regex265.exec(input1);', 'results');
2771 var input2 = "baba";
2772 var results = ["", undefined];
2773 shouldBe('regex265.exec(input2);', 'results');
2774
2775 var regex269 = /(?=[^a-z]+[a-z])\d{2}-[a-z]{3}-\d{2}|(?![^a-z]+[a-z])\d{2}-\d{2}-\d{2}/;
2776 var input0 = "12-sep-98";
2777 var results = ["12-sep-98"];
2778 shouldBe('regex269.exec(input0);', 'results');
2779 var input1 = "12-09-98";
2780 var results = ["12-09-98"];
2781 shouldBe('regex269.exec(input1);', 'results');
2782 var input2 = "sep-12-98";
2783 var results = null;
2784 shouldBe('regex269.exec(input2);', 'results');
2785
2786 var regex271 = /(?:saturday|sunday)/i;
2787 var input0 = "saturday";
2788 var results = ["saturday"];
2789 shouldBe('regex271.exec(input0);', 'results');
2790 var input1 = "sunday";
2791 var results = ["sunday"];
2792 shouldBe('regex271.exec(input1);', 'results');
2793 var input2 = "Saturday";
2794 var results = ["Saturday"];
2795 shouldBe('regex271.exec(input2);', 'results');
2796 var input3 = "Sunday";
2797 var results = ["Sunday"];
2798 shouldBe('regex271.exec(input3);', 'results');
2799 var input4 = "SATURDAY";
2800 var results = ["SATURDAY"];
2801 shouldBe('regex271.exec(input4);', 'results');
2802 var input5 = "SUNDAY";
2803 var results = ["SUNDAY"];
2804 shouldBe('regex271.exec(input5);', 'results');
2805 var input6 = "SunDay";
2806 var results = ["SunDay"];
2807 shouldBe('regex271.exec(input6);', 'results');
2808
2809 var regex272 = /([aA][bB][cC]|[bB][bB])x/;
2810 var input0 = "abcx";
2811 var results = ["abcx", "abc"];
2812 shouldBe('regex272.exec(input0);', 'results');
2813 var input1 = "aBCx";
2814 var results = ["aBCx", "aBC"];
2815 shouldBe('regex272.exec(input1);', 'results');
2816 var input2 = "bbx";
2817 var results = ["bbx", "bb"];
2818 shouldBe('regex272.exec(input2);', 'results');
2819 var input3 = "BBx";
2820 var results = ["BBx", "BB"];
2821 shouldBe('regex272.exec(input3);', 'results');
2822 // Failers
2823 var input4 = "abcX";
2824 var results = null;
2825 shouldBe('regex272.exec(input4);', 'results');
2826 var input5 = "aBCX";
2827 var results = null;
2828 shouldBe('regex272.exec(input5);', 'results');
2829 var input6 = "bbX";
2830 var results = null;
2831 shouldBe('regex272.exec(input6);', 'results');
2832 var input7 = "BBX";
2833 var results = null;
2834 shouldBe('regex272.exec(input7);', 'results');
2835
2836 var regex273 = /^([ab][cd]|[ef])/i;
2837 var input0 = "ac";
2838 var results = ["ac", "ac"];
2839 shouldBe('regex273.exec(input0);', 'results');
2840 var input1 = "aC";
2841 var results = ["aC", "aC"];
2842 shouldBe('regex273.exec(input1);', 'results');
2843 var input2 = "bD";
2844 var results = ["bD", "bD"];
2845 shouldBe('regex273.exec(input2);', 'results');
2846 var input3 = "elephant";
2847 var results = ["e", "e"];
2848 shouldBe('regex273.exec(input3);', 'results');
2849 var input4 = "Europe";
2850 var results = ["E", "E"];
2851 shouldBe('regex273.exec(input4);', 'results');
2852 var input5 = "frog";
2853 var results = ["f", "f"];
2854 shouldBe('regex273.exec(input5);', 'results');
2855 var input6 = "France";
2856 var results = ["F", "F"];
2857 shouldBe('regex273.exec(input6);', 'results');
2858 // Failers
2859 var input7 = "Africa";
2860 var results = null;
2861 shouldBe('regex273.exec(input7);', 'results');
2862
2863 var regex274 = /^(ab|a[b-cB-C]d|x[yY]|[zZ])/;
2864 var input0 = "ab";
2865 var results = ["ab", "ab"];
2866 shouldBe('regex274.exec(input0);', 'results');
2867 var input1 = "aBd";
2868 var results = ["aBd", "aBd"];
2869 shouldBe('regex274.exec(input1);', 'results');
2870 var input2 = "xy";
2871 var results = ["xy", "xy"];
2872 shouldBe('regex274.exec(input2);', 'results');
2873 var input3 = "xY";
2874 var results = ["xY", "xY"];
2875 shouldBe('regex274.exec(input3);', 'results');
2876 var input4 = "zebra";
2877 var results = ["z", "z"];
2878 shouldBe('regex274.exec(input4);', 'results');
2879 var input5 = "Zambesi";
2880 var results = ["Z", "Z"];
2881 shouldBe('regex274.exec(input5);', 'results');
2882 // Failers
2883 var input6 = "aCD";
2884 var results = null;
2885 shouldBe('regex274.exec(input6);', 'results');
2886 var input7 = "XY";
2887 var results = null;
2888 shouldBe('regex274.exec(input7);', 'results');
2889
2890 var regex277 = /^(a\1?){4}$/;
2891 var input0 = "a";
2892 var results = null;
2893 shouldBe('regex277.exec(input0);', 'results');
2894 var input1 = "aa";
2895 var results = null;
2896 shouldBe('regex277.exec(input1);', 'results');
2897 var input2 = "aaa";
2898 var results = null;
2899 shouldBe('regex277.exec(input2);', 'results');
2900 var input3 = "aaaa";
2901 var results = ["aaaa", "a"];
2902 shouldBe('regex277.exec(input3);', 'results');
2903 var input4 = "aaaaa";
2904 var results = null;
2905 shouldBe('regex277.exec(input4);', 'results');
2906 var input5 = "aaaaaaa";
2907 var results = null;
2908 shouldBe('regex277.exec(input5);', 'results');
2909 var input6 = "aaaaaaaa";
2910 var results = null;
2911 shouldBe('regex277.exec(input6);', 'results');
2912 var input7 = "aaaaaaaaa";
2913 var results = null;
2914 shouldBe('regex277.exec(input7);', 'results');
2915 var input8 = "aaaaaaaaaa";
2916 var results = null;
2917 shouldBe('regex277.exec(input8);', 'results');
2918 var input9 = "aaaaaaaaaaa";
2919 var results = null;
2920 shouldBe('regex277.exec(input9);', 'results');
2921 var input10 = "aaaaaaaaaaaa";
2922 var results = null;
2923 shouldBe('regex277.exec(input10);', 'results');
2924 var input11 = "aaaaaaaaaaaaa";
2925 var results = null;
2926 shouldBe('regex277.exec(input11);', 'results');
2927 var input12 = "aaaaaaaaaaaaaa";
2928 var results = null;
2929 shouldBe('regex277.exec(input12);', 'results');
2930 var input13 = "aaaaaaaaaaaaaaa";
2931 var results = null;
2932 shouldBe('regex277.exec(input13);', 'results');
2933 var input14 = "aaaaaaaaaaaaaaaa";
2934 var results = null;
2935 shouldBe('regex277.exec(input14);', 'results');
2936
2937 var regex278 = /^(a\1?)(a\1?)(a\2?)(a\3?)$/;
2938 var input0 = "a";
2939 var results = null;
2940 shouldBe('regex278.exec(input0);', 'results');
2941 var input1 = "aa";
2942 var results = null;
2943 shouldBe('regex278.exec(input1);', 'results');
2944 var input2 = "aaa";
2945 var results = null;
2946 shouldBe('regex278.exec(input2);', 'results');
2947 var input3 = "aaaa";
2948 var results = ["aaaa", "a", "a", "a", "a"];
2949 shouldBe('regex278.exec(input3);', 'results');
2950 var input4 = "aaaaa";
2951 var results = ["aaaaa", "a", "aa", "a", "a"];
2952 shouldBe('regex278.exec(input4);', 'results');
2953 var input5 = "aaaaaa";
2954 var results = ["aaaaaa", "a", "aa", "a", "aa"];
2955 shouldBe('regex278.exec(input5);', 'results');
2956 var input6 = "aaaaaaa";
2957 var results = ["aaaaaaa", "a", "aa", "aaa", "a"];
2958 shouldBe('regex278.exec(input6);', 'results');
2959 var input7 = "aaaaaaaa";
2960 var results = null;
2961 shouldBe('regex278.exec(input7);', 'results');
2962 var input8 = "aaaaaaaaa";
2963 var results = null;
2964 shouldBe('regex278.exec(input8);', 'results');
2965 var input9 = "aaaaaaaaaa";
2966 var results = ["aaaaaaaaaa", "a", "aa", "aaa", "aaaa"];
2967 shouldBe('regex278.exec(input9);', 'results');
2968 var input10 = "aaaaaaaaaaa";
2969 var results = null;
2970 shouldBe('regex278.exec(input10);', 'results');
2971 var input11 = "aaaaaaaaaaaa";
2972 var results = null;
2973 shouldBe('regex278.exec(input11);', 'results');
2974 var input12 = "aaaaaaaaaaaaa";
2975 var results = null;
2976 shouldBe('regex278.exec(input12);', 'results');
2977 var input13 = "aaaaaaaaaaaaaa";
2978 var results = null;
2979 shouldBe('regex278.exec(input13);', 'results');
2980 var input14 = "aaaaaaaaaaaaaaa";
2981 var results = null;
2982 shouldBe('regex278.exec(input14);', 'results');
2983 var input15 = "aaaaaaaaaaaaaaaa";
2984 var results = null;
2985 shouldBe('regex278.exec(input15);', 'results');
2986
2987 var regex279 = /abc/;
2988 var input0 = "abc";
2989 var results = ["abc"];
2990 shouldBe('regex279.exec(input0);', 'results');
2991 var input1 = "xabcy";
2992 var results = ["abc"];
2993 shouldBe('regex279.exec(input1);', 'results');
2994 var input2 = "ababc";
2995 var results = ["abc"];
2996 shouldBe('regex279.exec(input2);', 'results');
2997 // Failers
2998 var input3 = "xbc";
2999 var results = null;
3000 shouldBe('regex279.exec(input3);', 'results');
3001 var input4 = "axc";
3002 var results = null;
3003 shouldBe('regex279.exec(input4);', 'results');
3004 var input5 = "abx";
3005 var results = null;
3006 shouldBe('regex279.exec(input5);', 'results');
3007
3008 var regex280 = /ab*c/;
3009 var input0 = "abc";
3010 var results = ["abc"];
3011 shouldBe('regex280.exec(input0);', 'results');
3012
3013 var regex281 = /ab*bc/;
3014 var input0 = "abc";
3015 var results = ["abc"];
3016 shouldBe('regex281.exec(input0);', 'results');
3017 var input1 = "abbc";
3018 var results = ["abbc"];
3019 shouldBe('regex281.exec(input1);', 'results');
3020 var input2 = "abbbbc";
3021 var results = ["abbbbc"];
3022 shouldBe('regex281.exec(input2);', 'results');
3023
3024 var regex282 = /.{1}/;
3025 var input0 = "abbbbc";
3026 var results = ["a"];
3027 shouldBe('regex282.exec(input0);', 'results');
3028
3029 var regex283 = /.{3,4}/;
3030 var input0 = "abbbbc";
3031 var results = ["abbb"];
3032 shouldBe('regex283.exec(input0);', 'results');
3033
3034 var regex284 = /ab{0,}bc/;
3035 var input0 = "abbbbc";
3036 var results = ["abbbbc"];
3037 shouldBe('regex284.exec(input0);', 'results');
3038
3039 var regex285 = /ab+bc/;
3040 var input0 = "abbc";
3041 var results = ["abbc"];
3042 shouldBe('regex285.exec(input0);', 'results');
3043 // Failers
3044 var input1 = "abc";
3045 var results = null;
3046 shouldBe('regex285.exec(input1);', 'results');
3047 var input2 = "abq";
3048 var results = null;
3049 shouldBe('regex285.exec(input2);', 'results');
3050
3051 var regex286 = /ab+bc/;
3052 var input0 = "abbbbc";
3053 var results = ["abbbbc"];
3054 shouldBe('regex286.exec(input0);', 'results');
3055
3056 var regex287 = /ab{1,}bc/;
3057 var input0 = "abbbbc";
3058 var results = ["abbbbc"];
3059 shouldBe('regex287.exec(input0);', 'results');
3060
3061 var regex288 = /ab{1,3}bc/;
3062 var input0 = "abbbbc";
3063 var results = ["abbbbc"];
3064 shouldBe('regex288.exec(input0);', 'results');
3065
3066 var regex289 = /ab{3,4}bc/;
3067 var input0 = "abbbbc";
3068 var results = ["abbbbc"];
3069 shouldBe('regex289.exec(input0);', 'results');
3070
3071 var regex290 = /ab{4,5}bc/;
3072 // Failers
3073 var input0 = "abq";
3074 var results = null;
3075 shouldBe('regex290.exec(input0);', 'results');
3076 var input1 = "abbbbc";
3077 var results = null;
3078 shouldBe('regex290.exec(input1);', 'results');
3079
3080 var regex291 = /ab?bc/;
3081 var input0 = "abbc";
3082 var results = ["abbc"];
3083 shouldBe('regex291.exec(input0);', 'results');
3084 var input1 = "abc";
3085 var results = ["abc"];
3086 shouldBe('regex291.exec(input1);', 'results');
3087
3088 var regex292 = /ab{0,1}bc/;
3089 var input0 = "abc";
3090 var results = ["abc"];
3091 shouldBe('regex292.exec(input0);', 'results');
3092
3093 var regex293 = /ab?c/;
3094 var input0 = "abc";
3095 var results = ["abc"];
3096 shouldBe('regex293.exec(input0);', 'results');
3097
3098 var regex294 = /ab{0,1}c/;
3099 var input0 = "abc";
3100 var results = ["abc"];
3101 shouldBe('regex294.exec(input0);', 'results');
3102
3103 var regex295 = /^abc/;
3104 var input0 = "abcc";
3105 var results = ["abc"];
3106 shouldBe('regex295.exec(input0);', 'results');
3107
3108 var regex296 = /abc$/;
3109 var input0 = "aabc";
3110 var results = ["abc"];
3111 shouldBe('regex296.exec(input0);', 'results');
3112 // Failers
3113 var input1 = "aabc";
3114 var results = ["abc"];
3115 shouldBe('regex296.exec(input1);', 'results');
3116 var input2 = "aabcd";
3117 var results = null;
3118 shouldBe('regex296.exec(input2);', 'results');
3119
3120 var regex297 = /^/;
3121 var input0 = "abc";
3122 var results = [""];
3123 shouldBe('regex297.exec(input0);', 'results');
3124
3125 var regex298 = /$/;
3126 var input0 = "abc";
3127 var results = [""];
3128 shouldBe('regex298.exec(input0);', 'results');
3129
3130 var regex299 = /a.c/;
3131 var input0 = "abc";
3132 var results = ["abc"];
3133 shouldBe('regex299.exec(input0);', 'results');
3134 var input1 = "axc";
3135 var results = ["axc"];
3136 shouldBe('regex299.exec(input1);', 'results');
3137
3138 var regex300 = /a.*c/;
3139 var input0 = "axyzc";
3140 var results = ["axyzc"];
3141 shouldBe('regex300.exec(input0);', 'results');
3142
3143 var regex301 = /a[bc]d/;
3144 var input0 = "abd";
3145 var results = ["abd"];
3146 shouldBe('regex301.exec(input0);', 'results');
3147 // Failers
3148 var input1 = "axyzd";
3149 var results = null;
3150 shouldBe('regex301.exec(input1);', 'results');
3151 var input2 = "abc";
3152 var results = null;
3153 shouldBe('regex301.exec(input2);', 'results');
3154
3155 var regex302 = /a[b-d]e/;
3156 var input0 = "ace";
3157 var results = ["ace"];
3158 shouldBe('regex302.exec(input0);', 'results');
3159
3160 var regex303 = /a[b-d]/;
3161 var input0 = "aac";
3162 var results = ["ac"];
3163 shouldBe('regex303.exec(input0);', 'results');
3164
3165 var regex304 = /a[-b]/;
3166 var input0 = "a-";
3167 var results = ["a-"];
3168 shouldBe('regex304.exec(input0);', 'results');
3169
3170 var regex305 = /a[b-]/;
3171 var input0 = "a-";
3172 var results = ["a-"];
3173 shouldBe('regex305.exec(input0);', 'results');
3174
3175 var regex306 = /a]/;
3176 var input0 = "a]";
3177 var results = ["a]"];
3178 shouldBe('regex306.exec(input0);', 'results');
3179
3180 var regex307 = /a[\]]b/;
3181 var input0 = "a]b";
3182 var results = ["a]b"];
3183 shouldBe('regex307.exec(input0);', 'results');
3184
3185 var regex308 = /a[^bc]d/;
3186 var input0 = "aed";
3187 var results = ["aed"];
3188 shouldBe('regex308.exec(input0);', 'results');
3189 // Failers
3190 var input1 = "abd";
3191 var results = null;
3192 shouldBe('regex308.exec(input1);', 'results');
3193 var input2 = "abd";
3194 var results = null;
3195 shouldBe('regex308.exec(input2);', 'results');
3196
3197 var regex309 = /a[^-b]c/;
3198 var input0 = "adc";
3199 var results = ["adc"];
3200 shouldBe('regex309.exec(input0);', 'results');
3201
3202 var regex310 = /a[^\]b]c/;
3203 var input0 = "adc";
3204 var results = ["adc"];
3205 shouldBe('regex310.exec(input0);', 'results');
3206 var input1 = "a-c";
3207 var results = ["a-c"];
3208 shouldBe('regex310.exec(input1);', 'results');
3209 // Failers
3210 var input2 = "a]c";
3211 var results = null;
3212 shouldBe('regex310.exec(input2);', 'results');
3213
3214 var regex311 = /\ba\b/;
3215 var input0 = "a-";
3216 var results = ["a"];
3217 shouldBe('regex311.exec(input0);', 'results');
3218 var input1 = "-a";
3219 var results = ["a"];
3220 shouldBe('regex311.exec(input1);', 'results');
3221 var input2 = "-a-";
3222 var results = ["a"];
3223 shouldBe('regex311.exec(input2);', 'results');
3224
3225 var regex312 = /\by\b/;
3226 // Failers
3227 var input0 = "xy";
3228 var results = null;
3229 shouldBe('regex312.exec(input0);', 'results');
3230 var input1 = "yz";
3231 var results = null;
3232 shouldBe('regex312.exec(input1);', 'results');
3233 var input2 = "xyz";
3234 var results = null;
3235 shouldBe('regex312.exec(input2);', 'results');
3236
3237 var regex313 = /\Ba\B/;
3238 // Failers
3239 var input0 = "a-";
3240 var results = null;
3241 shouldBe('regex313.exec(input0);', 'results');
3242 var input1 = "-a";
3243 var results = null;
3244 shouldBe('regex313.exec(input1);', 'results');
3245 var input2 = "-a-";
3246 var results = null;
3247 shouldBe('regex313.exec(input2);', 'results');
3248
3249 var regex314 = /\By\b/;
3250 var input0 = "xy";
3251 var results = ["y"];
3252 shouldBe('regex314.exec(input0);', 'results');
3253
3254 var regex315 = /\by\B/;
3255 var input0 = "yz";
3256 var results = ["y"];
3257 shouldBe('regex315.exec(input0);', 'results');
3258
3259 var regex316 = /\By\B/;
3260 var input0 = "xyz";
3261 var results = ["y"];
3262 shouldBe('regex316.exec(input0);', 'results');
3263
3264 var regex317 = /\w/;
3265 var input0 = "a";
3266 var results = ["a"];
3267 shouldBe('regex317.exec(input0);', 'results');
3268
3269 var regex318 = /\W/;
3270 var input0 = "-";
3271 var results = ["-"];
3272 shouldBe('regex318.exec(input0);', 'results');
3273 // Failers
3274 var input1 = "-";
3275 var results = ["-"];
3276 shouldBe('regex318.exec(input1);', 'results');
3277 var input2 = "a";
3278 var results = null;
3279 shouldBe('regex318.exec(input2);', 'results');
3280
3281 var regex319 = /a\sb/;
3282 var input0 = "a b";
3283 var results = ["a b"];
3284 shouldBe('regex319.exec(input0);', 'results');
3285
3286 var regex320 = /a\Sb/;
3287 var input0 = "a-b";
3288 var results = ["a-b"];
3289 shouldBe('regex320.exec(input0);', 'results');
3290 // Failers
3291 var input1 = "a-b";
3292 var results = ["a-b"];
3293 shouldBe('regex320.exec(input1);', 'results');
3294 var input2 = "a b";
3295 var results = null;
3296 shouldBe('regex320.exec(input2);', 'results');
3297
3298 var regex321 = /\d/;
3299 var input0 = "1";
3300 var results = ["1"];
3301 shouldBe('regex321.exec(input0);', 'results');
3302
3303 var regex322 = /\D/;
3304 var input0 = "-";
3305 var results = ["-"];
3306 shouldBe('regex322.exec(input0);', 'results');
3307 // Failers
3308 var input1 = "-";
3309 var results = ["-"];
3310 shouldBe('regex322.exec(input1);', 'results');
3311 var input2 = "1";
3312 var results = null;
3313 shouldBe('regex322.exec(input2);', 'results');
3314
3315 var regex323 = /[\w]/;
3316 var input0 = "a";
3317 var results = ["a"];
3318 shouldBe('regex323.exec(input0);', 'results');
3319
3320 var regex324 = /[\W]/;
3321 var input0 = "-";
3322 var results = ["-"];
3323 shouldBe('regex324.exec(input0);', 'results');
3324 // Failers
3325 var input1 = "-";
3326 var results = ["-"];
3327 shouldBe('regex324.exec(input1);', 'results');
3328 var input2 = "a";
3329 var results = null;
3330 shouldBe('regex324.exec(input2);', 'results');
3331
3332 var regex325 = /a[\s]b/;
3333 var input0 = "a b";
3334 var results = ["a b"];
3335 shouldBe('regex325.exec(input0);', 'results');
3336
3337 var regex326 = /a[\S]b/;
3338 var input0 = "a-b";
3339 var results = ["a-b"];
3340 shouldBe('regex326.exec(input0);', 'results');
3341 // Failers
3342 var input1 = "a-b";
3343 var results = ["a-b"];
3344 shouldBe('regex326.exec(input1);', 'results');
3345 var input2 = "a b";
3346 var results = null;
3347 shouldBe('regex326.exec(input2);', 'results');
3348
3349 var regex327 = /[\d]/;
3350 var input0 = "1";
3351 var results = ["1"];
3352 shouldBe('regex327.exec(input0);', 'results');
3353
3354 var regex328 = /[\D]/;
3355 var input0 = "-";
3356 var results = ["-"];
3357 shouldBe('regex328.exec(input0);', 'results');
3358 // Failers
3359 var input1 = "-";
3360 var results = ["-"];
3361 shouldBe('regex328.exec(input1);', 'results');
3362 var input2 = "1";
3363 var results = null;
3364 shouldBe('regex328.exec(input2);', 'results');
3365
3366 var regex329 = /ab|cd/;
3367 var input0 = "abc";
3368 var results = ["ab"];
3369 shouldBe('regex329.exec(input0);', 'results');
3370 var input1 = "abcd";
3371 var results = ["ab"];
3372 shouldBe('regex329.exec(input1);', 'results');
3373
3374 var regex330 = /()ef/;
3375 var input0 = "def";
3376 var results = ["ef", ""];
3377 shouldBe('regex330.exec(input0);', 'results');
3378
3379 var regex331 = /a\(b/;
3380 var input0 = "a(b";
3381 var results = ["a(b"];
3382 shouldBe('regex331.exec(input0);', 'results');
3383
3384 var regex332 = /a\(*b/;
3385 var input0 = "ab";
3386 var results = ["ab"];
3387 shouldBe('regex332.exec(input0);', 'results');
3388 var input1 = "a((b";
3389 var results = ["a((b"];
3390 shouldBe('regex332.exec(input1);', 'results');
3391
3392 var regex333 = /a\\b/;
3393 var input0 = "a\b";
3394 var results = null;
3395 shouldBe('regex333.exec(input0);', 'results');
3396
3397 var regex334 = /((a))/;
3398 var input0 = "abc";
3399 var results = ["a", "a", "a"];
3400 shouldBe('regex334.exec(input0);', 'results');
3401
3402 var regex335 = /(a)b(c)/;
3403 var input0 = "abc";
3404 var results = ["abc", "a", "c"];
3405 shouldBe('regex335.exec(input0);', 'results');
3406
3407 var regex336 = /a+b+c/;
3408 var input0 = "aabbabc";
3409 var results = ["abc"];
3410 shouldBe('regex336.exec(input0);', 'results');
3411
3412 var regex337 = /a{1,}b{1,}c/;
3413 var input0 = "aabbabc";
3414 var results = ["abc"];
3415 shouldBe('regex337.exec(input0);', 'results');
3416
3417 var regex338 = /a.+?c/;
3418 var input0 = "abcabc";
3419 var results = ["abc"];
3420 shouldBe('regex338.exec(input0);', 'results');
3421
3422 var regex339 = /(a+|b)*/;
3423 var input0 = "ab";
3424 var results = ["ab", "b"];
3425 shouldBe('regex339.exec(input0);', 'results');
3426
3427 var regex340 = /(a+|b){0,}/;
3428 var input0 = "ab";
3429 var results = ["ab", "b"];
3430 shouldBe('regex340.exec(input0);', 'results');
3431
3432 var regex341 = /(a+|b)+/;
3433 var input0 = "ab";
3434 var results = ["ab", "b"];
3435 shouldBe('regex341.exec(input0);', 'results');
3436
3437 var regex342 = /(a+|b){1,}/;
3438 var input0 = "ab";
3439 var results = ["ab", "b"];
3440 shouldBe('regex342.exec(input0);', 'results');
3441
3442 var regex343 = /(a+|b)?/;
3443 var input0 = "ab";
3444 var results = ["a", "a"];
3445 shouldBe('regex343.exec(input0);', 'results');
3446
3447 var regex344 = /(a+|b){0,1}/;
3448 var input0 = "ab";
3449 var results = ["a", "a"];
3450 shouldBe('regex344.exec(input0);', 'results');
3451
3452 var regex345 = /[^ab]*/;
3453 var input0 = "cde";
3454 var results = ["cde"];
3455 shouldBe('regex345.exec(input0);', 'results');
3456
3457 var regex346 = /abc/;
3458 // Failers
3459 var input0 = "b";
3460 var results = null;
3461 shouldBe('regex346.exec(input0);', 'results');
3462
3463 var regex347 = /([abc])*d/;
3464 var input0 = "abbbcd";
3465 var results = ["abbbcd", "c"];
3466 shouldBe('regex347.exec(input0);', 'results');
3467
3468 var regex348 = /([abc])*bcd/;
3469 var input0 = "abcd";
3470 var results = ["abcd", "a"];
3471 shouldBe('regex348.exec(input0);', 'results');
3472
3473 var regex349 = /a|b|c|d|e/;
3474 var input0 = "e";
3475 var results = ["e"];
3476 shouldBe('regex349.exec(input0);', 'results');
3477
3478 var regex350 = /(a|b|c|d|e)f/;
3479 var input0 = "ef";
3480 var results = ["ef", "e"];
3481 shouldBe('regex350.exec(input0);', 'results');
3482
3483 var regex351 = /abcd*efg/;
3484 var input0 = "abcdefg";
3485 var results = ["abcdefg"];
3486 shouldBe('regex351.exec(input0);', 'results');
3487
3488 var regex352 = /ab*/;
3489 var input0 = "xabyabbbz";
3490 var results = ["ab"];
3491 shouldBe('regex352.exec(input0);', 'results');
3492 var input1 = "xayabbbz";
3493 var results = ["a"];
3494 shouldBe('regex352.exec(input1);', 'results');
3495
3496 var regex353 = /(ab|cd)e/;
3497 var input0 = "abcde";
3498 var results = ["cde", "cd"];
3499 shouldBe('regex353.exec(input0);', 'results');
3500
3501 var regex354 = /[abhgefdc]ij/;
3502 var input0 = "hij";
3503 var results = ["hij"];
3504 shouldBe('regex354.exec(input0);', 'results');
3505
3506 var regex355 = /(abc|)ef/;
3507 var input0 = "abcdef";
3508 var results = ["ef", ""];
3509 shouldBe('regex355.exec(input0);', 'results');
3510
3511 var regex356 = /(a|b)c*d/;
3512 var input0 = "abcd";
3513 var results = ["bcd", "b"];
3514 shouldBe('regex356.exec(input0);', 'results');
3515
3516 var regex357 = /(ab|ab*)bc/;
3517 var input0 = "abc";
3518 var results = ["abc", "a"];
3519 shouldBe('regex357.exec(input0);', 'results');
3520
3521 var regex358 = /a([bc]*)c*/;
3522 var input0 = "abc";
3523 var results = ["abc", "bc"];
3524 shouldBe('regex358.exec(input0);', 'results');
3525
3526 var regex359 = /a([bc]*)(c*d)/;
3527 var input0 = "abcd";
3528 var results = ["abcd", "bc", "d"];
3529 shouldBe('regex359.exec(input0);', 'results');
3530
3531 var regex360 = /a([bc]+)(c*d)/;
3532 var input0 = "abcd";
3533 var results = ["abcd", "bc", "d"];
3534 shouldBe('regex360.exec(input0);', 'results');
3535
3536 var regex361 = /a([bc]*)(c+d)/;
3537 var input0 = "abcd";
3538 var results = ["abcd", "b", "cd"];
3539 shouldBe('regex361.exec(input0);', 'results');
3540
3541 var regex362 = /a[bcd]*dcdcde/;
3542 var input0 = "adcdcde";
3543 var results = ["adcdcde"];
3544 shouldBe('regex362.exec(input0);', 'results');
3545
3546 var regex363 = /a[bcd]+dcdcde/;
3547 // Failers
3548 var input0 = "abcde";
3549 var results = null;
3550 shouldBe('regex363.exec(input0);', 'results');
3551 var input1 = "adcdcde";
3552 var results = null;
3553 shouldBe('regex363.exec(input1);', 'results');
3554
3555 var regex364 = /(ab|a)b*c/;
3556 var input0 = "abc";
3557 var results = ["abc", "ab"];
3558 shouldBe('regex364.exec(input0);', 'results');
3559
3560 var regex365 = /((a)(b)c)(d)/;
3561 var input0 = "abcd";
3562 var results = ["abcd", "abc", "a", "b", "d"];
3563 shouldBe('regex365.exec(input0);', 'results');
3564
3565 var regex366 = /[a-zA-Z_][a-zA-Z0-9_]*/;
3566 var input0 = "alpha";
3567 var results = ["alpha"];
3568 shouldBe('regex366.exec(input0);', 'results');
3569
3570 var regex367 = /^a(bc+|b[eh])g|.h$/;
3571 var input0 = "abh";
3572 var results = ["bh", undefined];
3573 shouldBe('regex367.exec(input0);', 'results');
3574
3575 var regex368 = /(bc+d$|ef*g.|h?i(j|k))/;
3576 var input0 = "effgz";
3577 var results = ["effgz", "effgz", undefined];
3578 shouldBe('regex368.exec(input0);', 'results');
3579 var input1 = "ij";
3580 var results = ["ij", "ij", "j"];
3581 shouldBe('regex368.exec(input1);', 'results');
3582 var input2 = "reffgz";
3583 var results = ["effgz", "effgz", undefined];
3584 shouldBe('regex368.exec(input2);', 'results');
3585 // Failers
3586 var input3 = "effg";
3587 var results = null;
3588 shouldBe('regex368.exec(input3);', 'results');
3589 var input4 = "bcdd";
3590 var results = null;
3591 shouldBe('regex368.exec(input4);', 'results');
3592
3593 var regex369 = /((((((((((a))))))))))/;
3594 var input0 = "a";
3595 var results = ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a"];
3596 shouldBe('regex369.exec(input0);', 'results');
3597
3598 var regex370 = /((((((((((a))))))))))\10/;
3599 var input0 = "aa";
3600 var results = ["aa", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a"];
3601 shouldBe('regex370.exec(input0);', 'results');
3602
3603 var regex371 = /(((((((((a)))))))))/;
3604 var input0 = "a";
3605 var results = ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a"];
3606 shouldBe('regex371.exec(input0);', 'results');
3607
3608 var regex372 = /multiple words of text/;
3609 // Failers
3610 var input0 = "aa";
3611 var results = null;
3612 shouldBe('regex372.exec(input0);', 'results');
3613 var input1 = "uh-uh";
3614 var results = null;
3615 shouldBe('regex372.exec(input1);', 'results');
3616
3617 var regex373 = /multiple words/;
3618 var input0 = "multiple words, yeah";
3619 var results = ["multiple words"];
3620 shouldBe('regex373.exec(input0);', 'results');
3621
3622 var regex374 = /(.*)c(.*)/;
3623 var input0 = "abcde";
3624 var results = ["abcde", "ab", "de"];
3625 shouldBe('regex374.exec(input0);', 'results');
3626
3627 var regex375 = /\((.*), (.*)\)/;
3628 var input0 = "(a, b)";
3629 var results = ["(a, b)", "a", "b"];
3630 shouldBe('regex375.exec(input0);', 'results');
3631
3632 var regex376 = /abcd/;
3633 var input0 = "abcd";
3634 var results = ["abcd"];
3635 shouldBe('regex376.exec(input0);', 'results');
3636
3637 var regex377 = /a(bc)d/;
3638 var input0 = "abcd";
3639 var results = ["abcd", "bc"];
3640 shouldBe('regex377.exec(input0);', 'results');
3641
3642 var regex378 = /a[-]?c/;
3643 var input0 = "ac";
3644 var results = ["ac"];
3645 shouldBe('regex378.exec(input0);', 'results');
3646
3647 var regex379 = /(abc)\1/;
3648 var input0 = "abcabc";
3649 var results = ["abcabc", "abc"];
3650 shouldBe('regex379.exec(input0);', 'results');
3651
3652 var regex380 = /([a-c]*)\1/;
3653 var input0 = "abcabc";
3654 var results = ["abcabc", "abc"];
3655 shouldBe('regex380.exec(input0);', 'results');
3656
3657 var regex381 = /(a)|\1/;
3658 var input0 = "a";
3659 var results = ["a", "a"];
3660 shouldBe('regex381.exec(input0);', 'results');
3661 var input1 = "ab";
3662 var results = ["a", "a"];
3663 shouldBe('regex381.exec(input1);', 'results');
3664 var input2 = "x";
3665 var results = ["", undefined];
3666 shouldBe('regex381.exec(input2);', 'results');
3667
3668 var regex382 = /(([a-c])b*?\2)*/;
3669 var input0 = "ababbbcbc";
3670 var results = ["ababb", "bb", "b"];
3671 shouldBe('regex382.exec(input0);', 'results');
3672
3673 var regex383 = /(([a-c])b*?\2){3}/;
3674 var input0 = "ababbbcbc";
3675 var results = ["ababbbcbc", "cbc", "c"];
3676 shouldBe('regex383.exec(input0);', 'results');
3677
3678 var regex384 = /((\3|b)\2(a)x)+/;
3679 var input0 = "aaaxabaxbaaxbbax";
3680 var results = ["ax", "ax", "", "a"];
3681 shouldBe('regex384.exec(input0);', 'results');
3682
3683 var regex385 = /((\3|b)\2(a)){2,}/;
3684 var input0 = "bbaababbabaaaaabbaaaabba";
3685 var results = ["bbaa", "a", "", "a"];
3686 shouldBe('regex385.exec(input0);', 'results');
3687
3688 var regex386 = /abc/i;
3689 var input0 = "ABC";
3690 var results = ["ABC"];
3691 shouldBe('regex386.exec(input0);', 'results');
3692 var input1 = "XABCY";
3693 var results = ["ABC"];
3694 shouldBe('regex386.exec(input1);', 'results');
3695 var input2 = "ABABC";
3696 var results = ["ABC"];
3697 shouldBe('regex386.exec(input2);', 'results');
3698 // Failers
3699 var input3 = "aaxabxbaxbbx";
3700 var results = null;
3701 shouldBe('regex386.exec(input3);', 'results');
3702 var input4 = "XBC";
3703 var results = null;
3704 shouldBe('regex386.exec(input4);', 'results');
3705 var input5 = "AXC";
3706 var results = null;
3707 shouldBe('regex386.exec(input5);', 'results');
3708 var input6 = "ABX";
3709 var results = null;
3710 shouldBe('regex386.exec(input6);', 'results');
3711
3712 var regex387 = /ab*c/i;
3713 var input0 = "ABC";
3714 var results = ["ABC"];
3715 shouldBe('regex387.exec(input0);', 'results');
3716
3717 var regex388 = /ab*bc/i;
3718 var input0 = "ABC";
3719 var results = ["ABC"];
3720 shouldBe('regex388.exec(input0);', 'results');
3721 var input1 = "ABBC";
3722 var results = ["ABBC"];
3723 shouldBe('regex388.exec(input1);', 'results');
3724
3725 var regex389 = /ab*?bc/i;
3726 var input0 = "ABBBBC";
3727 var results = ["ABBBBC"];
3728 shouldBe('regex389.exec(input0);', 'results');
3729
3730 var regex390 = /ab{0,}?bc/i;
3731 var input0 = "ABBBBC";
3732 var results = ["ABBBBC"];
3733 shouldBe('regex390.exec(input0);', 'results');
3734
3735 var regex391 = /ab+?bc/i;
3736 var input0 = "ABBC";
3737 var results = ["ABBC"];
3738 shouldBe('regex391.exec(input0);', 'results');
3739
3740 var regex392 = /ab+bc/i;
3741 // Failers
3742 var input0 = "ABC";
3743 var results = null;
3744 shouldBe('regex392.exec(input0);', 'results');
3745 var input1 = "ABQ";
3746 var results = null;
3747 shouldBe('regex392.exec(input1);', 'results');
3748
3749 var regex393 = /ab+bc/i;
3750 var input0 = "ABBBBC";
3751 var results = ["ABBBBC"];
3752 shouldBe('regex393.exec(input0);', 'results');
3753
3754 var regex394 = /ab{1,}?bc/i;
3755 var input0 = "ABBBBC";
3756 var results = ["ABBBBC"];
3757 shouldBe('regex394.exec(input0);', 'results');
3758
3759 var regex395 = /ab{1,3}?bc/i;
3760 var input0 = "ABBBBC";
3761 var results = ["ABBBBC"];
3762 shouldBe('regex395.exec(input0);', 'results');
3763
3764 var regex396 = /ab{3,4}?bc/i;
3765 var input0 = "ABBBBC";
3766 var results = ["ABBBBC"];
3767 shouldBe('regex396.exec(input0);', 'results');
3768
3769 var regex397 = /ab{4,5}?bc/i;
3770 // Failers
3771 var input0 = "ABQ";
3772 var results = null;
3773 shouldBe('regex397.exec(input0);', 'results');
3774 var input1 = "ABBBBC";
3775 var results = null;
3776 shouldBe('regex397.exec(input1);', 'results');
3777
3778 var regex398 = /ab??bc/i;
3779 var input0 = "ABBC";
3780 var results = ["ABBC"];
3781 shouldBe('regex398.exec(input0);', 'results');
3782 var input1 = "ABC";
3783 var results = ["ABC"];
3784 shouldBe('regex398.exec(input1);', 'results');
3785
3786 var regex399 = /ab{0,1}?bc/i;
3787 var input0 = "ABC";
3788 var results = ["ABC"];
3789 shouldBe('regex399.exec(input0);', 'results');
3790
3791 var regex400 = /ab??c/i;
3792 var input0 = "ABC";
3793 var results = ["ABC"];
3794 shouldBe('regex400.exec(input0);', 'results');
3795
3796 var regex401 = /ab{0,1}?c/i;
3797 var input0 = "ABC";
3798 var results = ["ABC"];
3799 shouldBe('regex401.exec(input0);', 'results');
3800
3801 var regex402 = /^abc$/i;
3802 var input0 = "ABC";
3803 var results = ["ABC"];
3804 shouldBe('regex402.exec(input0);', 'results');
3805 // Failers
3806 var input1 = "ABBBBC";
3807 var results = null;
3808 shouldBe('regex402.exec(input1);', 'results');
3809 var input2 = "ABCC";
3810 var results = null;
3811 shouldBe('regex402.exec(input2);', 'results');
3812
3813 var regex403 = /^abc/i;
3814 var input0 = "ABCC";
3815 var results = ["ABC"];
3816 shouldBe('regex403.exec(input0);', 'results');
3817
3818 var regex404 = /abc$/i;
3819 var input0 = "AABC";
3820 var results = ["ABC"];
3821 shouldBe('regex404.exec(input0);', 'results');
3822
3823 var regex405 = /^/i;
3824 var input0 = "ABC";
3825 var results = [""];
3826 shouldBe('regex405.exec(input0);', 'results');
3827
3828 var regex406 = /$/i;
3829 var input0 = "ABC";
3830 var results = [""];
3831 shouldBe('regex406.exec(input0);', 'results');
3832
3833 var regex407 = /a.c/i;
3834 var input0 = "ABC";
3835 var results = ["ABC"];
3836 shouldBe('regex407.exec(input0);', 'results');
3837 var input1 = "AXC";
3838 var results = ["AXC"];
3839 shouldBe('regex407.exec(input1);', 'results');
3840
3841 var regex408 = /a.*?c/i;
3842 var input0 = "AXYZC";
3843 var results = ["AXYZC"];
3844 shouldBe('regex408.exec(input0);', 'results');
3845
3846 var regex409 = /a.*c/i;
3847 // Failers
3848 var input0 = "AABC";
3849 var results = ["AABC"];
3850 shouldBe('regex409.exec(input0);', 'results');
3851 var input1 = "AXYZD";
3852 var results = null;
3853 shouldBe('regex409.exec(input1);', 'results');
3854
3855 var regex410 = /a[bc]d/i;
3856 var input0 = "ABD";
3857 var results = ["ABD"];
3858 shouldBe('regex410.exec(input0);', 'results');
3859
3860 var regex411 = /a[b-d]e/i;
3861 var input0 = "ACE";
3862 var results = ["ACE"];
3863 shouldBe('regex411.exec(input0);', 'results');
3864 // Failers
3865 var input1 = "ABC";
3866 var results = null;
3867 shouldBe('regex411.exec(input1);', 'results');
3868 var input2 = "ABD";
3869 var results = null;
3870 shouldBe('regex411.exec(input2);', 'results');
3871
3872 var regex412 = /a[b-d]/i;
3873 var input0 = "AAC";
3874 var results = ["AC"];
3875 shouldBe('regex412.exec(input0);', 'results');
3876
3877 var regex413 = /a[-b]/i;
3878 var input0 = "A-";
3879 var results = ["A-"];
3880 shouldBe('regex413.exec(input0);', 'results');
3881
3882 var regex414 = /a[b-]/i;
3883 var input0 = "A-";
3884 var results = ["A-"];
3885 shouldBe('regex414.exec(input0);', 'results');
3886
3887 var regex415 = /a]/i;
3888 var input0 = "A]";
3889 var results = ["A]"];
3890 shouldBe('regex415.exec(input0);', 'results');
3891
3892 var regex416 = /a[\]]b/i;
3893 var input0 = "A]B";
3894 var results = ["A]B"];
3895 shouldBe('regex416.exec(input0);', 'results');
3896
3897 var regex417 = /a[^bc]d/i;
3898 var input0 = "AED";
3899 var results = ["AED"];
3900 shouldBe('regex417.exec(input0);', 'results');
3901
3902 var regex418 = /a[^-b]c/i;
3903 var input0 = "ADC";
3904 var results = ["ADC"];
3905 shouldBe('regex418.exec(input0);', 'results');
3906 // Failers
3907 var input1 = "ABD";
3908 var results = null;
3909 shouldBe('regex418.exec(input1);', 'results');
3910 var input2 = "A-C";
3911 var results = null;
3912 shouldBe('regex418.exec(input2);', 'results');
3913
3914 var regex419 = /a[^\]b]c/i;
3915 var input0 = "ADC";
3916 var results = ["ADC"];
3917 shouldBe('regex419.exec(input0);', 'results');
3918
3919 var regex420 = /ab|cd/i;
3920 var input0 = "ABC";
3921 var results = ["AB"];
3922 shouldBe('regex420.exec(input0);', 'results');
3923 var input1 = "ABCD";
3924 var results = ["AB"];
3925 shouldBe('regex420.exec(input1);', 'results');
3926
3927 var regex421 = /()ef/i;
3928 var input0 = "DEF";
3929 var results = ["EF", ""];
3930 shouldBe('regex421.exec(input0);', 'results');
3931
3932 var regex422 = /$b/i;
3933 // Failers
3934 var input0 = "A]C";
3935 var results = null;
3936 shouldBe('regex422.exec(input0);', 'results');
3937 var input1 = "B";
3938 var results = null;
3939 shouldBe('regex422.exec(input1);', 'results');
3940
3941 var regex423 = /a\(b/i;
3942 var input0 = "A(B";
3943 var results = ["A(B"];
3944 shouldBe('regex423.exec(input0);', 'results');
3945
3946 var regex424 = /a\(*b/i;
3947 var input0 = "AB";
3948 var results = ["AB"];
3949 shouldBe('regex424.exec(input0);', 'results');
3950 var input1 = "A((B";
3951 var results = ["A((B"];
3952 shouldBe('regex424.exec(input1);', 'results');
3953
3954 var regex425 = /a\\b/i;
3955 var input0 = "A\B";
3956 var results = null;
3957 shouldBe('regex425.exec(input0);', 'results');
3958
3959 var regex426 = /((a))/i;
3960 var input0 = "ABC";
3961 var results = ["A", "A", "A"];
3962 shouldBe('regex426.exec(input0);', 'results');
3963
3964 var regex427 = /(a)b(c)/i;
3965 var input0 = "ABC";
3966 var results = ["ABC", "A", "C"];
3967 shouldBe('regex427.exec(input0);', 'results');
3968
3969 var regex428 = /a+b+c/i;
3970 var input0 = "AABBABC";
3971 var results = ["ABC"];
3972 shouldBe('regex428.exec(input0);', 'results');
3973
3974 var regex429 = /a{1,}b{1,}c/i;
3975 var input0 = "AABBABC";
3976 var results = ["ABC"];
3977 shouldBe('regex429.exec(input0);', 'results');
3978
3979 var regex430 = /a.+?c/i;
3980 var input0 = "ABCABC";
3981 var results = ["ABC"];
3982 shouldBe('regex430.exec(input0);', 'results');
3983
3984 var regex431 = /a.*?c/i;
3985 var input0 = "ABCABC";
3986 var results = ["ABC"];
3987 shouldBe('regex431.exec(input0);', 'results');
3988
3989 var regex432 = /a.{0,5}?c/i;
3990 var input0 = "ABCABC";
3991 var results = ["ABC"];
3992 shouldBe('regex432.exec(input0);', 'results');
3993
3994 var regex433 = /(a+|b)*/i;
3995 var input0 = "AB";
3996 var results = ["AB", "B"];
3997 shouldBe('regex433.exec(input0);', 'results');
3998
3999 var regex434 = /(a+|b){0,}/i;
4000 var input0 = "AB";
4001 var results = ["AB", "B"];
4002 shouldBe('regex434.exec(input0);', 'results');
4003
4004 var regex435 = /(a+|b)+/i;
4005 var input0 = "AB";
4006 var results = ["AB", "B"];
4007 shouldBe('regex435.exec(input0);', 'results');
4008
4009 var regex436 = /(a+|b){1,}/i;
4010 var input0 = "AB";
4011 var results = ["AB", "B"];
4012 shouldBe('regex436.exec(input0);', 'results');
4013
4014 var regex437 = /(a+|b)?/i;
4015 var input0 = "AB";
4016 var results = ["A", "A"];
4017 shouldBe('regex437.exec(input0);', 'results');
4018
4019 var regex438 = /(a+|b){0,1}/i;
4020 var input0 = "AB";
4021 var results = ["A", "A"];
4022 shouldBe('regex438.exec(input0);', 'results');
4023
4024 var regex439 = /(a+|b){0,1}?/i;
4025 var input0 = "AB";
4026 var results = ["", undefined];
4027 shouldBe('regex439.exec(input0);', 'results');
4028
4029 var regex440 = /[^ab]*/i;
4030 var input0 = "CDE";
4031 var results = ["CDE"];
4032 shouldBe('regex440.exec(input0);', 'results');
4033
4034 var regex441 = /([abc])*d/i;
4035 var input0 = "ABBBCD";
4036 var results = ["ABBBCD", "C"];
4037 shouldBe('regex441.exec(input0);', 'results');
4038
4039 var regex442 = /([abc])*bcd/i;
4040 var input0 = "ABCD";
4041 var results = ["ABCD", "A"];
4042 shouldBe('regex442.exec(input0);', 'results');
4043
4044 var regex443 = /a|b|c|d|e/i;
4045 var input0 = "E";
4046 var results = ["E"];
4047 shouldBe('regex443.exec(input0);', 'results');
4048
4049 var regex444 = /(a|b|c|d|e)f/i;
4050 var input0 = "EF";
4051 var results = ["EF", "E"];
4052 shouldBe('regex444.exec(input0);', 'results');
4053
4054 var regex445 = /abcd*efg/i;
4055 var input0 = "ABCDEFG";
4056 var results = ["ABCDEFG"];
4057 shouldBe('regex445.exec(input0);', 'results');
4058
4059 var regex446 = /ab*/i;
4060 var input0 = "XABYABBBZ";
4061 var results = ["AB"];
4062 shouldBe('regex446.exec(input0);', 'results');
4063 var input1 = "XAYABBBZ";
4064 var results = ["A"];
4065 shouldBe('regex446.exec(input1);', 'results');
4066
4067 var regex447 = /(ab|cd)e/i;
4068 var input0 = "ABCDE";
4069 var results = ["CDE", "CD"];
4070 shouldBe('regex447.exec(input0);', 'results');
4071
4072 var regex448 = /[abhgefdc]ij/i;
4073 var input0 = "HIJ";
4074 var results = ["HIJ"];
4075 shouldBe('regex448.exec(input0);', 'results');
4076
4077 var regex449 = /^(ab|cd)e/i;
4078 var input0 = "ABCDE";
4079 var results = null;
4080 shouldBe('regex449.exec(input0);', 'results');
4081
4082 var regex450 = /(abc|)ef/i;
4083 var input0 = "ABCDEF";
4084 var results = ["EF", ""];
4085 shouldBe('regex450.exec(input0);', 'results');
4086
4087 var regex451 = /(a|b)c*d/i;
4088 var input0 = "ABCD";
4089 var results = ["BCD", "B"];
4090 shouldBe('regex451.exec(input0);', 'results');
4091
4092 var regex452 = /(ab|ab*)bc/i;
4093 var input0 = "ABC";
4094 var results = ["ABC", "A"];
4095 shouldBe('regex452.exec(input0);', 'results');
4096
4097 var regex453 = /a([bc]*)c*/i;
4098 var input0 = "ABC";
4099 var results = ["ABC", "BC"];
4100 shouldBe('regex453.exec(input0);', 'results');
4101
4102 var regex454 = /a([bc]*)(c*d)/i;
4103 var input0 = "ABCD";
4104 var results = ["ABCD", "BC", "D"];
4105 shouldBe('regex454.exec(input0);', 'results');
4106
4107 var regex455 = /a([bc]+)(c*d)/i;
4108 var input0 = "ABCD";
4109 var results = ["ABCD", "BC", "D"];
4110 shouldBe('regex455.exec(input0);', 'results');
4111
4112 var regex456 = /a([bc]*)(c+d)/i;
4113 var input0 = "ABCD";
4114 var results = ["ABCD", "B", "CD"];
4115 shouldBe('regex456.exec(input0);', 'results');
4116
4117 var regex457 = /a[bcd]*dcdcde/i;
4118 var input0 = "ADCDCDE";
4119 var results = ["ADCDCDE"];
4120 shouldBe('regex457.exec(input0);', 'results');
4121
4122 var regex458 = /(ab|a)b*c/i;
4123 var input0 = "ABC";
4124 var results = ["ABC", "AB"];
4125 shouldBe('regex458.exec(input0);', 'results');
4126
4127 var regex459 = /((a)(b)c)(d)/i;
4128 var input0 = "ABCD";
4129 var results = ["ABCD", "ABC", "A", "B", "D"];
4130 shouldBe('regex459.exec(input0);', 'results');
4131
4132 var regex460 = /[a-zA-Z_][a-zA-Z0-9_]*/i;
4133 var input0 = "ALPHA";
4134 var results = ["ALPHA"];
4135 shouldBe('regex460.exec(input0);', 'results');
4136
4137 var regex461 = /^a(bc+|b[eh])g|.h$/i;
4138 var input0 = "ABH";
4139 var results = ["BH", undefined];
4140 shouldBe('regex461.exec(input0);', 'results');
4141
4142 var regex462 = /(bc+d$|ef*g.|h?i(j|k))/i;
4143 var input0 = "EFFGZ";
4144 var results = ["EFFGZ", "EFFGZ", undefined];
4145 shouldBe('regex462.exec(input0);', 'results');
4146 var input1 = "IJ";
4147 var results = ["IJ", "IJ", "J"];
4148 shouldBe('regex462.exec(input1);', 'results');
4149 var input2 = "REFFGZ";
4150 var results = ["EFFGZ", "EFFGZ", undefined];
4151 shouldBe('regex462.exec(input2);', 'results');
4152 // Failers
4153 var input3 = "ADCDCDE";
4154 var results = null;
4155 shouldBe('regex462.exec(input3);', 'results');
4156 var input4 = "EFFG";
4157 var results = null;
4158 shouldBe('regex462.exec(input4);', 'results');
4159 var input5 = "BCDD";
4160 var results = null;
4161 shouldBe('regex462.exec(input5);', 'results');
4162
4163 var regex463 = /((((((((((a))))))))))/i;
4164 var input0 = "A";
4165 var results = ["A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A"];
4166 shouldBe('regex463.exec(input0);', 'results');
4167
4168 var regex464 = /((((((((((a))))))))))\10/i;
4169 var input0 = "AA";
4170 var results = ["AA", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A"];
4171 shouldBe('regex464.exec(input0);', 'results');
4172
4173 var regex465 = /(((((((((a)))))))))/i;
4174 var input0 = "A";
4175 var results = ["A", "A", "A", "A", "A", "A", "A", "A", "A", "A"];
4176 shouldBe('regex465.exec(input0);', 'results');
4177
4178 var regex466 = /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i;
4179 var input0 = "A";
4180 var results = ["A", "A"];
4181 shouldBe('regex466.exec(input0);', 'results');
4182
4183 var regex467 = /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i;
4184 var input0 = "C";
4185 var results = ["C", "C"];
4186 shouldBe('regex467.exec(input0);', 'results');
4187
4188 var regex468 = /multiple words of text/i;
4189 // Failers
4190 var input0 = "AA";
4191 var results = null;
4192 shouldBe('regex468.exec(input0);', 'results');
4193 var input1 = "UH-UH";
4194 var results = null;
4195 shouldBe('regex468.exec(input1);', 'results');
4196
4197 var regex469 = /multiple words/i;
4198 var input0 = "MULTIPLE WORDS, YEAH";
4199 var results = ["MULTIPLE WORDS"];
4200 shouldBe('regex469.exec(input0);', 'results');
4201
4202 var regex470 = /(.*)c(.*)/i;
4203 var input0 = "ABCDE";
4204 var results = ["ABCDE", "AB", "DE"];
4205 shouldBe('regex470.exec(input0);', 'results');
4206
4207 var regex471 = /\((.*), (.*)\)/i;
4208 var input0 = "(A, B)";
4209 var results = ["(A, B)", "A", "B"];
4210 shouldBe('regex471.exec(input0);', 'results');
4211
4212 var regex472 = /abcd/i;
4213 var input0 = "ABCD";
4214 var results = ["ABCD"];
4215 shouldBe('regex472.exec(input0);', 'results');
4216
4217 var regex473 = /a(bc)d/i;
4218 var input0 = "ABCD";
4219 var results = ["ABCD", "BC"];
4220 shouldBe('regex473.exec(input0);', 'results');
4221
4222 var regex474 = /a[-]?c/i;
4223 var input0 = "AC";
4224 var results = ["AC"];
4225 shouldBe('regex474.exec(input0);', 'results');
4226
4227 var regex475 = /(abc)\1/i;
4228 var input0 = "ABCABC";
4229 var results = ["ABCABC", "ABC"];
4230 shouldBe('regex475.exec(input0);', 'results');
4231
4232 var regex476 = /([a-c]*)\1/i;
4233 var input0 = "ABCABC";
4234 var results = ["ABCABC", "ABC"];
4235 shouldBe('regex476.exec(input0);', 'results');
4236
4237 var regex477 = /a(?!b)./;
4238 var input0 = "abad";
4239 var results = ["ad"];
4240 shouldBe('regex477.exec(input0);', 'results');
4241
4242 var regex478 = /a(?=d)./;
4243 var input0 = "abad";
4244 var results = ["ad"];
4245 shouldBe('regex478.exec(input0);', 'results');
4246
4247 var regex479 = /a(?=c|d)./;
4248 var input0 = "abad";
4249 var results = ["ad"];
4250 shouldBe('regex479.exec(input0);', 'results');
4251
4252 var regex480 = /a(?:b|c|d)(.)/;
4253 var input0 = "ace";
4254 var results = ["ace", "e"];
4255 shouldBe('regex480.exec(input0);', 'results');
4256
4257 var regex481 = /a(?:b|c|d)*(.)/;
4258 var input0 = "ace";
4259 var results = ["ace", "e"];
4260 shouldBe('regex481.exec(input0);', 'results');
4261
4262 var regex482 = /a(?:b|c|d)+?(.)/;
4263 var input0 = "ace";
4264 var results = ["ace", "e"];
4265 shouldBe('regex482.exec(input0);', 'results');
4266 var input1 = "acdbcdbe";
4267 var results = ["acd", "d"];
4268 shouldBe('regex482.exec(input1);', 'results');
4269
4270 var regex483 = /a(?:b|c|d)+(.)/;
4271 var input0 = "acdbcdbe";
4272 var results = ["acdbcdbe", "e"];
4273 shouldBe('regex483.exec(input0);', 'results');
4274
4275 var regex484 = /a(?:b|c|d){2}(.)/;
4276 var input0 = "acdbcdbe";
4277 var results = ["acdb", "b"];
4278 shouldBe('regex484.exec(input0);', 'results');
4279
4280 var regex485 = /a(?:b|c|d){4,5}(.)/;
4281 var input0 = "acdbcdbe";
4282 var results = ["acdbcdb", "b"];
4283 shouldBe('regex485.exec(input0);', 'results');
4284
4285 var regex486 = /a(?:b|c|d){4,5}?(.)/;
4286 var input0 = "acdbcdbe";
4287 var results = ["acdbcd", "d"];
4288 shouldBe('regex486.exec(input0);', 'results');
4289
4290 var regex487 = /((foo)|(bar))*/;
4291 var input0 = "foobar";
4292 var results = ["foobar", "bar", undefined, "bar"];
4293 shouldBe('regex487.exec(input0);', 'results');
4294
4295 var regex488 = /a(?:b|c|d){6,7}(.)/;
4296 var input0 = "acdbcdbe";
4297 var results = ["acdbcdbe", "e"];
4298 shouldBe('regex488.exec(input0);', 'results');
4299
4300 var regex489 = /a(?:b|c|d){6,7}?(.)/;
4301 var input0 = "acdbcdbe";
4302 var results = ["acdbcdbe", "e"];
4303 shouldBe('regex489.exec(input0);', 'results');
4304
4305 var regex490 = /a(?:b|c|d){5,6}(.)/;
4306 var input0 = "acdbcdbe";
4307 var results = ["acdbcdbe", "e"];
4308 shouldBe('regex490.exec(input0);', 'results');
4309
4310 var regex491 = /a(?:b|c|d){5,6}?(.)/;
4311 var input0 = "acdbcdbe";
4312 var results = ["acdbcdb", "b"];
4313 shouldBe('regex491.exec(input0);', 'results');
4314
4315 var regex492 = /a(?:b|c|d){5,7}(.)/;
4316 var input0 = "acdbcdbe";
4317 var results = ["acdbcdbe", "e"];
4318 shouldBe('regex492.exec(input0);', 'results');
4319
4320 var regex493 = /a(?:b|c|d){5,7}?(.)/;
4321 var input0 = "acdbcdbe";
4322 var results = ["acdbcdb", "b"];
4323 shouldBe('regex493.exec(input0);', 'results');
4324
4325 var regex494 = /a(?:b|(c|e){1,2}?|d)+?(.)/;
4326 var input0 = "ace";
4327 var results = ["ace", "c", "e"];
4328 shouldBe('regex494.exec(input0);', 'results');
4329
4330 var regex495 = /^(.+)?B/;
4331 var input0 = "AB";
4332 var results = ["AB", "A"];
4333 shouldBe('regex495.exec(input0);', 'results');
4334
4335 var regex496 = /^([^a-z])|(\^)$/;
4336 var input0 = ".";
4337 var results = [".", ".", undefined];
4338 shouldBe('regex496.exec(input0);', 'results');
4339
4340 var regex497 = /^[<>]&/;
4341 var input0 = "<&OUT";
4342 var results = ["<&"];
4343 shouldBe('regex497.exec(input0);', 'results');
4344
4345 var regex498 = /^(a\1?){4}$/;
4346 var input0 = "aaaaaaaaaa";
4347 var results = null;
4348 shouldBe('regex498.exec(input0);', 'results');
4349 // Failers
4350 var input1 = "AB";
4351 var results = null;
4352 shouldBe('regex498.exec(input1);', 'results');
4353 var input2 = "aaaaaaaaa";
4354 var results = null;
4355 shouldBe('regex498.exec(input2);', 'results');
4356 var input3 = "aaaaaaaaaaa";
4357 var results = null;
4358 shouldBe('regex498.exec(input3);', 'results');
4359
4360 var regex499 = /^(a(?:\1)){4}$/;
4361 var input0 = "aaaa";
4362 var results = ["aaaa", "a"];
4363 shouldBe('regex499.exec(input0);', 'results');
4364 // Failers
4365 var input1 = "aaaaaaaaa";
4366 var results = null;
4367 shouldBe('regex499.exec(input1);', 'results');
4368 var input2 = "aaaaaaaaaaa";
4369 var results = null;
4370 shouldBe('regex499.exec(input2);', 'results');
4371 var input3 = "aaaaaaaaaa";
4372 var results = null;
4373 shouldBe('regex499.exec(input3);', 'results');
4374
4375 var regex500 = /(?:(f)(o)(o)|(b)(a)(r))*/;
4376 var input0 = "foobar";
4377 var results = ["foobar", undefined, undefined, undefined, "b", "a", "r"];
4378 shouldBe('regex500.exec(input0);', 'results');
4379
4380 var regex503 = /(?:..)*a/;
4381 var input0 = "aba";
4382 var results = ["aba"];
4383 shouldBe('regex503.exec(input0);', 'results');
4384
4385 var regex504 = /(?:..)*?a/;
4386 var input0 = "aba";
4387 var results = ["a"];
4388 shouldBe('regex504.exec(input0);', 'results');
4389
4390 var regex505 = /^(?:b|a(?=(.)))*\1/;
4391 var input0 = "abc";
4392 var results = ["ab", undefined];
4393 shouldBe('regex505.exec(input0);', 'results');
4394
4395 var regex506 = /^(){3,5}/;
4396 var input0 = "abc";
4397 var results = ["", ""];
4398 shouldBe('regex506.exec(input0);', 'results');
4399
4400 var regex507 = /^(a+)*ax/;
4401 var input0 = "aax";
4402 var results = ["aax", "a"];
4403 shouldBe('regex507.exec(input0);', 'results');
4404
4405 var regex508 = /^((a|b)+)*ax/;
4406 var input0 = "aax";
4407 var results = ["aax", "a", "a"];
4408 shouldBe('regex508.exec(input0);', 'results');
4409
4410 var regex509 = /^((a|bc)+)*ax/;
4411 var input0 = "aax";
4412 var results = ["aax", "a", "a"];
4413 shouldBe('regex509.exec(input0);', 'results');
4414
4415 var regex510 = /(a|x)*ab/;
4416 var input0 = "cab";
4417 var results = ["ab", undefined];
4418 shouldBe('regex510.exec(input0);', 'results');
4419
4420 var regex511 = /(a)*ab/;
4421 var input0 = "cab";
4422 var results = ["ab", undefined];
4423 shouldBe('regex511.exec(input0);', 'results');
4424
4425 var regex512 = /(?:a)b/;
4426 var input0 = "ab";
4427 var results = ["ab"];
4428 shouldBe('regex512.exec(input0);', 'results');
4429
4430 var regex513 = /(a)b/;
4431 var input0 = "ab";
4432 var results = ["ab", "a"];
4433 shouldBe('regex513.exec(input0);', 'results');
4434
4435 var regex514 = /(?:a)b/i;
4436 var input0 = "Ab";
4437 var results = ["Ab"];
4438 shouldBe('regex514.exec(input0);', 'results');
4439
4440 var regex515 = /(a)b/i;
4441 var input0 = "Ab";
4442 var results = ["Ab", "A"];
4443 shouldBe('regex515.exec(input0);', 'results');
4444
4445 var regex516 = /(?:[aA])b/;
4446 // Failers
4447 var input0 = "cb";
4448 var results = null;
4449 shouldBe('regex516.exec(input0);', 'results');
4450 var input1 = "aB";
4451 var results = null;
4452 shouldBe('regex516.exec(input1);', 'results');
4453
4454 var regex517 = /(?:a)b/;
4455 var input0 = "ab";
4456 var results = ["ab"];
4457 shouldBe('regex517.exec(input0);', 'results');
4458
4459 var regex518 = /((?:a))b/;
4460 var input0 = "ab";
4461 var results = ["ab", "a"];
4462 shouldBe('regex518.exec(input0);', 'results');
4463
4464 var regex519 = /(?:a)b/i;
4465 var input0 = "Ab";
4466 var results = ["Ab"];
4467 shouldBe('regex519.exec(input0);', 'results');
4468
4469 var regex520 = /((?:a))b/i;
4470 var input0 = "Ab";
4471 var results = ["Ab", "A"];
4472 shouldBe('regex520.exec(input0);', 'results');
4473
4474 var regex521 = /(?:a)b/;
4475 // Failers
4476 var input0 = "aB";
4477 var results = null;
4478 shouldBe('regex521.exec(input0);', 'results');
4479 var input1 = "aB";
4480 var results = null;
4481 shouldBe('regex521.exec(input1);', 'results');
4482
4483 var regex522 = /(?:a)b/i;
4484 var input0 = "ab";
4485 var results = ["ab"];
4486 shouldBe('regex522.exec(input0);', 'results');
4487
4488 var regex523 = /(a)b/i;
4489 var input0 = "ab";
4490 var results = ["ab", "a"];
4491 shouldBe('regex523.exec(input0);', 'results');
4492
4493 var regex524 = /(?:a)b/i;
4494 var input0 = "aB";
4495 var results = ["aB"];
4496 shouldBe('regex524.exec(input0);', 'results');
4497
4498 var regex525 = /(a)b/i;
4499 var input0 = "aB";
4500 var results = ["aB", "a"];
4501 shouldBe('regex525.exec(input0);', 'results');
4502
4503 var regex526 = /(?:a)[bB]/;
4504 // Failers
4505 var input0 = "aB";
4506 var results = ["aB"];
4507 shouldBe('regex526.exec(input0);', 'results');
4508 var input1 = "Ab";
4509 var results = null;
4510 shouldBe('regex526.exec(input1);', 'results');
4511
4512 var regex527 = /(?:a)b/i;
4513 var input0 = "aB";
4514 var results = ["aB"];
4515 shouldBe('regex527.exec(input0);', 'results');
4516
4517 var regex528 = /(a)b/i;
4518 var input0 = "aB";
4519 var results = ["aB", "a"];
4520 shouldBe('regex528.exec(input0);', 'results');
4521
4522 var regex529 = /(?:a)[bB]/;
4523 // Failers
4524 var input0 = "Ab";
4525 var results = null;
4526 shouldBe('regex529.exec(input0);', 'results');
4527 var input1 = "AB";
4528 var results = null;
4529 shouldBe('regex529.exec(input1);', 'results');
4530
4531 var regex530 = /(?:a)b/;
4532 var input0 = "ab";
4533 var results = ["ab"];
4534 shouldBe('regex530.exec(input0);', 'results');
4535
4536 var regex531 = /((?:a))b/i;
4537 var input0 = "ab";
4538 var results = ["ab", "a"];
4539 shouldBe('regex531.exec(input0);', 'results');
4540
4541 var regex532 = /(?:a)b/i;
4542 var input0 = "aB";
4543 var results = ["aB"];
4544 shouldBe('regex532.exec(input0);', 'results');
4545
4546 var regex533 = /((?:a))b/i;
4547 var input0 = "aB";
4548 var results = ["aB", "a"];
4549 shouldBe('regex533.exec(input0);', 'results');
4550
4551 var regex534 = /(?:a)[bB]/;
4552 // Failers
4553 var input0 = "AB";
4554 var results = null;
4555 shouldBe('regex534.exec(input0);', 'results');
4556 var input1 = "Ab";
4557 var results = null;
4558 shouldBe('regex534.exec(input1);', 'results');
4559
4560 var regex535 = /(?:a)b/i;
4561 var input0 = "aB";
4562 var results = ["aB"];
4563 shouldBe('regex535.exec(input0);', 'results');
4564
4565 var regex536 = /((?:a))b/i;
4566 var input0 = "aB";
4567 var results = ["aB", "a"];
4568 shouldBe('regex536.exec(input0);', 'results');
4569
4570 var regex537 = /(?:a)[bB]/  ;
4571 // Failers
4572 var input0 = "Ab";
4573 var results = null;
4574 shouldBe('regex537.exec(input0);', 'results');
4575 var input1 = "AB";
4576 var results = null;
4577 shouldBe('regex537.exec(input1);', 'results');
4578
4579 var regex538 = /((?:a.))b/i;
4580 // Failers
4581 var input0 = "AB";
4582 var results = null;
4583 shouldBe('regex538.exec(input0);', 'results');
4584 var input1 = "a\nB";
4585 var results = null;
4586 shouldBe('regex538.exec(input1);', 'results');
4587
4588 var regex539 = /((?:a[\w\W]))b/i;
4589 var input0 = "a\nB";
4590 var results = ["a\x0aB", "a\x0a"];
4591 shouldBe('regex539.exec(input0);', 'results');
4592
4593 var regex540 = /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/;
4594 var input0 = "cabbbb";
4595 var results = ["cabbbb"];
4596 shouldBe('regex540.exec(input0);', 'results');
4597
4598 var regex541 = /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/;
4599 var input0 = "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
4600 var results = ["caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"];
4601 shouldBe('regex541.exec(input0);', 'results');
4602
4603 var regex542 = /(ab)\d\1/i;
4604 var input0 = "Ab4ab";
4605 var results = ["Ab4ab", "Ab"];
4606 shouldBe('regex542.exec(input0);', 'results');
4607 var input1 = "ab4Ab";
4608 var results = ["ab4Ab", "ab"];
4609 shouldBe('regex542.exec(input1);', 'results');
4610
4611 var regex543 = /foo\w*\d{4}baz/;
4612 var input0 = "foobar1234baz";
4613 var results = ["foobar1234baz"];
4614 shouldBe('regex543.exec(input0);', 'results');
4615
4616 var regex544 = /x(~~)*(?:(?:F)?)?/;
4617 var input0 = "x~~";
4618 var results = ["x~~", "~~"];
4619 shouldBe('regex544.exec(input0);', 'results');
4620
4621 var regex545 = /^a{3}c/;
4622 var input0 = "aaac";
4623 var results = ["aaac"];
4624 shouldBe('regex545.exec(input0);', 'results');
4625
4626 var regex550 = /^(?:a?b?)*$/;
4627 var input0 = "";
4628 var results = [""];
4629 shouldBe('regex550.exec(input0);', 'results');
4630 var input1 = "a";
4631 var results = ["a"];
4632 shouldBe('regex550.exec(input1);', 'results');
4633 var input2 = "ab";
4634 var results = ["ab"];
4635 shouldBe('regex550.exec(input2);', 'results');
4636 var input3 = "aaa";
4637 var results = ["aaa"];
4638 shouldBe('regex550.exec(input3);', 'results');
4639 // Failers
4640 var input4 = "dbcb";
4641 var results = null;
4642 shouldBe('regex550.exec(input4);', 'results');
4643 var input5 = "a--";
4644 var results = null;
4645 shouldBe('regex550.exec(input5);', 'results');
4646 var input6 = "aa--";
4647 var results = null;
4648 shouldBe('regex550.exec(input6);', 'results');
4649
4650 var regex551 = /(^a([\w\W]))(^b$)/m;
4651 var input0 = "a\nb\nc\n";
4652 var results = ["a\x0ab", "a\x0a", "\x0a", "b"];
4653 shouldBe('regex551.exec(input0);', 'results');
4654
4655 var regex552 = /(^b$)/m;
4656 var input0 = "a\nb\nc\n";
4657 var results = ["b", "b"];
4658 shouldBe('regex552.exec(input0);', 'results');
4659
4660 var regex553 = /^b/m;
4661 var input0 = "a\nb\n";
4662 var results = ["b"];
4663 shouldBe('regex553.exec(input0);', 'results');
4664
4665 var regex554 = /^(b)/m;
4666 var input0 = "a\nb\n";
4667 var results = ["b", "b"];
4668 shouldBe('regex554.exec(input0);', 'results');
4669
4670 var regex555 = /(^b)/m;
4671 var input0 = "a\nb\n";
4672 var results = ["b", "b"];
4673 shouldBe('regex555.exec(input0);', 'results');
4674
4675 var regex556 = /\n(^b)/m;
4676 var input0 = "a\nb\n";
4677 var results = ["\x0ab", "b"];
4678 shouldBe('regex556.exec(input0);', 'results');
4679
4680 var regex557 = /([\w\W])c(?!.)/m;
4681 var input0 = "a\nb\nc\n";
4682 var results = ["\x0ac", "\x0a"];
4683 shouldBe('regex557.exec(input0);', 'results');
4684 var input1 = "a\nb\nc\n";
4685 var results = ["\x0ac", "\x0a"];
4686 shouldBe('regex557.exec(input1);', 'results');
4687
4688 var regex558 = /(b[\w\W])c(?!.)/m;
4689 var input0 = "a\nb\nc\n";
4690 var results = ["b\x0ac", "b\x0a"];
4691 shouldBe('regex558.exec(input0);', 'results');
4692 var input1 = "a\nb\nc\n";
4693 var results = ["b\x0ac", "b\x0a"];
4694 shouldBe('regex558.exec(input1);', 'results');
4695
4696 var regex559 = /()^b/;
4697 // Failers
4698 var input0 = "a\nb\nc\n";
4699 var results = null;
4700 shouldBe('regex559.exec(input0);', 'results');
4701 var input1 = "a\nb\nc\n";
4702 var results = null;
4703 shouldBe('regex559.exec(input1);', 'results');
4704
4705 var regex560 = /(^b)/m;
4706 var input0 = "a\nb\nc\n";
4707 var results = ["b", "b"];
4708 shouldBe('regex560.exec(input0);', 'results');
4709
4710 var regex561 = /(?:b|a)/;
4711 var input0 = "a";
4712 var results = ["a"];
4713 shouldBe('regex561.exec(input0);', 'results');
4714
4715 var regex562 = /(x)?(?:a|b)/;
4716 var input0 = "xa";
4717 var results = ["xa", "x"];
4718 shouldBe('regex562.exec(input0);', 'results');
4719 var input1 = "a";
4720 var results = ["a", undefined];
4721 shouldBe('regex562.exec(input1);', 'results');
4722
4723 var regex563 = /(x)?(?:b|a)/;
4724 var input0 = "a";
4725 var results = ["a", undefined];
4726 shouldBe('regex563.exec(input0);', 'results');
4727
4728 var regex564 = /()?(?:b|a)/;
4729 var input0 = "a";
4730 var results = ["a", undefined];
4731 shouldBe('regex564.exec(input0);', 'results');
4732
4733 var regex565 = /()?(?:a|b)/;
4734 var input0 = "a";
4735 var results = ["a", undefined];
4736 shouldBe('regex565.exec(input0);', 'results');
4737
4738 var regex566 = /^(\()?blah(?:(\))?)$/;
4739 var input0 = "(blah)";
4740 var results = ["(blah)", "(", ")"];
4741 shouldBe('regex566.exec(input0);', 'results');
4742 var input1 = "blah";
4743 var results = ["blah", undefined, undefined];
4744 shouldBe('regex566.exec(input1);', 'results');
4745 var input2 = "blah)";
4746 var results = ["blah)", undefined, ")"];
4747 shouldBe('regex566.exec(input2);', 'results');
4748 var input3 = "(blah";
4749 var results = ["(blah", "(", undefined];
4750 shouldBe('regex566.exec(input3);', 'results');
4751 // Failers
4752 var input4 = "a";
4753 var results = null;
4754 shouldBe('regex566.exec(input4);', 'results');
4755
4756 var regex567 = /^(\(+)?blah(?:(\))?)$/;
4757 var input0 = "(blah)";
4758 var results = ["(blah)", "(", ")"];
4759 shouldBe('regex567.exec(input0);', 'results');
4760 var input1 = "blah";
4761 var results = ["blah", undefined, undefined];
4762 shouldBe('regex567.exec(input1);', 'results');
4763 var input2 = "blah)";
4764 var results = ["blah)", undefined, ")"];
4765 shouldBe('regex567.exec(input2);', 'results');
4766 var input3 = "(blah";
4767 var results = ["(blah", "(", undefined];
4768 shouldBe('regex567.exec(input3);', 'results');
4769
4770 var regex568 = /((?!a)b|a)/;
4771 var input0 = "a";
4772 var results = ["a", "a"];
4773 shouldBe('regex568.exec(input0);', 'results');
4774
4775 var regex569 = /((?=a)b|a)/;
4776 var input0 = "a";
4777 var results = ["a", "a"];
4778 shouldBe('regex569.exec(input0);', 'results');
4779 var input1 = "a";
4780 var results = ["a", "a"];
4781 shouldBe('regex569.exec(input1);', 'results');
4782
4783 var regex570 = /((?=a)a|b)/;
4784 var input0 = "a";
4785 var results = ["a", "a"];
4786 shouldBe('regex570.exec(input0);', 'results');
4787
4788 var regex571 = /(?=(a+?))(\1ab)/;
4789 var input0 = "aaab";
4790 var results = ["aab", "a", "aab"];
4791 shouldBe('regex571.exec(input0);', 'results');
4792
4793 var regex572 = /(\w+:)+/;
4794 var input0 = "one:";
4795 var results = ["one:", "one:"];
4796 shouldBe('regex572.exec(input0);', 'results');
4797
4798 var regex574 = /(?=(a+?))(\1ab)/;
4799 var input0 = "aaab";
4800 var results = ["aab", "a", "aab"];
4801 shouldBe('regex574.exec(input0);', 'results');
4802
4803 var regex575 = /^(?=(a+?))\1ab/;
4804 // Failers
4805 var input0 = "aaab";
4806 var results = null;
4807 shouldBe('regex575.exec(input0);', 'results');
4808 var input1 = "aaab";
4809 var results = null;
4810 shouldBe('regex575.exec(input1);', 'results');
4811
4812 var regex576 = /([\w:]+::)?(\w+)$/;
4813 var input0 = "abcd";
4814 var results = ["abcd", undefined, "abcd"];
4815 shouldBe('regex576.exec(input0);', 'results');
4816 var input1 = "xy:z:::abcd";
4817 var results = ["xy:z:::abcd", "xy:z:::", "abcd"];
4818 shouldBe('regex576.exec(input1);', 'results');
4819
4820 var regex577 = /^[^bcd]*(c+)/;
4821 var input0 = "aexycd";
4822 var results = ["aexyc", "c"];
4823 shouldBe('regex577.exec(input0);', 'results');
4824
4825 var regex578 = /(a*)b+/;
4826 var input0 = "caab";
4827 var results = ["aab", "aa"];
4828 shouldBe('regex578.exec(input0);', 'results');
4829
4830 var regex579 = /([\w:]+::)?(\w+)$/;
4831 var input0 = "abcd";
4832 var results = ["abcd", undefined, "abcd"];
4833 shouldBe('regex579.exec(input0);', 'results');
4834 var input1 = "xy:z:::abcd";
4835 var results = ["xy:z:::abcd", "xy:z:::", "abcd"];
4836 shouldBe('regex579.exec(input1);', 'results');
4837 // Failers
4838 var input2 = "abcd:";
4839 var results = null;
4840 shouldBe('regex579.exec(input2);', 'results');
4841 var input3 = "abcd:";
4842 var results = null;
4843 shouldBe('regex579.exec(input3);', 'results');
4844
4845 var regex580 = /^[^bcd]*(c+)/;
4846 var input0 = "aexycd";
4847 var results = ["aexyc", "c"];
4848 shouldBe('regex580.exec(input0);', 'results');
4849
4850 var regex582 = /([[:]+)/;
4851 var input0 = "a:[b]:";
4852 var results = [":[", ":["];
4853 shouldBe('regex582.exec(input0);', 'results');
4854
4855 var regex583 = /([[=]+)/;
4856 var input0 = "a=[b]=";
4857 var results = ["=[", "=["];
4858 shouldBe('regex583.exec(input0);', 'results');
4859
4860 var regex584 = /([[.]+)/;
4861 var input0 = "a.[b].";
4862 var results = [".[", ".["];
4863 shouldBe('regex584.exec(input0);', 'results');
4864
4865 var regex588 = /a$/;
4866 var input0 = "aaab";
4867 var results = null;
4868 shouldBe('regex588.exec(input0);', 'results');
4869 var input1 = "a\nb\n";
4870 var results = null;
4871 shouldBe('regex588.exec(input1);', 'results');
4872
4873 var regex589 = /b$/;
4874 var input0 = "a\nb";
4875 var results = ["b"];
4876 shouldBe('regex589.exec(input0);', 'results');
4877 // Failers
4878 var input1 = "a\nb\n";
4879 var results = null;
4880 shouldBe('regex589.exec(input1);', 'results');
4881
4882 var regex590 = /b$/m;
4883 var input0 = "a\nb";
4884 var results = ["b"];
4885 shouldBe('regex590.exec(input0);', 'results');
4886 var input1 = "a\nb\n";
4887 var results = ["b"];
4888 shouldBe('regex590.exec(input1);', 'results');
4889
4890 var regex600 = /<a[\s]+href[\s]*=[\s]*([\"\'])?(?:(.*?)\1|([^\s]+))/i;
4891 var input0 = "<a href=abcd xyz";
4892 var results = ["<a href=", undefined, "", undefined];
4893 shouldBe('regex600.exec(input0);', 'results');
4894 var input1 = "<a href=\"abcd xyz pqr\" cats";
4895 var results = ["<a href=\"abcd xyz pqr\"", "\"", "abcd xyz pqr", undefined];
4896 shouldBe('regex600.exec(input1);', 'results');
4897 var input2 = "<a href=\'abcd xyz pqr\' cats";
4898 var results = ["<a href=\'abcd xyz pqr\'", "\'", "abcd xyz pqr", undefined];
4899 shouldBe('regex600.exec(input2);', 'results');
4900
4901 var regex601 = /<a\s+href\s*=\s*(["'])?(?:(.*?)\1|(\S+))/i;
4902 var input0 = "<a href=abcd xyz";
4903 var results = ["<a href=", undefined, "", undefined];
4904 shouldBe('regex601.exec(input0);', 'results');
4905 var input1 = "<a href=\"abcd xyz pqr\" cats";
4906 var results = ["<a href=\"abcd xyz pqr\"", "\"", "abcd xyz pqr", undefined];
4907 shouldBe('regex601.exec(input1);', 'results');
4908 var input2 = "<a href       =       \'abcd xyz pqr\' cats";
4909 var results = ["<a href       =       \'abcd xyz pqr\'", "\'", "abcd xyz pqr", undefined];
4910 shouldBe('regex601.exec(input2);', 'results');
4911
4912 var regex603 = /((Z)+|A)*/;
4913 var input0 = "ZABCDEFG";
4914 var results = ["ZA", "A", undefined];
4915 shouldBe('regex603.exec(input0);', 'results');
4916
4917 var regex604 = /(Z()|A)*/;
4918 var input0 = "ZABCDEFG";
4919 var results = ["ZA", "A", undefined];
4920 shouldBe('regex604.exec(input0);', 'results');
4921
4922 var regex605 = /(Z(())|A)*/;
4923 var input0 = "ZABCDEFG";
4924 var results = ["ZA", "A", undefined, undefined];
4925 shouldBe('regex605.exec(input0);', 'results');
4926
4927 var regex608 = /^[a-\d]/;
4928 var input0 = "abcde";
4929 var results = ["a"];
4930 shouldBe('regex608.exec(input0);', 'results');
4931 var input1 = "-things";
4932 var results = ["-"];
4933 shouldBe('regex608.exec(input1);', 'results');
4934 var input2 = "0digit";
4935 var results = ["0"];
4936 shouldBe('regex608.exec(input2);', 'results');
4937 // Failers
4938 var input3 = "bcdef";
4939 var results = null;
4940 shouldBe('regex608.exec(input3);', 'results');
4941
4942 var regex609 = /^[\d-a]/;
4943 var input0 = "abcde";
4944 var results = ["a"];
4945 shouldBe('regex609.exec(input0);', 'results');
4946 var input1 = "-things";
4947 var results = ["-"];
4948 shouldBe('regex609.exec(input1);', 'results');
4949 var input2 = "0digit";
4950 var results = ["0"];
4951 shouldBe('regex609.exec(input2);', 'results');
4952 // Failers
4953 var input3 = "bcdef";
4954 var results = null;
4955 shouldBe('regex609.exec(input3);', 'results');
4956
4957 var regex610 = /[\s]+/;
4958 var input0 = "> \x09\x0a\x0c\x0d\x0b<";
4959 var results = [" \x09\x0a\x0c\x0d\x0b"];
4960 shouldBe('regex610.exec(input0);', 'results');
4961
4962 var regex611 = /[ ]+/;
4963 var input0 = "> \x09\x0a\x0c\x0d\x0b<";
4964 var results = [" "];
4965 shouldBe('regex611.exec(input0);', 'results');
4966
4967 var regex612 = /[\s]+/;
4968 var input0 = "> \x09\x0a\x0b\x0c\x0d\x20\xA0\u2028\u2029\uFEFF<";
4969 var results = [" \x09\x0a\x0b\x0c\x0d\x20\xA0\u2028\u2029\uFEFF"];
4970 shouldBe('regex612.exec(input0);', 'results');
4971
4972 var regex613 = /\s+/;
4973 var input0 = "> \x09\x0a\x0b\x0c\x0d\x20\xA0\u2028\u2029\uFEFF<";
4974 var results = [" \x09\x0a\x0b\x0c\x0d\x20\xA0\u2028\u2029\uFEFF"];
4975 shouldBe('regex613.exec(input0);', 'results');
4976
4977 var regex614 = /ab/;
4978 var input0 = "ab";
4979 var results = ["ab"];
4980 shouldBe('regex614.exec(input0);', 'results');
4981
4982 var regex616 = /(?!^)x/m;
4983 var input0 = "a\nxb\n";
4984 var results = null;
4985 shouldBe('regex616.exec(input0);', 'results');
4986
4987 var regex621 = /^abc/;
4988 var input0 = "abc";
4989 var results = ["abc"];
4990 shouldBe('regex621.exec(input0);', 'results');
4991 // Failers
4992 var input1 = "xyzabc";
4993 var results = null;
4994 shouldBe('regex621.exec(input1);', 'results');
4995
4996 var regex622 = /a(?:bc)d/;
4997 var input0 = "XabcdY";
4998 var results = ["abcd"];
4999 shouldBe('regex622.exec(input0);', 'results');
5000 // Failers
5001 var input1 = "Xa b c d Y";
5002 var results = null;
5003 shouldBe('regex622.exec(input1);', 'results');
5004
5005 var regex623 = /(xyz|abc)/;
5006 var input0 = "XabcY";
5007 var results = ["abc", "abc"];
5008 shouldBe('regex623.exec(input0);', 'results');
5009 var input1 = "AxyzB";
5010 var results = ["xyz", "xyz"];
5011 shouldBe('regex623.exec(input1);', 'results');
5012
5013 var regex624 = /ABC/i;
5014 var input0 = "XabCY";
5015 var results = ["abC"];
5016 shouldBe('regex624.exec(input0);', 'results');
5017
5018 var regex625 = /([aA][bB]C|D)E/;
5019 var input0 = "abCE";
5020 var results = ["abCE", "abC"];
5021 shouldBe('regex625.exec(input0);', 'results');
5022 var input1 = "DE";
5023 var results = ["DE", "D"];
5024 shouldBe('regex625.exec(input1);', 'results');
5025 // Failers
5026 var input2 = "abcE";
5027 var results = null;
5028 shouldBe('regex625.exec(input2);', 'results');
5029 var input3 = "abCe";
5030 var results = null;
5031 shouldBe('regex625.exec(input3);', 'results');
5032 var input4 = "dE";
5033 var results = null;
5034 shouldBe('regex625.exec(input4);', 'results');
5035 var input5 = "De";
5036 var results = null;
5037 shouldBe('regex625.exec(input5);', 'results');
5038
5039 var regex626 = /(.*)\d+\1/;
5040 var input0 = "abc123abc";
5041 var results = ["abc123abc", "abc"];
5042 shouldBe('regex626.exec(input0);', 'results');
5043 var input1 = "abc123bc";
5044 var results = ["bc123bc", "bc"];
5045 shouldBe('regex626.exec(input1);', 'results');
5046
5047 var regex627 = /(.*)\d+\1/;
5048 var input0 = "abc123abc";
5049 var results = ["abc123abc", "abc"];
5050 shouldBe('regex627.exec(input0);', 'results');
5051 var input1 = "abc123bc";
5052 var results = ["bc123bc", "bc"];
5053 shouldBe('regex627.exec(input1);', 'results');
5054
5055 var regex628 = /((.*))\d+\1/;
5056 var input0 = "abc123abc";
5057 var results = ["abc123abc", "abc", "abc"];
5058 shouldBe('regex628.exec(input0);', 'results');
5059 var input1 = "abc123bc";
5060 var results = ["bc123bc", "bc", "bc"];
5061 shouldBe('regex628.exec(input1);', 'results');
5062
5063 var regex630 = /[\z\C]/;
5064 var input0 = "z";
5065 var results = ["z"];
5066 shouldBe('regex630.exec(input0);', 'results');
5067 var input1 = "C";
5068 var results = ["C"];
5069 shouldBe('regex630.exec(input1);', 'results');
5070
5071 var regex631 = /\M/;
5072 var input0 = "M";
5073 var results = ["M"];
5074 shouldBe('regex631.exec(input0);', 'results');
5075
5076 var regex632 = /(a+)*b/;
5077 var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
5078 var results = null;
5079 shouldBe('regex632.exec(input0);', 'results');
5080
5081 var regex633 = /reg(?:ul(?:[a\xc3\xa4]|ae)r|ex)/i;
5082 var input0 = "REGular";
5083 var results = ["REGular"];
5084 shouldBe('regex633.exec(input0);', 'results');
5085 var input1 = "regulaer";
5086 var results = ["regulaer"];
5087 shouldBe('regex633.exec(input1);', 'results');
5088 var input2 = "Regex";
5089 var results = ["Regex"];
5090 shouldBe('regex633.exec(input2);', 'results');
5091 var input3 = "regul\xa4r";
5092 var results = ["regul\xa4r"];
5093 shouldBe('regex633.exec(input3);', 'results');
5094 // Failers
5095 var input4 = "regul\xc3\xa4r";
5096 var results = null;
5097 shouldBe('regex633.exec(input4);', 'results');
5098
5099 var regex634 = /\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4[\xc3\xa0-\xc3\xbf\xc3\x80-\xc3\x9f]+/;
5100 var input0 = "\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3";
5101 var results = ["\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3"];
5102 shouldBe('regex634.exec(input0);', 'results');
5103 var input1 = "\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\xbf";
5104 var results = ["\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\xbf"];
5105 shouldBe('regex634.exec(input1);', 'results');
5106 var input2 = "\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\x80";
5107 var results = ["\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\x80"];
5108 shouldBe('regex634.exec(input2);', 'results');
5109 var input3 = "\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\x9f";
5110 var results = ["\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\x9f"];
5111 shouldBe('regex634.exec(input3);', 'results');
5112
5113 var regex636 = /ab cd defg/;
5114 var input0 = "ab cd defg";
5115 var results = ["ab cd defg"];
5116 shouldBe('regex636.exec(input0);', 'results');
5117
5118 var regex637 = /ab cddefg/;
5119 var input0 = "ab cddefg";
5120 var results = ["ab cddefg"];
5121 shouldBe('regex637.exec(input0);', 'results');
5122 // Failers
5123 var input1 = "abcddefg";
5124 var results = null;
5125 shouldBe('regex637.exec(input1);', 'results');
5126
5127 var regex641 = /(?:(?:a|b)(X))+/;
5128 var input0 = "bXaX";
5129 var results = ["bXaX", "X"];
5130 shouldBe('regex641.exec(input0);', 'results');
5131
5132 var regex642 = /(?:(?:\1a|b)(X|Y))+/;
5133 var input0 = "bXXaYYaY";
5134 var results = ["bX", "X"];
5135 shouldBe('regex642.exec(input0);', 'results');
5136 var input1 = "bXYaXXaX";
5137 var results = ["bX", "X"];
5138 shouldBe('regex642.exec(input1);', 'results');
5139
5140 var regex643 = /()()()()()()()()()(?:(\10a|b)(X|Y))+/;
5141 var input0 = "bXXaYYaY";
5142 var results = ["bX", "", "", "", "", "", "", "", "", "", "b", "X"];
5143 shouldBe('regex643.exec(input0);', 'results');
5144
5145 var regex644 = /[[,abc,]+]/;
5146 var input0 = "abc]";
5147 var results = ["abc]"];
5148 shouldBe('regex644.exec(input0);', 'results');
5149 var input1 = "a,b]";
5150 var results = ["a,b]"];
5151 shouldBe('regex644.exec(input1);', 'results');
5152 var input2 = "[a,b,c]";
5153 var results = ["[a,b,c]"];
5154 shouldBe('regex644.exec(input2);', 'results');
5155
5156 var regex645 = /a*b*\w/;
5157 var input0 = "aaabbbb";
5158 var results = ["aaabbbb"];
5159 shouldBe('regex645.exec(input0);', 'results');
5160 var input1 = "aaaa";
5161 var results = ["aaaa"];
5162 shouldBe('regex645.exec(input1);', 'results');
5163 var input2 = "a";
5164 var results = ["a"];
5165 shouldBe('regex645.exec(input2);', 'results');
5166
5167 var regex646 = /a*b?\w/;
5168 var input0 = "aaabbbb";
5169 var results = ["aaabb"];
5170 shouldBe('regex646.exec(input0);', 'results');
5171 var input1 = "aaaa";
5172 var results = ["aaaa"];
5173 shouldBe('regex646.exec(input1);', 'results');
5174 var input2 = "a";
5175 var results = ["a"];
5176 shouldBe('regex646.exec(input2);', 'results');
5177
5178 var regex647 = /a*b{0,4}\w/;
5179 var input0 = "aaabbbb";
5180 var results = ["aaabbbb"];
5181 shouldBe('regex647.exec(input0);', 'results');
5182 var input1 = "aaaa";
5183 var results = ["aaaa"];
5184 shouldBe('regex647.exec(input1);', 'results');
5185 var input2 = "a";
5186 var results = ["a"];
5187 shouldBe('regex647.exec(input2);', 'results');
5188
5189 var regex648 = /a*b{0,}\w/;
5190 var input0 = "aaabbbb";
5191 var results = ["aaabbbb"];
5192 shouldBe('regex648.exec(input0);', 'results');
5193 var input1 = "aaaa";
5194 var results = ["aaaa"];
5195 shouldBe('regex648.exec(input1);', 'results');
5196 var input2 = "a";
5197 var results = ["a"];
5198 shouldBe('regex648.exec(input2);', 'results');
5199
5200 var regex649 = /a*\d*\w/;
5201 var input0 = "0a";
5202 var results = ["0a"];
5203 shouldBe('regex649.exec(input0);', 'results');
5204 var input1 = "a";
5205 var results = ["a"];
5206 shouldBe('regex649.exec(input1);', 'results');
5207
5208 var regex650 = /^\w+=.*(\\\n.*)+/;
5209 var input0 = "abc=xyz\\\npqr";
5210 var results = ["abc=xyz\\\npqr", "\\\npqr"];
5211 shouldBe('regex650.exec(input0);', 'results');
5212
5213 var regex651 = /(?=(\w+))\1:/;
5214 var input0 = "abcd:";
5215 var results = ["abcd:", "abcd"];
5216 shouldBe('regex651.exec(input0);', 'results');
5217
5218 var regex652 = /^(?=(\w+))\1:/;
5219 var input0 = "abcd:";
5220 var results = ["abcd:", "abcd"];
5221 shouldBe('regex652.exec(input0);', 'results');
5222
5223 var regex660 = /^(a()*)*/;
5224 var input0 = "aaaa";
5225 var results = ["aaaa", "a", undefined];
5226 shouldBe('regex660.exec(input0);', 'results');
5227
5228 var regex661 = /^(?:a(?:(?:))*)*/;
5229 var input0 = "aaaa";
5230 var results = ["aaaa"];
5231 shouldBe('regex661.exec(input0);', 'results');
5232
5233 var regex662 = /^(a()+)+/;
5234 var input0 = "aaaa";
5235 var results = ["aaaa", "a", ""];
5236 shouldBe('regex662.exec(input0);', 'results');
5237
5238 var regex663 = /^(?:a(?:(?:))+)+/;
5239 var input0 = "aaaa";
5240 var results = ["aaaa"];
5241 shouldBe('regex663.exec(input0);', 'results');
5242
5243 var regex664 = /(a){0,3}(?:b|(c|))*D/;
5244 var input0 = "abbD";
5245 var results = ["abbD", "a", undefined];
5246 shouldBe('regex664.exec(input0);', 'results');
5247 var input1 = "ccccD";
5248 var results = ["ccccD", undefined, "c"];
5249 shouldBe('regex664.exec(input1);', 'results');
5250 var input2 = "D";
5251 var results = ["D", undefined, undefined];
5252 shouldBe('regex664.exec(input2);', 'results');
5253
5254 var regex665 = /(a|)*\d/;
5255 var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
5256 var results = null;
5257 shouldBe('regex665.exec(input0);', 'results');
5258 var input1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4";
5259 var results = ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4", "a"];
5260 shouldBe('regex665.exec(input1);', 'results');
5261
5262 var regex667 = /(?:a|)*\d/;
5263 var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
5264 var results = null;
5265 shouldBe('regex667.exec(input0);', 'results');
5266 var input1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4";
5267 var results = ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"];
5268 shouldBe('regex667.exec(input1);', 'results');
5269
5270 var regex669 = /^(?![^\n]*\n$)/;
5271 var input0 = "abc";
5272 var results = [""];
5273 shouldBe('regex669.exec(input0);', 'results');
5274 var input1 = "abc\n";
5275 var results = null;
5276 shouldBe('regex669.exec(input1);', 'results');
5277
5278 var regex671 = /(.*(.)?)*/;
5279 var input0 = "abcd";
5280 var results = ["abcd", "abcd", undefined];
5281 shouldBe('regex671.exec(input0);', 'results');
5282
5283 var regex672 = /[[:abcd:xyz]]/;
5284 var input0 = "a]";
5285 var results = ["a]"];
5286 shouldBe('regex672.exec(input0);', 'results');
5287 var input1 = ":]";
5288 var results = [":]"];
5289 shouldBe('regex672.exec(input1);', 'results');
5290
5291 var regex673 = /[abc[:x\]pqr]/;
5292 var input0 = "a";
5293 var results = ["a"];
5294 shouldBe('regex673.exec(input0);', 'results');
5295 var input1 = "[";
5296 var results = ["["];
5297 shouldBe('regex673.exec(input1);', 'results');
5298 var input2 = ":";
5299 var results = [":"];
5300 shouldBe('regex673.exec(input2);', 'results');
5301 var input3 = "]";
5302 var results = ["]"];
5303 shouldBe('regex673.exec(input3);', 'results');
5304 var input4 = "p";
5305 var results = ["p"];
5306 shouldBe('regex673.exec(input4);', 'results');
5307
5308 var regex674 = /(a(b)*)*/;
5309 var input0 = "aba";
5310 var results = ["aba","a",undefined];
5311 shouldBe('regex674.exec(input0);', 'results');
5312
5313 var regex675 = /(a*)*/;
5314 var input0 = "ab";
5315 var results = ["a","a"];
5316 shouldBe('regex675.exec(input0);', 'results');
5317
5318 var regex676 = /([ab]*)*/;
5319 var input0 = "abab";
5320 var results = ["abab","abab"];
5321 shouldBe('regex676.exec(input0);', 'results');
5322
5323 // Global matches.
5324
5325 var regexGlobal0 = RegExp("", "g");
5326 var input0 = "abc";
5327 var results = [ "", "", "", "" ];
5328 shouldBe('input0.match(regexGlobal0);', 'results');
5329
5330 var regexGlobal1 = /a*/g;
5331 var input0 = "abbab";
5332 var results = [ "a", "", "", "a", "", "" ];
5333 shouldBe('input0.match(regexGlobal1);', 'results');
5334
5335 var regexGlobal2 = /\babc./g;
5336 var input0 = "abc:abc;xyzabc.";
5337 var results = [ "abc:", "abc;" ];
5338 shouldBe('input0.match(regexGlobal2);', 'results');
5339
5340 var regexGlobal3 = /abc./g;
5341 var input0 = "abc:abc;xyzabc.";
5342 var results = [ "abc:", "abc;", "abc." ];
5343 shouldBe('input0.match(regexGlobal3);', 'results');
5344
5345 var regexGlobal4 = /$/g;
5346 var input0 = "abc\n";
5347 var results = [ "" ];
5348 shouldBe('input0.match(regexGlobal4);', 'results');
5349
5350 var regexGlobal5 = /$/gm;
5351 var input0 = "abc\n";
5352 var results = [ "", "" ];
5353 shouldBe('input0.match(regexGlobal5);', 'results');
5354
5355 var regexGlobal6 = /^/g;
5356 var input0 = "a\nb\nc\n";
5357 var results = [ "" ];
5358 shouldBe('input0.match(regexGlobal6);', 'results');
5359 var input1 = "\\";
5360 var results = [ "" ];
5361 shouldBe('input1.match(regexGlobal6);', 'results');
5362
5363 var regexGlobal7 = /^/gm;
5364 var input0 = "a\nb\nc\n";
5365 var results = [ "", "", "", "" ];
5366 shouldBe('input0.match(regexGlobal7);', 'results');
5367 var input1 = "\\";
5368 var results = [ "" ];
5369 shouldBe('input1.match(regexGlobal7);', 'results');
5370
5371 var regexGlobal8 = /^(?=C)/g;
5372 // Failers
5373 var input0 = "A\nC\nC\nE\n";
5374 var results = null;
5375 shouldBe('input0.match(regexGlobal8);', 'results');
5376
5377 var regexGlobal9 = /^(?=C)/gm;
5378 var input0 = "A\nC\nC\nE\n";
5379 var results = [ "", "" ];
5380 shouldBe('input0.match(regexGlobal9);', 'results');
5381
5382 // DISABLED:
5383 // These tests use (?<) or (?>) constructs. These are not currently valid in ECMAScript,
5384 // but these tests may be useful if similar constructs are introduced in the future.
5385
5386 //var regex217 = /(?<!bar)foo/;
5387 //var input0 = "foo";
5388 //var results = ["foo"];
5389 //shouldBe('regex217.exec(input0);', 'results');
5390 //var input1 = "catfood";
5391 //var results = ["foo"];
5392 //shouldBe('regex217.exec(input1);', 'results');
5393 //var input2 = "arfootle";
5394 //var results = ["foo"];
5395 //shouldBe('regex217.exec(input2);', 'results');
5396 //var input3 = "rfoosh";
5397 //var results = ["foo"];
5398 //shouldBe('regex217.exec(input3);', 'results');
5399 //// Failers
5400 //var input4 = "barfoo";
5401 //var results = null;
5402 //shouldBe('regex217.exec(input4);', 'results');
5403 //var input5 = "towbarfoo";
5404 //var results = null;
5405 //shouldBe('regex217.exec(input5);', 'results');
5406 //
5407 //var regex218 = /\w{3}(?<!bar)foo/;
5408 //var input0 = "catfood";
5409 //var results = ["catfoo"];
5410 //shouldBe('regex218.exec(input0);', 'results');
5411 //// Failers
5412 //var input1 = "foo";
5413 //var results = null;
5414 //shouldBe('regex218.exec(input1);', 'results');
5415 //var input2 = "barfoo";
5416 //var results = null;
5417 //shouldBe('regex218.exec(input2);', 'results');
5418 //var input3 = "towbarfoo";
5419 //var results = null;
5420 //shouldBe('regex218.exec(input3);', 'results');
5421 //
5422 //var regex219 = /(?<=(foo)a)bar/;
5423 //var input0 = "fooabar";
5424 //var results = ["bar", "foo"];
5425 //shouldBe('regex219.exec(input0);', 'results');
5426 //// Failers
5427 //var input1 = "bar";
5428 //var results = null;
5429 //shouldBe('regex219.exec(input1);', 'results');
5430 //var input2 = "foobbar";
5431 //var results = null;
5432 //shouldBe('regex219.exec(input2);', 'results');
5433 //
5434 //var regex221 = /(?>.*\/)foo/;
5435 //var input0 = "/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/";
5436 //var results = null;
5437 //shouldBe('regex221.exec(input0);', 'results');
5438 //
5439 //var regex222 = /(?>.*\/)foo/;
5440 //var input0 = "/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo";
5441 //var results = ["/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo"];
5442 //shouldBe('regex222.exec(input0);', 'results');
5443 //
5444 //var regex223 = /(?>(\.\d\d[1-9]?))\d+/;
5445 //var input0 = "1.230003938";
5446 //var results = [".230003938", ".23"];
5447 //shouldBe('regex223.exec(input0);', 'results');
5448 //var input1 = "1.875000282";
5449 //var results = [".875000282", ".875"];
5450 //shouldBe('regex223.exec(input1);', 'results');
5451 //// Failers
5452 //var input2 = "1.235";
5453 //var results = null;
5454 //shouldBe('regex223.exec(input2);', 'results');
5455 //
5456 //var regex224 = /^((?>\w+)|(?>\s+))*$/;
5457 //var input0 = "now is the time for all good men to come to the aid of the party";
5458 //var results = ["now is the time for all good men to come to the aid of the party", "party"];
5459 //shouldBe('regex224.exec(input0);', 'results');
5460 //// Failers
5461 //var input1 = "this is not a line with only words and spaces!";
5462 //var results = null;
5463 //shouldBe('regex224.exec(input1);', 'results');
5464 //
5465 //var regex226 = /((?>\d+))(\w)/;
5466 //var input0 = "12345a";
5467 //var results = ["12345a", "12345", "a"];
5468 //shouldBe('regex226.exec(input0);', 'results');
5469 //// Failers
5470 //var input1 = "12345+";
5471 //var results = null;
5472 //shouldBe('regex226.exec(input1);', 'results');
5473 //
5474 //var regex227 = /(?>a+)b/;
5475 //var input0 = "aaab";
5476 //var results = ["aaab"];
5477 //shouldBe('regex227.exec(input0);', 'results');
5478 //
5479 //var regex228 = /((?>a+)b)/;
5480 //var input0 = "aaab";
5481 //var results = ["aaab", "aaab"];
5482 //shouldBe('regex228.exec(input0);', 'results');
5483 //
5484 //var regex229 = /(?>(a+))b/;
5485 //var input0 = "aaab";
5486 //var results = ["aaab", "aaa"];
5487 //shouldBe('regex229.exec(input0);', 'results');
5488 //
5489 //var regex230 = /(?>b)+/;
5490 //var input0 = "aaabbbccc";
5491 //var results = ["bbb"];
5492 //shouldBe('regex230.exec(input0);', 'results');
5493 //
5494 //var regex231 = /(?>a+|b+|c+)*c/;
5495 //var input0 = "aaabbbbccccd";
5496 //var results = ["aaabbbbc"];
5497 //shouldBe('regex231.exec(input0);', 'results');
5498 //
5499 //var regex232 = /((?>[^()]+)|\([^()]*\))+/;
5500 //var input0 = "((abc(ade)ufh()()x";
5501 //var results = ["abc(ade)ufh()()x", "x"];
5502 //shouldBe('regex232.exec(input0);', 'results');
5503 //
5504 //var regex233 = /\(((?>[^()]+)|\([^()]+\))+\)/ ;
5505 //var input0 = "(abc)";
5506 //var results = ["(abc)", "abc"];
5507 //shouldBe('regex233.exec(input0);', 'results');
5508 //var input1 = "(abc(def)xyz)";
5509 //var results = ["(abc(def)xyz)", "xyz"];
5510 //shouldBe('regex233.exec(input1);', 'results');
5511 //// Failers
5512 //var input2 = "((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
5513 //var results = null;
5514 //shouldBe('regex233.exec(input2);', 'results');
5515 //
5516 //var regex245 = /(?<=ab)(\w\w)c/;
5517 //var input0 = "abxxc";
5518 //var results = ["xxc", "xx"];
5519 //shouldBe('regex245.exec(input0);', 'results');
5520 //var input1 = "aBxxc";
5521 //var results = ["xxc", "xx"];
5522 //shouldBe('regex245.exec(input1);', 'results');
5523 //// Failers
5524 //var input2 = "Abxxc";
5525 //var results = null;
5526 //shouldBe('regex245.exec(input2);', 'results');
5527 //var input3 = "ABxxc";
5528 //var results = null;
5529 //shouldBe('regex245.exec(input3);', 'results');
5530 //var input4 = "abxxC";
5531 //var results = null;
5532 //shouldBe('regex245.exec(input4);', 'results');
5533 //
5534 //var regex250 = /(?(?<=foo)bar|cat)/;
5535 //var input0 = "foobar";
5536 //var results = ["bar"];
5537 //shouldBe('regex250.exec(input0);', 'results');
5538 //var input1 = "cat";
5539 //var results = ["cat"];
5540 //shouldBe('regex250.exec(input1);', 'results');
5541 //var input2 = "fcat";
5542 //var results = ["cat"];
5543 //shouldBe('regex250.exec(input2);', 'results');
5544 //var input3 = "focat";
5545 //var results = ["cat"];
5546 //shouldBe('regex250.exec(input3);', 'results');
5547 //// Failers
5548 //var input4 = "foocat";
5549 //var results = null;
5550 //shouldBe('regex250.exec(input4);', 'results');
5551 //
5552 //var regex251 = /(?(?<!foo)cat|bar)/;
5553 //var input0 = "foobar";
5554 //var results = ["bar"];
5555 //shouldBe('regex251.exec(input0);', 'results');
5556 //var input1 = "cat";
5557 //var results = ["cat"];
5558 //shouldBe('regex251.exec(input1);', 'results');
5559 //var input2 = "fcat";
5560 //var results = ["cat"];
5561 //shouldBe('regex251.exec(input2);', 'results');
5562 //var input3 = "focat";
5563 //var results = ["cat"];
5564 //shouldBe('regex251.exec(input3);', 'results');
5565 //// Failers
5566 //var input4 = "foocat";
5567 //var results = null;
5568 //shouldBe('regex251.exec(input4);', 'results');
5569 //
5570 //var regex256 = /(?>a*)*/;
5571 //var input0 = "a";
5572 //var results = ["a"];
5573 //shouldBe('regex256.exec(input0);', 'results');
5574 //var input1 = "aa";
5575 //var results = ["aa"];
5576 //shouldBe('regex256.exec(input1);', 'results');
5577 //var input2 = "aaaa";
5578 //var results = ["aaaa"];
5579 //shouldBe('regex256.exec(input2);', 'results');
5580 //
5581 //var regex266 = /(?>a*)*/;
5582 //var input0 = "a";
5583 //var results = ["a"];
5584 //shouldBe('regex266.exec(input0);', 'results');
5585 //var input1 = "aaabcde";
5586 //var results = ["aaa"];
5587 //shouldBe('regex266.exec(input1);', 'results');
5588 //
5589 //var regex267 = /((?>a*))*/;
5590 //var input0 = "aaaaa";
5591 //var results = ["aaaaa", ""];
5592 //shouldBe('regex267.exec(input0);', 'results');
5593 //var input1 = "aabbaa";
5594 //var results = ["aa", ""];
5595 //shouldBe('regex267.exec(input1);', 'results');
5596 //
5597 //var regex268 = /((?>a*?))*/;
5598 //var input0 = "aaaaa";
5599 //var results = ["", ""];
5600 //shouldBe('regex268.exec(input0);', 'results');
5601 //var input1 = "aabbaa";
5602 //var results = ["", ""];
5603 //shouldBe('regex268.exec(input1);', 'results');
5604 //
5605 //var regex270 = /(?<=(foo))bar\1/;
5606 //var input0 = "foobarfoo";
5607 //var results = ["barfoo", "foo"];
5608 //shouldBe('regex270.exec(input0);', 'results');
5609 //var input1 = "foobarfootling";
5610 //var results = ["barfoo", "foo"];
5611 //shouldBe('regex270.exec(input1);', 'results');
5612 //// Failers
5613 //var input2 = "foobar";
5614 //var results = null;
5615 //shouldBe('regex270.exec(input2);', 'results');
5616 //var input3 = "barfoo";
5617 //var results = null;
5618 //shouldBe('regex270.exec(input3);', 'results');
5619 //
5620 //var regex275 = /(?<=foo\n)^bar/m;
5621 //var input0 = "foo\nbar";
5622 //var results = ["bar"];
5623 //shouldBe('regex275.exec(input0);', 'results');
5624 //// Failers
5625 //var input1 = "bar";
5626 //var results = null;
5627 //shouldBe('regex275.exec(input1);', 'results');
5628 //var input2 = "baz\nbar";
5629 //var results = null;
5630 //shouldBe('regex275.exec(input2);', 'results');
5631 //
5632 //var regex276 = /(?<=(?<!foo)bar)baz/;
5633 //var input0 = "barbaz";
5634 //var results = ["baz"];
5635 //shouldBe('regex276.exec(input0);', 'results');
5636 //var input1 = "barbarbaz";
5637 //var results = ["baz"];
5638 //shouldBe('regex276.exec(input1);', 'results');
5639 //var input2 = "koobarbaz";
5640 //var results = ["baz"];
5641 //shouldBe('regex276.exec(input2);', 'results');
5642 //// Failers
5643 //var input3 = "baz";
5644 //var results = null;
5645 //shouldBe('regex276.exec(input3);', 'results');
5646 //var input4 = "foobarbaz";
5647 //var results = null;
5648 //shouldBe('regex276.exec(input4);', 'results');
5649 //
5650 //var regex501 = /(?<=a)b/;
5651 //var input0 = "ab";
5652 //var results = ["b"];
5653 //shouldBe('regex501.exec(input0);', 'results');
5654 //// Failers
5655 //var input1 = "cb";
5656 //var results = null;
5657 //shouldBe('regex501.exec(input1);', 'results');
5658 //var input2 = "b";
5659 //var results = null;
5660 //shouldBe('regex501.exec(input2);', 'results');
5661 //
5662 //var regex502 = /(?<!c)b/;
5663 //var input0 = "ab";
5664 //var results = ["b"];
5665 //shouldBe('regex502.exec(input0);', 'results');
5666 //var input1 = "b";
5667 //var results = ["b"];
5668 //shouldBe('regex502.exec(input1);', 'results');
5669 //var input2 = "b";
5670 //var results = ["b"];
5671 //shouldBe('regex502.exec(input2);', 'results');
5672 //
5673 //var regex546 = /(?<![cd])b/;
5674 //// Failers
5675 //var input0 = "B\nB";
5676 //var results = null;
5677 //shouldBe('regex546.exec(input0);', 'results');
5678 //var input1 = "dbcb";
5679 //var results = null;
5680 //shouldBe('regex546.exec(input1);', 'results');
5681 //
5682 //var regex547 = /(?<![cd])[ab]/;
5683 //var input0 = "dbaacb";
5684 //var results = ["a"];
5685 //shouldBe('regex547.exec(input0);', 'results');
5686 //
5687 //var regex548 = /(?<!(c|d))[ab]/;
5688 //var input0 = "dbaacb";
5689 //var results = ["a"];
5690 //shouldBe('regex548.exec(input0);', 'results');
5691 //
5692 //var regex549 = /(?<!cd)[ab]/;
5693 //var input0 = "cdaccb";
5694 //var results = ["b"];
5695 //shouldBe('regex549.exec(input0);', 'results');
5696 //
5697 //var regex573 = /$(?<=^(a))/;
5698 //var input0 = "a";
5699 //var results = ["", "a"];
5700 //shouldBe('regex573.exec(input0);', 'results');
5701 //
5702 //var regex581 = /(?>a+)b/;
5703 //var input0 = "aaab";
5704 //var results = ["aaab"];
5705 //shouldBe('regex581.exec(input0);', 'results');
5706 //
5707 //var regex585 = /((?>a+)b)/;
5708 //var input0 = "aaab";
5709 //var results = ["aaab", "aaab"];
5710 //shouldBe('regex585.exec(input0);', 'results');
5711 //
5712 //var regex586 = /(?>(a+))b/;
5713 //var input0 = "aaab";
5714 //var results = ["aaab", "aaa"];
5715 //shouldBe('regex586.exec(input0);', 'results');
5716 //
5717 //var regex587 = /((?>[^()]+)|\([^()]*\))+/;
5718 //var input0 = "((abc(ade)ufh()()x";
5719 //var results = ["abc(ade)ufh()()x", "x"];
5720 //shouldBe('regex587.exec(input0);', 'results');
5721 //
5722 //var regex592 = /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/;
5723 //var input0 = "a";
5724 //var results = ["a", ""];
5725 //shouldBe('regex592.exec(input0);', 'results');
5726 //var input1 = "abc";
5727 //var results = ["abc", ""];
5728 //shouldBe('regex592.exec(input1);', 'results');
5729 //var input2 = "a-b";
5730 //var results = ["a-b", ""];
5731 //shouldBe('regex592.exec(input2);', 'results');
5732 //var input3 = "0-9";
5733 //var results = ["0-9", ""];
5734 //shouldBe('regex592.exec(input3);', 'results');
5735 //var input4 = "a.b";
5736 //var results = ["a.b", ""];
5737 //shouldBe('regex592.exec(input4);', 'results');
5738 //var input5 = "5.6.7";
5739 //var results = ["5.6.7", ""];
5740 //shouldBe('regex592.exec(input5);', 'results');
5741 //var input6 = "the.quick.brown.fox";
5742 //var results = ["the.quick.brown.fox", ""];
5743 //shouldBe('regex592.exec(input6);', 'results');
5744 //var input7 = "a100.b200.300c";
5745 //var results = ["a100.b200.300c", ""];
5746 //shouldBe('regex592.exec(input7);', 'results');
5747 //var input8 = "12-ab.1245";
5748 //var results = ["12-ab.1245", ""];
5749 //shouldBe('regex592.exec(input8);', 'results');
5750 //// Failers
5751 //var input9 = "\";
5752 //var results = null;
5753 //shouldBe('regex592.exec(input9);', 'results');
5754 //var input10 = ".a";
5755 //var results = null;
5756 //shouldBe('regex592.exec(input10);', 'results');
5757 //var input11 = "-a";
5758 //var results = null;
5759 //shouldBe('regex592.exec(input11);', 'results');
5760 //var input12 = "a-";
5761 //var results = null;
5762 //shouldBe('regex592.exec(input12);', 'results');
5763 //var input13 = "a.";
5764 //var results = null;
5765 //shouldBe('regex592.exec(input13);', 'results');
5766 //var input14 = "a_b";
5767 //var results = null;
5768 //shouldBe('regex592.exec(input14);', 'results');
5769 //var input15 = "a.-";
5770 //var results = null;
5771 //shouldBe('regex592.exec(input15);', 'results');
5772 //var input16 = "a..";
5773 //var results = null;
5774 //shouldBe('regex592.exec(input16);', 'results');
5775 //var input17 = "ab..bc";
5776 //var results = null;
5777 //shouldBe('regex592.exec(input17);', 'results');
5778 //var input18 = "the.quick.brown.fox-";
5779 //var results = null;
5780 //shouldBe('regex592.exec(input18);', 'results');
5781 //var input19 = "the.quick.brown.fox.";
5782 //var results = null;
5783 //shouldBe('regex592.exec(input19);', 'results');
5784 //var input20 = "the.quick.brown.fox_";
5785 //var results = null;
5786 //shouldBe('regex592.exec(input20);', 'results');
5787 //var input21 = "the.quick.brown.fox+";
5788 //var results = null;
5789 //shouldBe('regex592.exec(input21);', 'results');
5790 //
5791 //var regex593 = /(?>.*)(?<=(abcd|wxyz))/;
5792 //var input0 = "alphabetabcd";
5793 //var results = ["alphabetabcd", "abcd"];
5794 //shouldBe('regex593.exec(input0);', 'results');
5795 //var input1 = "endingwxyz";
5796 //var results = ["endingwxyz", "wxyz"];
5797 //shouldBe('regex593.exec(input1);', 'results');
5798 //// Failers
5799 //var input2 = "a rather long string that doesn't end with one of them";
5800 //var results = null;
5801 //shouldBe('regex593.exec(input2);', 'results');
5802 //
5803 //var regex594 = /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/;
5804 //var input0 = "word cat dog elephant mussel cow horse canary baboon snake shark otherword";
5805 //var results = ["word cat dog elephant mussel cow horse canary baboon snake shark otherword"];
5806 //shouldBe('regex594.exec(input0);', 'results');
5807 //var input1 = "word cat dog elephant mussel cow horse canary baboon snake shark";
5808 //var results = null;
5809 //shouldBe('regex594.exec(input1);', 'results');
5810 //
5811 //var regex595 = /word (?>[a-zA-Z0-9]+ ){0,30}otherword/;
5812 //var input0 = "word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope";
5813 //var results = null;
5814 //shouldBe('regex595.exec(input0);', 'results');
5815 //
5816 //var regex596 = /(?<=\d{3}(?!999))foo/;
5817 //var input0 = "999foo";
5818 //var results = ["foo"];
5819 //shouldBe('regex596.exec(input0);', 'results');
5820 //var input1 = "123999foo";
5821 //var results = ["foo"];
5822 //shouldBe('regex596.exec(input1);', 'results');
5823 //// Failers
5824 //var input2 = "123abcfoo";
5825 //var results = null;
5826 //shouldBe('regex596.exec(input2);', 'results');
5827 //
5828 //var regex597 = /(?<=(?!...999)\d{3})foo/;
5829 //var input0 = "999foo";
5830 //var results = ["foo"];
5831 //shouldBe('regex597.exec(input0);', 'results');
5832 //var input1 = "123999foo";
5833 //var results = ["foo"];
5834 //shouldBe('regex597.exec(input1);', 'results');
5835 //// Failers
5836 //var input2 = "123abcfoo";
5837 //var results = null;
5838 //shouldBe('regex597.exec(input2);', 'results');
5839 //
5840 //var regex598 = /(?<=\d{3}(?!999)...)foo/;
5841 //var input0 = "123abcfoo";
5842 //var results = ["foo"];
5843 //shouldBe('regex598.exec(input0);', 'results');
5844 //var input1 = "123456foo";
5845 //var results = ["foo"];
5846 //shouldBe('regex598.exec(input1);', 'results');
5847 //// Failers
5848 //var input2 = "123999foo";
5849 //var results = null;
5850 //shouldBe('regex598.exec(input2);', 'results');
5851 //
5852 //var regex599 = /(?<=\d{3}...)(?<!999)foo/;
5853 //var input0 = "123abcfoo";
5854 //var results = ["foo"];
5855 //shouldBe('regex599.exec(input0);', 'results');
5856 //var input1 = "123456foo";
5857 //var results = ["foo"];
5858 //shouldBe('regex599.exec(input1);', 'results');
5859 //// Failers
5860 //var input2 = "123999foo";
5861 //var results = null;
5862 //shouldBe('regex599.exec(input2);', 'results');
5863 //
5864 //var regex602 = /<a\s+href(?>\s*)=(?>\s*)(["'])?(?(1) (.*?)\1 | (\S+))/i;
5865 //var input0 = "<a href=abcd xyz";
5866 //var results = ["<a href=abcd", undefined, undefined, "abcd"];
5867 //shouldBe('regex602.exec(input0);', 'results');
5868 //var input1 = "<a href=\"abcd xyz pqr\" cats";
5869 //var results = ["<a href=\"abcd xyz pqr\"", "\"", "abcd xyz pqr"];
5870 //shouldBe('regex602.exec(input1);', 'results');
5871 //var input2 = "<a href       =       \'abcd xyz pqr\' cats";
5872 //var results = ["<a href       =       \'abcd xyz pqr\'", "\'", "abcd xyz pqr"];
5873 //shouldBe('regex602.exec(input2);', 'results');
5874 //
5875 //var regex606 = /((?>Z)+|A)*/;
5876 //var input0 = "ZABCDEFG";
5877 //var results = ["ZA", "A"];
5878 //shouldBe('regex606.exec(input0);', 'results');
5879 //
5880 //var regex607 = /((?>)+|A)*/;
5881 //var input0 = "ZABCDEFG";
5882 //var results = ["", ""];
5883 //shouldBe('regex607.exec(input0);', 'results');
5884 //
5885 //var regex635 = /(?<=Z)X./;
5886 //var input0 = "\x84XAZXB";
5887 //var results = ["XB"];
5888 //shouldBe('regex635.exec(input0);', 'results');
5889 //
5890 //var regex638 = /(?<![^f]oo)(bar)/;
5891 //var input0 = "foobarX";
5892 //var results = ["bar", "bar"];
5893 //shouldBe('regex638.exec(input0);', 'results');
5894 //// Failers
5895 //var input1 = "boobarX";
5896 //var results = null;
5897 //shouldBe('regex638.exec(input1);', 'results');
5898 //
5899 //var regex639 = /(?<![^f])X/;
5900 //var input0 = "offX";
5901 //var results = ["X"];
5902 //shouldBe('regex639.exec(input0);', 'results');
5903 //// Failers
5904 //var input1 = "onyX";
5905 //var results = null;
5906 //shouldBe('regex639.exec(input1);', 'results');
5907 //
5908 //var regex640 = /(?<=[^f])X/;
5909 //var input0 = "onyX";
5910 //var results = ["X"];
5911 //shouldBe('regex640.exec(input0);', 'results');
5912 //// Failers
5913 //var input1 = "offX";
5914 //var results = null;
5915 //shouldBe('regex640.exec(input1);', 'results');
5916 //
5917 //var regex666 = /(?>a|)*\d/;
5918 //var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
5919 //var results = null;
5920 //shouldBe('regex666.exec(input0);', 'results');
5921 //var input1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4";
5922 //var results = ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"];
5923 //shouldBe('regex666.exec(input1);', 'results');
5924 //
5925 //var regex668 = /^(?>.*)(?<!\n)/;
5926 //var input0 = "abc";
5927 //var results = ["abc"];
5928 //shouldBe('regex668.exec(input0);', 'results');
5929 //var input1 = "abc\n";
5930 //var results = null;
5931 //shouldBe('regex668.exec(input1);', 'results');
5932 //
5933 //var regex670 = /\z(?<!\n)/;
5934 //var input0 = "abc";
5935 //var results = [""];
5936 //shouldBe('regex670.exec(input0);', 'results');
5937 //var input1 = "abc\n";
5938 //var results = null;
5939 //shouldBe('regex670.exec(input1);', 'results');
5940
5941 // DISABLED:
5942 // These tests use \Q and \E tokens. These are not currently valid in ECMAScript,
5943 // but these tests may be useful if similar constructs are introduced in the future.
5944
5945 //var regex617 = /abc\Qabc\Eabc/;
5946 //var input0 = "abcabcabc";
5947 //var results = ["abcabcabc"];
5948 //shouldBe('regex617.exec(input0);', 'results');
5949 //
5950 //var regex618 = /abc\Q(*+|\Eabc/;
5951 //var input0 = "abc(*+|abc";
5952 //var results = ["abc(*+|abc"];
5953 //shouldBe('regex618.exec(input0);', 'results');
5954 //
5955 //var regex619 = /\Qabc\$xyz\E/;
5956 //var input0 = "abc\\\$xyz";
5957 //var results = ["abc\\$xyz"];
5958 //shouldBe('regex619.exec(input0);', 'results');
5959 //
5960 //var regex620 = /\Qabc\E\$\Qxyz\E/;
5961 //var input0 = "abc\$xyz";
5962 //var results = ["abc$xyz"];
5963 //shouldBe('regex620.exec(input0);', 'results');
5964 //
5965 //var regex629 = /[z\Qa-d]\E]/;
5966 //var input0 = "z";
5967 //var results = ["z"];
5968 //shouldBe('regex629.exec(input0);', 'results');
5969 //var input1 = "a";
5970 //var results = ["a"];
5971 //shouldBe('regex629.exec(input1);', 'results');
5972 //var input2 = "-";
5973 //var results = ["-"];
5974 //shouldBe('regex629.exec(input2);', 'results');
5975 //var input3 = "d";
5976 //var results = ["d"];
5977 //shouldBe('regex629.exec(input3);', 'results');
5978 //var input4 = "]";
5979 //var results = ["]"];
5980 //shouldBe('regex629.exec(input4);', 'results');
5981 //// Failers
5982 //var input5 = "b";
5983 //var results = null;
5984 //shouldBe('regex629.exec(input5);', 'results');
5985 //
5986 //var regex653 = /^\Eabc/;
5987 //var input0 = "abc";
5988 //var results = ["abc"];
5989 //shouldBe('regex653.exec(input0);', 'results');
5990 //
5991 //var regex654 = /^[\Eabc]/;
5992 //var input0 = "a";
5993 //var results = ["a"];
5994 //shouldBe('regex654.exec(input0);', 'results');
5995 //// Failers
5996 //var input1 = "E";
5997 //var results = null;
5998 //shouldBe('regex654.exec(input1);', 'results');
5999 //
6000 //var regex655 = /^[a-\Ec]/;
6001 //var input0 = "b";
6002 //var results = ["b"];
6003 //shouldBe('regex655.exec(input0);', 'results');
6004 //// Failers
6005 //var input1 = "-";
6006 //var results = null;
6007 //shouldBe('regex655.exec(input1);', 'results');
6008 //var input2 = "E";
6009 //var results = null;
6010 //shouldBe('regex655.exec(input2);', 'results');
6011 //
6012 //var regex656 = /^[a\E\E-\Ec]/;
6013 //var input0 = "b";
6014 //var results = ["b"];
6015 //shouldBe('regex656.exec(input0);', 'results');
6016 //// Failers
6017 //var input1 = "-";
6018 //var results = null;
6019 //shouldBe('regex656.exec(input1);', 'results');
6020 //var input2 = "E";
6021 //var results = null;
6022 //shouldBe('regex656.exec(input2);', 'results');
6023 //
6024 //var regex657 = /^[\E\Qa\E-\Qz\E]+/;
6025 //var input0 = "b";
6026 //var results = ["b"];
6027 //shouldBe('regex657.exec(input0);', 'results');
6028 //// Failers
6029 //var input1 = "-";
6030 //var results = null;
6031 //shouldBe('regex657.exec(input1);', 'results');
6032 //
6033 //var regex658 = /^[a\Q]bc\E]/;
6034 //var input0 = "a";
6035 //var results = ["a"];
6036 //shouldBe('regex658.exec(input0);', 'results');
6037 //var input1 = "]";
6038 //var results = ["]"];
6039 //shouldBe('regex658.exec(input1);', 'results');
6040 //var input2 = "c";
6041 //var results = ["c"];
6042 //shouldBe('regex658.exec(input2);', 'results');
6043 //
6044 //var regex659 = /^[a-\Q\E]/;
6045 //var input0 = "a";
6046 //var results = ["a"];
6047 //shouldBe('regex659.exec(input0);', 'results');
6048 //var input1 = "-";
6049 //var results = ["-"];
6050 //shouldBe('regex659.exec(input1);', 'results');
6051
6052 // DISABLED:
6053 // These tests use \A and \z tokens. These are not currently valid in ECMAScript,
6054 // but these tests may be useful if similar constructs are introduced in the future.
6055
6056 //var regex591 = /b\z/;
6057 //var input0 = "a\nb";
6058 //var results = ["b"];
6059 //shouldBe('regex591.exec(input0);', 'results');
6060 //
6061 //var regex615 = /(?!\A)x/m;
6062 //var input0 = "a\nxb\n";
6063 //var results = ["x"];
6064 //shouldBe('regex615.exec(input0);', 'results');