[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da
barraclough at apple.com
barraclough at apple.com
Wed Dec 22 17:50:01 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 3eeac765fe8b527dda3fa819ba707a158d9bda08
Author: barraclough at apple.com <barraclough at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Dec 1 01:52:26 2010 +0000
LayoutTests/fast/regex currently contains a number of test cases ported from PCRE's test suites.
There are two key problems with these tests:
* They use their own harness, and cannot be run from jsc without building all of WebKit.
* They expect PCRE expression syntax, including extended syntax, backwards assertions, etc.
Rubber stamped by Oliver Hunt.
Rewrite all tests to comply to ECMA compatible syntax
(ish - we support octal escapes), and use the normal 'shouldBe' test style.
* fast/js/resources/standalone-pre.js:
(areArraysEqual):
Fixed bug, where expected is an array we call areArraysEqual,
this should first check that actual is an array.
* fast/regex/pcre-test-1-expected.txt: Added.
* fast/regex/pcre-test-1.html: Added.
* fast/regex/pcre-test-4-expected.txt: Added.
* fast/regex/pcre-test-4.html: Added.
* fast/regex/script-tests/pcre-test-1.js: Added.
* fast/regex/script-tests/pcre-test-4.js: Added.
Added new version of PCRE tests.
* fast/regex/pcre-test-runner.js: Removed.
* fast/regex/test1-expected.txt: Removed.
* fast/regex/test1.html: Removed.
* fast/regex/test4-expected.txt: Removed.
* fast/regex/test4.html: Removed.
* fast/regex/testinput1: Removed.
* fast/regex/testinput4: Removed.
* fast/regex/testoutput1: Removed.
* fast/regex/testoutput4: Removed.
Removed old version of PCRE tests.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72990 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 04db57d..01f2632 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,39 @@
+2010-11-30 Gavin Barraclough <barraclough at apple.com>
+
+ Rubber stamped by Oliver Hunt.
+
+ LayoutTests/fast/regex currently contains a number of test cases ported from PCRE's test suites.
+ There are two key problems with these tests:
+ * They use their own harness, and cannot be run from jsc without building all of WebKit.
+ * They expect PCRE expression syntax, including extended syntax, backwards assertions, etc.
+
+ Rewrite all tests to comply to ECMA compatible syntax
+ (ish - we support octal escapes), and use the normal 'shouldBe' test style.
+
+ * fast/js/resources/standalone-pre.js:
+ (areArraysEqual):
+ Fixed bug, where expected is an array we call areArraysEqual,
+ this should first check that actual is an array.
+
+ * fast/regex/pcre-test-1-expected.txt: Added.
+ * fast/regex/pcre-test-1.html: Added.
+ * fast/regex/pcre-test-4-expected.txt: Added.
+ * fast/regex/pcre-test-4.html: Added.
+ * fast/regex/script-tests/pcre-test-1.js: Added.
+ * fast/regex/script-tests/pcre-test-4.js: Added.
+ Added new version of PCRE tests.
+
+ * fast/regex/pcre-test-runner.js: Removed.
+ * fast/regex/test1-expected.txt: Removed.
+ * fast/regex/test1.html: Removed.
+ * fast/regex/test4-expected.txt: Removed.
+ * fast/regex/test4.html: Removed.
+ * fast/regex/testinput1: Removed.
+ * fast/regex/testinput4: Removed.
+ * fast/regex/testoutput1: Removed.
+ * fast/regex/testoutput4: Removed.
+ Removed old version of PCRE tests.
+
2010-11-30 Dan Bernstein <mitz at apple.com>
Reviewed by Darin Adler.
diff --git a/LayoutTests/fast/js/resources/standalone-pre.js b/LayoutTests/fast/js/resources/standalone-pre.js
index 692f1c1..b80c3cb 100644
--- a/LayoutTests/fast/js/resources/standalone-pre.js
+++ b/LayoutTests/fast/js/resources/standalone-pre.js
@@ -27,6 +27,8 @@ function testFailed(msg)
function areArraysEqual(_a, _b)
{
+ if (Object.prototype.toString.call(_a) != Object.prototype.toString.call([]))
+ return false;
if (_a.length !== _b.length)
return false;
for (var i = 0; i < _a.length; i++)
diff --git a/LayoutTests/fast/regex/pcre-test-1-expected.txt b/LayoutTests/fast/regex/pcre-test-1-expected.txt
new file mode 100644
index 0000000..8f51f33
--- /dev/null
+++ b/LayoutTests/fast/regex/pcre-test-1-expected.txt
@@ -0,0 +1,1329 @@
+A chunk of our port of PCRE's test suite, adapted to be more applicable to JavaScript.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS regex0.exec(input0); is results
+PASS regex0.exec(input1); is results
+PASS regex0.exec(input2); is results
+PASS regex0.exec(input3); is results
+PASS regex1.exec(input0); is results
+PASS regex1.exec(input1); is results
+PASS regex1.exec(input2); is results
+PASS regex1.exec(input3); is results
+PASS regex2.exec(input0); is results
+PASS regex3.exec(input0); is results
+PASS regex3.exec(input1); is results
+PASS regex3.exec(input2); is results
+PASS regex3.exec(input3); is results
+PASS regex3.exec(input4); is results
+PASS regex3.exec(input5); is results
+PASS regex3.exec(input6); is results
+PASS regex3.exec(input7); is results
+PASS regex3.exec(input8); is results
+PASS regex3.exec(input9); is results
+PASS regex3.exec(input10); is results
+PASS regex3.exec(input11); is results
+PASS regex3.exec(input12); is results
+PASS regex3.exec(input13); is results
+PASS regex3.exec(input14); is results
+PASS regex3.exec(input15); is results
+PASS regex3.exec(input16); is results
+PASS regex3.exec(input17); is results
+PASS regex3.exec(input18); is results
+PASS regex3.exec(input19); is results
+PASS regex3.exec(input20); is results
+PASS regex3.exec(input21); is results
+PASS regex3.exec(input22); is results
+PASS regex3.exec(input23); is results
+PASS regex3.exec(input24); is results
+PASS regex3.exec(input25); is results
+PASS regex3.exec(input26); is results
+PASS regex3.exec(input27); is results
+PASS regex3.exec(input28); is results
+PASS regex3.exec(input29); is results
+PASS regex3.exec(input30); is results
+PASS regex3.exec(input31); is results
+PASS regex3.exec(input32); is results
+PASS regex3.exec(input33); is results
+PASS regex3.exec(input34); is results
+PASS regex3.exec(input35); is results
+PASS regex4.exec(input0); is results
+PASS regex4.exec(input1); is results
+PASS regex4.exec(input2); is results
+PASS regex4.exec(input3); is results
+PASS regex4.exec(input4); is results
+PASS regex5.exec(input0); is results
+PASS regex5.exec(input1); is results
+PASS regex5.exec(input2); is results
+PASS regex5.exec(input3); is results
+PASS regex5.exec(input4); is results
+PASS regex5.exec(input5); is results
+PASS regex5.exec(input6); is results
+PASS regex5.exec(input7); is results
+PASS regex5.exec(input8); is results
+PASS regex5.exec(input9); is results
+PASS regex6.exec(input0); is results
+PASS regex6.exec(input1); is results
+PASS regex6.exec(input2); is results
+PASS regex6.exec(input3); is results
+PASS regex6.exec(input4); is results
+PASS regex6.exec(input5); is results
+PASS regex6.exec(input6); is results
+PASS regex6.exec(input7); is results
+PASS regex6.exec(input8); is results
+PASS regex6.exec(input9); is results
+PASS regex7.exec(input0); is results
+PASS regex8.exec(input0); is results
+PASS regex8.exec(input1); is results
+PASS regex8.exec(input2); is results
+PASS regex8.exec(input3); is results
+PASS regex8.exec(input4); is results
+PASS regex9.exec(input0); is results
+PASS regex9.exec(input1); is results
+PASS regex9.exec(input2); is results
+PASS regex9.exec(input3); is results
+PASS regex9.exec(input4); is results
+PASS regex10.exec(input0); is results
+PASS regex11.exec(input0); is results
+PASS regex11.exec(input1); is results
+PASS regex11.exec(input2); is results
+PASS regex11.exec(input3); is results
+PASS regex11.exec(input4); is results
+PASS regex11.exec(input5); is results
+PASS regex11.exec(input6); is results
+PASS regex11.exec(input7); is results
+PASS regex11.exec(input8); is results
+PASS regex12.exec(input0); is results
+PASS regex12.exec(input1); is results
+PASS regex12.exec(input2); is results
+PASS regex12.exec(input3); is results
+PASS regex12.exec(input4); is results
+PASS regex12.exec(input5); is results
+PASS regex13.exec(input0); is results
+PASS regex13.exec(input1); is results
+PASS regex13.exec(input2); is results
+PASS regex13.exec(input3); is results
+PASS regex13.exec(input4); is results
+PASS regex13.exec(input5); is results
+PASS regex13.exec(input6); is results
+PASS regex13.exec(input7); is results
+PASS regex13.exec(input8); is results
+PASS regex14.exec(input0); is results
+PASS regex14.exec(input1); is results
+PASS regex14.exec(input2); is results
+PASS regex14.exec(input3); is results
+PASS regex14.exec(input4); is results
+PASS regex14.exec(input5); is results
+PASS regex15.exec(input0); is results
+PASS regex16.exec(input0); is results
+PASS regex17.exec(input0); is results
+PASS regex17.exec(input1); is results
+PASS regex17.exec(input2); is results
+PASS regex17.exec(input3); is results
+PASS regex17.exec(input4); is results
+PASS regex17.exec(input5); is results
+PASS regex17.exec(input6); is results
+PASS regex17.exec(input7); is results
+PASS regex17.exec(input8); is results
+PASS regex17.exec(input9); is results
+PASS regex17.exec(input10); is results
+PASS regex17.exec(input11); is results
+PASS regex17.exec(input12); is results
+PASS regex18.exec(input0); is results
+PASS regex18.exec(input1); is results
+PASS regex18.exec(input2); is results
+PASS regex19.exec(input0); is results
+PASS regex19.exec(input1); is results
+PASS regex19.exec(input2); is results
+PASS regex20.exec(input0); is results
+PASS regex20.exec(input1); is results
+PASS regex20.exec(input2); is results
+PASS regex20.exec(input3); is results
+PASS regex20.exec(input4); is results
+PASS regex21.exec(input0); is results
+PASS regex21.exec(input1); is results
+PASS regex21.exec(input2); is results
+PASS regex21.exec(input3); is results
+PASS regex21.exec(input4); is results
+PASS regex22.exec(input0); is results
+PASS regex22.exec(input1); is results
+PASS regex22.exec(input2); is results
+PASS regex22.exec(input3); is results
+PASS regex22.exec(input4); is results
+PASS regex23.exec(input0); is results
+PASS regex23.exec(input1); is results
+PASS regex24.exec(input0); is results
+PASS regex24.exec(input1); is results
+PASS regex24.exec(input2); is results
+PASS regex24.exec(input3); is results
+PASS regex24.exec(input4); is results
+PASS regex24.exec(input5); is results
+PASS regex24.exec(input6); is results
+PASS regex24.exec(input7); is results
+PASS regex24.exec(input8); is results
+PASS regex24.exec(input9); is results
+PASS regex24.exec(input10); is results
+PASS regex24.exec(input11); is results
+PASS regex25.exec(input0); is results
+PASS regex25.exec(input1); is results
+PASS regex25.exec(input2); is results
+PASS regex25.exec(input3); is results
+PASS regex25.exec(input4); is results
+PASS regex26.exec(input0); is results
+PASS regex26.exec(input1); is results
+PASS regex26.exec(input2); is results
+PASS regex27.exec(input0); is results
+PASS regex27.exec(input1); is results
+PASS regex27.exec(input2); is results
+PASS regex27.exec(input3); is results
+PASS regex27.exec(input4); is results
+PASS regex27.exec(input5); is results
+PASS regex27.exec(input6); is results
+PASS regex28.exec(input0); is results
+PASS regex28.exec(input1); is results
+PASS regex28.exec(input2); is results
+PASS regex28.exec(input3); is results
+PASS regex28.exec(input4); is results
+PASS regex28.exec(input5); is results
+PASS regex28.exec(input6); is results
+PASS regex28.exec(input7); is results
+PASS regex29.exec(input0); is results
+PASS regex30.exec(input0); is results
+PASS regex31.exec(input0); is results
+PASS regex32.exec(input0); is results
+PASS regex32.exec(input1); is results
+PASS regex32.exec(input2); is results
+PASS regex33.exec(input0); is results
+PASS regex33.exec(input1); is results
+PASS regex33.exec(input2); is results
+PASS regex33.exec(input3); is results
+PASS regex34.exec(input0); is results
+PASS regex35.exec(input0); is results
+PASS regex35.exec(input1); is results
+PASS regex35.exec(input2); is results
+PASS regex35.exec(input3); is results
+PASS regex36.exec(input0); is results
+PASS regex37.exec(input0); is results
+PASS regex38.exec(input0); is results
+PASS regex39.exec(input0); is results
+PASS regex40.exec(input0); is results
+PASS regex40.exec(input1); is results
+PASS regex40.exec(input2); is results
+PASS regex40.exec(input3); is results
+PASS regex40.exec(input4); is results
+PASS regex40.exec(input5); is results
+PASS regex40.exec(input6); is results
+PASS regex40.exec(input7); is results
+PASS regex41.exec(input0); is results
+PASS regex41.exec(input1); is results
+PASS regex41.exec(input2); is results
+PASS regex41.exec(input3); is results
+PASS regex41.exec(input4); is results
+PASS regex41.exec(input5); is results
+PASS regex41.exec(input6); is results
+PASS regex41.exec(input7); is results
+PASS regex42.exec(input0); is results
+PASS regex42.exec(input1); is results
+PASS regex42.exec(input2); is results
+PASS regex42.exec(input3); is results
+PASS regex42.exec(input4); is results
+PASS regex43.exec(input0); is results
+PASS regex43.exec(input1); is results
+PASS regex43.exec(input2); is results
+PASS regex43.exec(input3); is results
+PASS regex43.exec(input4); is results
+PASS regex44.exec(input0); is results
+PASS regex44.exec(input1); is results
+PASS regex44.exec(input2); is results
+PASS regex44.exec(input3); is results
+PASS regex45.exec(input0); is results
+PASS regex45.exec(input1); is results
+PASS regex45.exec(input2); is results
+PASS regex45.exec(input3); is results
+PASS regex45.exec(input4); is results
+PASS regex46.exec(input0); is results
+PASS regex46.exec(input1); is results
+PASS regex46.exec(input2); is results
+PASS regex46.exec(input3); is results
+PASS regex46.exec(input4); is results
+PASS regex47.exec(input0); is results
+PASS regex47.exec(input1); is results
+PASS regex47.exec(input2); is results
+PASS regex48.exec(input0); is results
+PASS regex48.exec(input1); is results
+PASS regex49.exec(input0); is results
+PASS regex49.exec(input1); is results
+PASS regex49.exec(input2); is results
+PASS regex50.exec(input0); is results
+PASS regex51.exec(input0); is results
+PASS regex51.exec(input1); is results
+PASS regex51.exec(input2); is results
+PASS regex52.exec(input0); is results
+PASS regex52.exec(input1); is results
+PASS regex53.exec(input0); is results
+PASS regex54.exec(input0); is results
+PASS regex55.exec(input0); is results
+PASS regex55.exec(input1); is results
+PASS regex55.exec(input2); is results
+PASS regex55.exec(input3); is results
+PASS regex56.exec(input0); is results
+PASS regex56.exec(input1); is results
+PASS regex57.exec(input0); is results
+PASS regex57.exec(input1); is results
+PASS regex57.exec(input2); is results
+PASS regex57.exec(input3); is results
+PASS regex58.exec(input0); is results
+PASS regex58.exec(input1); is results
+PASS regex59.exec(input0); is results
+PASS regex59.exec(input1); is results
+PASS regex60.exec(input0); is results
+PASS regex61.exec(input0); is results
+PASS regex62.exec(input0); is results
+PASS regex63.exec(input0); is results
+PASS regex64.exec(input0); is results
+PASS regex64.exec(input1); is results
+PASS regex65.exec(input0); is results
+PASS regex65.exec(input1); is results
+PASS regex66.exec(input0); is results
+PASS regex66.exec(input1); is results
+PASS regex66.exec(input2); is results
+PASS regex67.exec(input0); is results
+PASS regex68.exec(input0); is results
+PASS regex68.exec(input1); is results
+PASS regex68.exec(input2); is results
+PASS regex68.exec(input3); is results
+PASS regex69.exec(input0); is results
+PASS regex69.exec(input1); is results
+PASS regex69.exec(input2); is results
+PASS regex70.exec(input0); is results
+PASS regex70.exec(input1); is results
+PASS regex70.exec(input2); is results
+PASS regex70.exec(input3); is results
+PASS regex70.exec(input4); is results
+PASS regex70.exec(input5); is results
+PASS regex71.exec(input0); is results
+PASS regex71.exec(input1); is results
+PASS regex71.exec(input2); is results
+PASS regex71.exec(input3); is results
+PASS regex72.exec(input0); is results
+PASS regex72.exec(input1); is results
+PASS regex72.exec(input2); is results
+PASS regex72.exec(input3); is results
+PASS regex73.exec(input0); is results
+PASS regex73.exec(input1); is results
+PASS regex73.exec(input2); is results
+PASS regex73.exec(input3); is results
+PASS regex74.exec(input0); is results
+PASS regex74.exec(input1); is results
+PASS regex74.exec(input2); is results
+PASS regex74.exec(input3); is results
+PASS regex74.exec(input4); is results
+PASS regex75.exec(input0); is results
+PASS regex75.exec(input1); is results
+PASS regex75.exec(input2); is results
+PASS regex75.exec(input3); is results
+PASS regex75.exec(input4); is results
+PASS regex75.exec(input5); is results
+PASS regex76.exec(input0); is results
+PASS regex76.exec(input1); is results
+PASS regex76.exec(input2); is results
+PASS regex76.exec(input3); is results
+PASS regex76.exec(input4); is results
+PASS regex77.exec(input0); is results
+PASS regex78.exec(input0); is results
+PASS regex79.exec(input0); is results
+PASS regex80.exec(input0); is results
+PASS regex80.exec(input1); is results
+PASS regex81.exec(input0); is results
+PASS regex81.exec(input1); is results
+PASS regex82.exec(input0); is results
+PASS regex82.exec(input1); is results
+PASS regex83.exec(input0); is results
+PASS regex83.exec(input1); is results
+PASS regex83.exec(input2); is results
+PASS regex83.exec(input3); is results
+PASS regex84.exec(input0); is results
+PASS regex84.exec(input1); is results
+PASS regex84.exec(input2); is results
+PASS regex84.exec(input3); is results
+PASS regex84.exec(input4); is results
+PASS regex84.exec(input5); is results
+PASS regex85.exec(input0); is results
+PASS regex85.exec(input1); is results
+PASS regex85.exec(input2); is results
+PASS regex85.exec(input3); is results
+PASS regex85.exec(input4); is results
+PASS regex86.exec(input0); is results
+PASS regex87.exec(input0); is results
+PASS regex88.exec(input0); is results
+PASS regex88.exec(input1); is results
+PASS regex89.exec(input0); is results
+PASS regex89.exec(input1); is results
+PASS regex90.exec(input0); is results
+PASS regex90.exec(input1); is results
+PASS regex91.exec(input0); is results
+PASS regex91.exec(input1); is results
+PASS regex92.exec(input0); is results
+PASS regex93.exec(input0); is results
+PASS regex93.exec(input1); is results
+PASS eval(regex94); threw exception SyntaxError: Invalid regular expression: invalid range in character class.
+PASS regex95.exec(input0); is results
+PASS regex96.exec(input0); is results
+PASS regex96.exec(input1); is results
+PASS regex97.exec(input0); is results
+PASS regex97.exec(input1); is results
+PASS regex97.exec(input2); is results
+PASS regex98.exec(input0); is results
+PASS regex99.exec(input0); is results
+PASS regex100.exec(input0); is results
+PASS regex101.exec(input0); is results
+PASS regex102.exec(input0); is results
+PASS regex102.exec(input1); is results
+PASS regex102.exec(input2); is results
+PASS regex103.exec(input0); is results
+PASS regex103.exec(input1); is results
+PASS regex103.exec(input2); is results
+PASS regex104.exec(input0); is results
+PASS regex105.exec(input0); is results
+PASS regex106.exec(input0); is results
+PASS regex107.exec(input0); is results
+PASS regex107.exec(input1); is results
+PASS regex108.exec(input0); is results
+PASS regex108.exec(input1); is results
+PASS regex108.exec(input2); is results
+PASS regex108.exec(input3); is results
+PASS regex108.exec(input4); is results
+PASS regex108.exec(input5); is results
+PASS regex109.exec(input0); is results
+PASS regex109.exec(input1); is results
+PASS regex110.exec(input0); is results
+PASS regex111.exec(input0); is results
+PASS regex112.exec(input0); is results
+PASS regex113.exec(input0); is results
+PASS regex114.exec(input0); is results
+PASS regex115.exec(input0); is results
+PASS regex116.exec(input0); is results
+PASS regex117.exec(input0); is results
+PASS regex118.exec(input0); is results
+PASS regex119.exec(input0); is results
+PASS regex119.exec(input1); is results
+PASS regex119.exec(input2); is results
+PASS regex119.exec(input3); is results
+PASS regex119.exec(input4); is results
+PASS regex119.exec(input5); is results
+PASS regex119.exec(input6); is results
+PASS regex120.exec(input0); is results
+PASS regex121.exec(input0); is results
+PASS regex122.exec(input0); is results
+PASS regex123.exec(input0); is results
+PASS regex124.exec(input0); is results
+PASS regex125.exec(input0); is results
+PASS regex125.exec(input1); is results
+PASS regex126.exec(input0); is results
+PASS regex126.exec(input1); is results
+PASS regex126.exec(input2); is results
+PASS regex126.exec(input3); is results
+PASS regex126.exec(input4); is results
+PASS regex126.exec(input5); is results
+PASS regex127.exec(input0); is results
+PASS regex127.exec(input1); is results
+PASS regex127.exec(input2); is results
+PASS regex127.exec(input3); is results
+PASS regex128.exec(input0); is results
+PASS regex128.exec(input1); is results
+PASS regex128.exec(input2); is results
+PASS regex129.exec(input0); is results
+PASS regex129.exec(input1); is results
+PASS regex130.exec(input0); is results
+PASS regex130.exec(input1); is results
+PASS regex131.exec(input0); is results
+PASS regex131.exec(input1); is results
+PASS regex132.exec(input0); is results
+PASS regex132.exec(input1); is results
+PASS regex133.exec(input0); is results
+PASS regex134.exec(input0); is results
+PASS regex135.exec(input0); is results
+PASS regex136.exec(input0); is results
+PASS regex136.exec(input1); is results
+PASS regex136.exec(input2); is results
+PASS regex137.exec(input0); is results
+PASS regex137.exec(input1); is results
+PASS regex137.exec(input2); is results
+PASS regex138.exec(input0); is results
+PASS regex139.exec(input0); is results
+PASS regex140.exec(input0); is results
+PASS regex141.exec(input0); is results
+PASS regex142.exec(input0); is results
+PASS regex143.exec(input0); is results
+PASS regex144.exec(input0); is results
+PASS regex145.exec(input0); is results
+PASS regex146.exec(input0); is results
+PASS regex147.exec(input0); is results
+PASS regex148.exec(input0); is results
+PASS regex149.exec(input0); is results
+PASS regex150.exec(input0); is results
+PASS regex151.exec(input0); is results
+PASS regex151.exec(input1); is results
+PASS regex152.exec(input0); is results
+PASS regex152.exec(input1); is results
+PASS regex152.exec(input2); is results
+PASS regex152.exec(input3); is results
+PASS regex152.exec(input4); is results
+PASS regex152.exec(input5); is results
+PASS regex152.exec(input6); is results
+PASS regex153.exec(input0); is results
+PASS regex153.exec(input1); is results
+PASS regex153.exec(input2); is results
+PASS regex153.exec(input3); is results
+PASS regex153.exec(input4); is results
+PASS regex153.exec(input5); is results
+PASS regex153.exec(input6); is results
+PASS regex153.exec(input7); is results
+PASS regex153.exec(input8); is results
+PASS regex153.exec(input9); is results
+PASS regex154.exec(input0); is results
+PASS regex155.exec(input0); is results
+PASS regex155.exec(input1); is results
+PASS regex156.exec(input0); is results
+PASS regex157.exec(input0); is results
+PASS regex157.exec(input1); is results
+PASS regex157.exec(input2); is results
+PASS regex158.exec(input0); is results
+PASS regex158.exec(input1); is results
+PASS regex158.exec(input2); is results
+PASS regex159.exec(input0); is results
+PASS regex159.exec(input1); is results
+PASS regex159.exec(input2); is results
+PASS regex160.exec(input0); is results
+PASS regex160.exec(input1); is results
+PASS regex160.exec(input2); is results
+PASS regex160.exec(input3); is results
+PASS regex161.exec(input0); is results
+PASS regex161.exec(input1); is results
+PASS regex161.exec(input2); is results
+PASS regex161.exec(input3); is results
+PASS regex161.exec(input4); is results
+PASS regex162.exec(input0); is results
+PASS regex162.exec(input1); is results
+PASS regex162.exec(input2); is results
+PASS regex163.exec(input0); is results
+PASS regex163.exec(input1); is results
+PASS regex163.exec(input2); is results
+PASS regex164.exec(input0); is results
+PASS regex164.exec(input1); is results
+PASS regex164.exec(input2); is results
+PASS regex164.exec(input3); is results
+PASS regex165.exec(input0); is results
+PASS regex165.exec(input1); is results
+PASS regex165.exec(input2); is results
+PASS regex165.exec(input3); is results
+PASS regex165.exec(input4); is results
+PASS regex166.exec(input0); is results
+PASS regex167.exec(input0); is results
+PASS regex168.exec(input0); is results
+PASS regex169.exec(input0); is results
+PASS regex170.exec(input0); is results
+PASS regex171.exec(input0); is results
+PASS regex172.exec(input0); is results
+PASS regex173.exec(input0); is results
+PASS regex174.exec(input0); is results
+PASS regex175.exec(input0); is results
+PASS regex176.exec(input0); is results
+PASS regex177.exec(input0); is results
+PASS regex178.exec(input0); is results
+PASS regex179.exec(input0); is results
+PASS regex179.exec(input1); is results
+PASS regex179.exec(input2); is results
+PASS regex180.exec(input0); is results
+PASS regex180.exec(input1); is results
+PASS regex180.exec(input2); is results
+PASS regex181.exec(input0); is results
+PASS regex181.exec(input1); is results
+PASS regex181.exec(input2); is results
+PASS regex182.exec(input0); is results
+PASS regex182.exec(input1); is results
+PASS regex182.exec(input2); is results
+PASS regex183.exec(input0); is results
+PASS regex183.exec(input1); is results
+PASS regex183.exec(input2); is results
+PASS regex184.exec(input0); is results
+PASS regex184.exec(input1); is results
+PASS regex184.exec(input2); is results
+PASS regex185.exec(input0); is results
+PASS regex186.exec(input0); is results
+PASS regex187.exec(input0); is results
+PASS regex188.exec(input0); is results
+PASS regex189a.exec(input0); is results
+PASS regex189b.exec(input0); is results
+PASS regex190a.exec(input0); is results
+PASS regex190b.exec(input0); is results
+PASS regex191.exec(input0); is results
+PASS regex192.exec(input0); is results
+PASS regex193.exec(input0); is results
+PASS regex194.exec(input0); is results
+PASS regex195.exec(input0); is results
+PASS regex196.exec(input0); is results
+PASS regex197.exec(input0); is results
+PASS regex197.exec(input1); is results
+PASS regex198.exec(input0); is results
+PASS regex198.exec(input1); is results
+PASS regex199.exec(input0); is results
+PASS regex199.exec(input1); is results
+PASS regex200.exec(input0); is results
+PASS regex200.exec(input1); is results
+PASS regex201.exec(input0); is results
+PASS regex201.exec(input1); is results
+PASS regex201.exec(input2); is results
+PASS regex201.exec(input3); is results
+PASS regex202.exec(input0); is results
+PASS regex202.exec(input1); is results
+PASS regex203.exec(input0); is results
+PASS regex203.exec(input1); is results
+PASS regex204.exec(input0); is results
+PASS regex205.exec(input0); is results
+PASS regex205.exec(input1); is results
+PASS regex206.exec(input0); is results
+PASS regex206.exec(input1); is results
+PASS regex207.exec(input0); is results
+PASS regex207.exec(input1); is results
+PASS regex208.exec(input0); is results
+PASS regex208.exec(input1); is results
+PASS regex209.exec(input0); is results
+PASS regex209.exec(input1); is results
+PASS regex209.exec(input2); is results
+PASS regex209.exec(input3); is results
+PASS regex209.exec(input4); is results
+PASS regex210.exec(input0); is results
+PASS regex210.exec(input1); is results
+PASS regex210.exec(input2); is results
+PASS regex210.exec(input3); is results
+PASS regex210.exec(input4); is results
+PASS regex211.exec(input0); is results
+PASS regex211.exec(input1); is results
+PASS regex212.exec(input0); is results
+PASS regex213.exec(input0); is results
+PASS regex214.exec(input0); is results
+PASS regex215.exec(input0); is results
+PASS regex216.exec(input0); is results
+PASS regex220.exec(input0); is results
+PASS regex220.exec(input1); is results
+PASS regex220.exec(input2); is results
+PASS regex220.exec(input3); is results
+PASS regex220.exec(input4); is results
+PASS regex225.exec(input0); is results
+PASS regex225.exec(input1); is results
+PASS regex234.exec(input0); is results
+PASS regex234.exec(input1); is results
+PASS regex234.exec(input2); is results
+PASS regex234.exec(input3); is results
+PASS regex235.exec(input0); is results
+PASS regex235.exec(input1); is results
+PASS regex235.exec(input2); is results
+PASS regex235.exec(input3); is results
+PASS regex236.exec(input0); is results
+PASS regex236.exec(input1); is results
+PASS regex237.exec(input0); is results
+PASS regex237.exec(input1); is results
+PASS regex237.exec(input2); is results
+PASS regex237.exec(input3); is results
+PASS regex237.exec(input4); is results
+PASS regex237.exec(input5); is results
+PASS regex237.exec(input6); is results
+PASS regex237.exec(input7); is results
+PASS regex238.exec(input0); is results
+PASS regex238.exec(input1); is results
+PASS regex238.exec(input2); is results
+PASS regex238.exec(input3); is results
+PASS regex238.exec(input4); is results
+PASS regex239.exec(input0); is results
+PASS regex239.exec(input1); is results
+PASS regex239.exec(input2); is results
+PASS regex239.exec(input3); is results
+PASS regex240.exec(input0); is results
+PASS regex240.exec(input1); is results
+PASS regex240.exec(input2); is results
+PASS regex240.exec(input3); is results
+PASS regex241.exec(input0); is results
+PASS regex241.exec(input1); is results
+PASS regex241.exec(input2); is results
+PASS regex241.exec(input3); is results
+PASS regex241.exec(input4); is results
+PASS regex242.exec(input0); is results
+PASS regex242.exec(input1); is results
+PASS regex242.exec(input2); is results
+PASS regex242.exec(input3); is results
+PASS regex242.exec(input4); is results
+PASS regex243.exec(input0); is results
+PASS regex243.exec(input1); is results
+PASS regex243.exec(input2); is results
+PASS regex243.exec(input3); is results
+PASS regex243.exec(input4); is results
+PASS regex243.exec(input5); is results
+PASS regex244.exec(input0); is results
+PASS regex244.exec(input1); is results
+PASS regex244.exec(input2); is results
+PASS regex244.exec(input3); is results
+PASS regex244.exec(input4); is results
+PASS regex246.exec(input0); is results
+PASS regex246.exec(input1); is results
+PASS regex246.exec(input2); is results
+PASS regex246.exec(input3); is results
+PASS regex247.exec(input0); is results
+PASS regex247.exec(input1); is results
+PASS regex247.exec(input2); is results
+PASS regex247.exec(input3); is results
+PASS regex248.exec(input0); is results
+PASS regex248.exec(input1); is results
+PASS regex248.exec(input2); is results
+PASS regex248.exec(input3); is results
+PASS regex249.exec(input0); is results
+PASS regex249.exec(input1); is results
+PASS regex249.exec(input2); is results
+PASS regex249.exec(input3); is results
+PASS regex252.exec(input0); is results
+PASS regex252.exec(input1); is results
+PASS regex252.exec(input2); is results
+PASS regex252.exec(input3); is results
+PASS regex253.exec(input0); is results
+PASS regex253.exec(input1); is results
+PASS regex253.exec(input2); is results
+PASS regex253.exec(input3); is results
+PASS regex254.exec(input0); is results
+PASS regex254.exec(input1); is results
+PASS regex254.exec(input2); is results
+PASS regex254.exec(input3); is results
+PASS regex254.exec(input4); is results
+PASS regex254.exec(input5); is results
+PASS regex254.exec(input6); is results
+PASS regex255.exec(input0); is results
+PASS regex255.exec(input1); is results
+PASS regex255.exec(input2); is results
+PASS regex255.exec(input3); is results
+PASS regex255.exec(input4); is results
+PASS regex255.exec(input5); is results
+PASS regex255.exec(input6); is results
+PASS regex257.exec(input0); is results
+PASS regex257.exec(input1); is results
+PASS regex257.exec(input2); is results
+PASS regex257.exec(input3); is results
+PASS regex258.exec(input0); is results
+PASS regex258.exec(input1); is results
+PASS regex259.exec(input0); is results
+PASS regex259.exec(input1); is results
+PASS regex259.exec(input2); is results
+PASS regex259.exec(input3); is results
+PASS regex259.exec(input4); is results
+PASS regex260.exec(input0); is results
+PASS regex260.exec(input1); is results
+PASS regex260.exec(input2); is results
+PASS regex261.exec(input0); is results
+PASS regex261.exec(input1); is results
+PASS regex262.exec(input0); is results
+PASS regex262.exec(input1); is results
+PASS regex263.exec(input0); is results
+PASS regex263.exec(input1); is results
+PASS regex263.exec(input2); is results
+PASS regex263.exec(input3); is results
+PASS regex264.exec(input0); is results
+PASS regex264.exec(input1); is results
+PASS regex264.exec(input2); is results
+PASS regex265.exec(input0); is results
+PASS regex265.exec(input1); is results
+PASS regex265.exec(input2); is results
+PASS regex269.exec(input0); is results
+PASS regex269.exec(input1); is results
+PASS regex269.exec(input2); is results
+PASS regex271.exec(input0); is results
+PASS regex271.exec(input1); is results
+PASS regex271.exec(input2); is results
+PASS regex271.exec(input3); is results
+PASS regex271.exec(input4); is results
+PASS regex271.exec(input5); is results
+PASS regex271.exec(input6); is results
+PASS regex272.exec(input0); is results
+PASS regex272.exec(input1); is results
+PASS regex272.exec(input2); is results
+PASS regex272.exec(input3); is results
+PASS regex272.exec(input4); is results
+PASS regex272.exec(input5); is results
+PASS regex272.exec(input6); is results
+PASS regex272.exec(input7); is results
+PASS regex273.exec(input0); is results
+PASS regex273.exec(input1); is results
+PASS regex273.exec(input2); is results
+PASS regex273.exec(input3); is results
+PASS regex273.exec(input4); is results
+PASS regex273.exec(input5); is results
+PASS regex273.exec(input6); is results
+PASS regex273.exec(input7); is results
+PASS regex274.exec(input0); is results
+PASS regex274.exec(input1); is results
+PASS regex274.exec(input2); is results
+PASS regex274.exec(input3); is results
+PASS regex274.exec(input4); is results
+PASS regex274.exec(input5); is results
+PASS regex274.exec(input6); is results
+PASS regex274.exec(input7); is results
+PASS regex277.exec(input0); is results
+PASS regex277.exec(input1); is results
+PASS regex277.exec(input2); is results
+PASS regex277.exec(input3); is results
+PASS regex277.exec(input4); is results
+PASS regex277.exec(input5); is results
+PASS regex277.exec(input6); is results
+PASS regex277.exec(input7); is results
+PASS regex277.exec(input8); is results
+PASS regex277.exec(input9); is results
+PASS regex277.exec(input10); is results
+PASS regex277.exec(input11); is results
+PASS regex277.exec(input12); is results
+PASS regex277.exec(input13); is results
+PASS regex277.exec(input14); is results
+PASS regex278.exec(input0); is results
+PASS regex278.exec(input1); is results
+PASS regex278.exec(input2); is results
+PASS regex278.exec(input3); is results
+PASS regex278.exec(input4); is results
+PASS regex278.exec(input5); is results
+PASS regex278.exec(input6); is results
+PASS regex278.exec(input7); is results
+PASS regex278.exec(input8); is results
+PASS regex278.exec(input9); is results
+PASS regex278.exec(input10); is results
+PASS regex278.exec(input11); is results
+PASS regex278.exec(input12); is results
+PASS regex278.exec(input13); is results
+PASS regex278.exec(input14); is results
+PASS regex278.exec(input15); is results
+PASS regex279.exec(input0); is results
+PASS regex279.exec(input1); is results
+PASS regex279.exec(input2); is results
+PASS regex279.exec(input3); is results
+PASS regex279.exec(input4); is results
+PASS regex279.exec(input5); is results
+PASS regex280.exec(input0); is results
+PASS regex281.exec(input0); is results
+PASS regex281.exec(input1); is results
+PASS regex281.exec(input2); is results
+PASS regex282.exec(input0); is results
+PASS regex283.exec(input0); is results
+PASS regex284.exec(input0); is results
+PASS regex285.exec(input0); is results
+PASS regex285.exec(input1); is results
+PASS regex285.exec(input2); is results
+PASS regex286.exec(input0); is results
+PASS regex287.exec(input0); is results
+PASS regex288.exec(input0); is results
+PASS regex289.exec(input0); is results
+PASS regex290.exec(input0); is results
+PASS regex290.exec(input1); is results
+PASS regex291.exec(input0); is results
+PASS regex291.exec(input1); is results
+PASS regex292.exec(input0); is results
+PASS regex293.exec(input0); is results
+PASS regex294.exec(input0); is results
+PASS regex295.exec(input0); is results
+PASS regex296.exec(input0); is results
+PASS regex296.exec(input1); is results
+PASS regex296.exec(input2); is results
+PASS regex297.exec(input0); is results
+PASS regex298.exec(input0); is results
+PASS regex299.exec(input0); is results
+PASS regex299.exec(input1); is results
+PASS regex300.exec(input0); is results
+PASS regex301.exec(input0); is results
+PASS regex301.exec(input1); is results
+PASS regex301.exec(input2); is results
+PASS regex302.exec(input0); is results
+PASS regex303.exec(input0); is results
+PASS regex304.exec(input0); is results
+PASS regex305.exec(input0); is results
+PASS regex306.exec(input0); is results
+PASS regex307.exec(input0); is results
+PASS regex308.exec(input0); is results
+PASS regex308.exec(input1); is results
+PASS regex308.exec(input2); is results
+PASS regex309.exec(input0); is results
+PASS regex310.exec(input0); is results
+PASS regex310.exec(input1); is results
+PASS regex310.exec(input2); is results
+PASS regex311.exec(input0); is results
+PASS regex311.exec(input1); is results
+PASS regex311.exec(input2); is results
+PASS regex312.exec(input0); is results
+PASS regex312.exec(input1); is results
+PASS regex312.exec(input2); is results
+PASS regex313.exec(input0); is results
+PASS regex313.exec(input1); is results
+PASS regex313.exec(input2); is results
+PASS regex314.exec(input0); is results
+PASS regex315.exec(input0); is results
+PASS regex316.exec(input0); is results
+PASS regex317.exec(input0); is results
+PASS regex318.exec(input0); is results
+PASS regex318.exec(input1); is results
+PASS regex318.exec(input2); is results
+PASS regex319.exec(input0); is results
+PASS regex320.exec(input0); is results
+PASS regex320.exec(input1); is results
+PASS regex320.exec(input2); is results
+PASS regex321.exec(input0); is results
+PASS regex322.exec(input0); is results
+PASS regex322.exec(input1); is results
+PASS regex322.exec(input2); is results
+PASS regex323.exec(input0); is results
+PASS regex324.exec(input0); is results
+PASS regex324.exec(input1); is results
+PASS regex324.exec(input2); is results
+PASS regex325.exec(input0); is results
+PASS regex326.exec(input0); is results
+PASS regex326.exec(input1); is results
+PASS regex326.exec(input2); is results
+PASS regex327.exec(input0); is results
+PASS regex328.exec(input0); is results
+PASS regex328.exec(input1); is results
+PASS regex328.exec(input2); is results
+PASS regex329.exec(input0); is results
+PASS regex329.exec(input1); is results
+PASS regex330.exec(input0); is results
+PASS regex331.exec(input0); is results
+PASS regex332.exec(input0); is results
+PASS regex332.exec(input1); is results
+PASS regex333.exec(input0); is results
+PASS regex334.exec(input0); is results
+PASS regex335.exec(input0); is results
+PASS regex336.exec(input0); is results
+PASS regex337.exec(input0); is results
+PASS regex338.exec(input0); is results
+PASS regex339.exec(input0); is results
+PASS regex340.exec(input0); is results
+PASS regex341.exec(input0); is results
+PASS regex342.exec(input0); is results
+PASS regex343.exec(input0); is results
+PASS regex344.exec(input0); is results
+PASS regex345.exec(input0); is results
+PASS regex346.exec(input0); is results
+PASS regex347.exec(input0); is results
+PASS regex348.exec(input0); is results
+PASS regex349.exec(input0); is results
+PASS regex350.exec(input0); is results
+PASS regex351.exec(input0); is results
+PASS regex352.exec(input0); is results
+PASS regex352.exec(input1); is results
+PASS regex353.exec(input0); is results
+PASS regex354.exec(input0); is results
+PASS regex355.exec(input0); is results
+PASS regex356.exec(input0); is results
+PASS regex357.exec(input0); is results
+PASS regex358.exec(input0); is results
+PASS regex359.exec(input0); is results
+PASS regex360.exec(input0); is results
+PASS regex361.exec(input0); is results
+PASS regex362.exec(input0); is results
+PASS regex363.exec(input0); is results
+PASS regex363.exec(input1); is results
+PASS regex364.exec(input0); is results
+PASS regex365.exec(input0); is results
+PASS regex366.exec(input0); is results
+PASS regex367.exec(input0); is results
+PASS regex368.exec(input0); is results
+PASS regex368.exec(input1); is results
+PASS regex368.exec(input2); is results
+PASS regex368.exec(input3); is results
+PASS regex368.exec(input4); is results
+PASS regex369.exec(input0); is results
+PASS regex370.exec(input0); is results
+PASS regex371.exec(input0); is results
+PASS regex372.exec(input0); is results
+PASS regex372.exec(input1); is results
+PASS regex373.exec(input0); is results
+PASS regex374.exec(input0); is results
+PASS regex375.exec(input0); is results
+PASS regex376.exec(input0); is results
+PASS regex377.exec(input0); is results
+PASS regex378.exec(input0); is results
+PASS regex379.exec(input0); is results
+PASS regex380.exec(input0); is results
+PASS regex381.exec(input0); is results
+PASS regex381.exec(input1); is results
+PASS regex381.exec(input2); is results
+PASS regex382.exec(input0); is results
+PASS regex383.exec(input0); is results
+PASS regex384.exec(input0); is results
+PASS regex385.exec(input0); is results
+PASS regex386.exec(input0); is results
+PASS regex386.exec(input1); is results
+PASS regex386.exec(input2); is results
+PASS regex386.exec(input3); is results
+PASS regex386.exec(input4); is results
+PASS regex386.exec(input5); is results
+PASS regex386.exec(input6); is results
+PASS regex387.exec(input0); is results
+PASS regex388.exec(input0); is results
+PASS regex388.exec(input1); is results
+PASS regex389.exec(input0); is results
+PASS regex390.exec(input0); is results
+PASS regex391.exec(input0); is results
+PASS regex392.exec(input0); is results
+PASS regex392.exec(input1); is results
+PASS regex393.exec(input0); is results
+PASS regex394.exec(input0); is results
+PASS regex395.exec(input0); is results
+PASS regex396.exec(input0); is results
+PASS regex397.exec(input0); is results
+PASS regex397.exec(input1); is results
+PASS regex398.exec(input0); is results
+PASS regex398.exec(input1); is results
+PASS regex399.exec(input0); is results
+PASS regex400.exec(input0); is results
+PASS regex401.exec(input0); is results
+PASS regex402.exec(input0); is results
+PASS regex402.exec(input1); is results
+PASS regex402.exec(input2); is results
+PASS regex403.exec(input0); is results
+PASS regex404.exec(input0); is results
+PASS regex405.exec(input0); is results
+PASS regex406.exec(input0); is results
+PASS regex407.exec(input0); is results
+PASS regex407.exec(input1); is results
+PASS regex408.exec(input0); is results
+PASS regex409.exec(input0); is results
+PASS regex409.exec(input1); is results
+PASS regex410.exec(input0); is results
+PASS regex411.exec(input0); is results
+PASS regex411.exec(input1); is results
+PASS regex411.exec(input2); is results
+PASS regex412.exec(input0); is results
+PASS regex413.exec(input0); is results
+PASS regex414.exec(input0); is results
+PASS regex415.exec(input0); is results
+PASS regex416.exec(input0); is results
+PASS regex417.exec(input0); is results
+PASS regex418.exec(input0); is results
+PASS regex418.exec(input1); is results
+PASS regex418.exec(input2); is results
+PASS regex419.exec(input0); is results
+PASS regex420.exec(input0); is results
+PASS regex420.exec(input1); is results
+PASS regex421.exec(input0); is results
+PASS regex422.exec(input0); is results
+PASS regex422.exec(input1); is results
+PASS regex423.exec(input0); is results
+PASS regex424.exec(input0); is results
+PASS regex424.exec(input1); is results
+PASS regex425.exec(input0); is results
+PASS regex426.exec(input0); is results
+PASS regex427.exec(input0); is results
+PASS regex428.exec(input0); is results
+PASS regex429.exec(input0); is results
+PASS regex430.exec(input0); is results
+PASS regex431.exec(input0); is results
+PASS regex432.exec(input0); is results
+PASS regex433.exec(input0); is results
+PASS regex434.exec(input0); is results
+PASS regex435.exec(input0); is results
+PASS regex436.exec(input0); is results
+PASS regex437.exec(input0); is results
+PASS regex438.exec(input0); is results
+PASS regex439.exec(input0); is results
+PASS regex440.exec(input0); is results
+PASS regex441.exec(input0); is results
+PASS regex442.exec(input0); is results
+PASS regex443.exec(input0); is results
+PASS regex444.exec(input0); is results
+PASS regex445.exec(input0); is results
+PASS regex446.exec(input0); is results
+PASS regex446.exec(input1); is results
+PASS regex447.exec(input0); is results
+PASS regex448.exec(input0); is results
+PASS regex449.exec(input0); is results
+PASS regex450.exec(input0); is results
+PASS regex451.exec(input0); is results
+PASS regex452.exec(input0); is results
+PASS regex453.exec(input0); is results
+PASS regex454.exec(input0); is results
+PASS regex455.exec(input0); is results
+PASS regex456.exec(input0); is results
+PASS regex457.exec(input0); is results
+PASS regex458.exec(input0); is results
+PASS regex459.exec(input0); is results
+PASS regex460.exec(input0); is results
+PASS regex461.exec(input0); is results
+PASS regex462.exec(input0); is results
+PASS regex462.exec(input1); is results
+PASS regex462.exec(input2); is results
+PASS regex462.exec(input3); is results
+PASS regex462.exec(input4); is results
+PASS regex462.exec(input5); is results
+PASS regex463.exec(input0); is results
+PASS regex464.exec(input0); is results
+PASS regex465.exec(input0); is results
+PASS regex466.exec(input0); is results
+PASS regex467.exec(input0); is results
+PASS regex468.exec(input0); is results
+PASS regex468.exec(input1); is results
+PASS regex469.exec(input0); is results
+PASS regex470.exec(input0); is results
+PASS regex471.exec(input0); is results
+PASS regex472.exec(input0); is results
+PASS regex473.exec(input0); is results
+PASS regex474.exec(input0); is results
+PASS regex475.exec(input0); is results
+PASS regex476.exec(input0); is results
+PASS regex477.exec(input0); is results
+PASS regex478.exec(input0); is results
+PASS regex479.exec(input0); is results
+PASS regex480.exec(input0); is results
+PASS regex481.exec(input0); is results
+PASS regex482.exec(input0); is results
+PASS regex482.exec(input1); is results
+PASS regex483.exec(input0); is results
+PASS regex484.exec(input0); is results
+PASS regex485.exec(input0); is results
+PASS regex486.exec(input0); is results
+PASS regex487.exec(input0); is results
+PASS regex488.exec(input0); is results
+PASS regex489.exec(input0); is results
+PASS regex490.exec(input0); is results
+PASS regex491.exec(input0); is results
+PASS regex492.exec(input0); is results
+PASS regex493.exec(input0); is results
+PASS regex494.exec(input0); is results
+PASS regex495.exec(input0); is results
+PASS regex496.exec(input0); is results
+PASS regex497.exec(input0); is results
+PASS regex498.exec(input0); is results
+PASS regex498.exec(input1); is results
+PASS regex498.exec(input2); is results
+PASS regex498.exec(input3); is results
+PASS regex499.exec(input0); is results
+PASS regex499.exec(input1); is results
+PASS regex499.exec(input2); is results
+PASS regex499.exec(input3); is results
+PASS regex500.exec(input0); is results
+PASS regex503.exec(input0); is results
+PASS regex504.exec(input0); is results
+PASS regex505.exec(input0); is results
+PASS regex506.exec(input0); is results
+PASS regex507.exec(input0); is results
+PASS regex508.exec(input0); is results
+PASS regex509.exec(input0); is results
+PASS regex510.exec(input0); is results
+PASS regex511.exec(input0); is results
+PASS regex512.exec(input0); is results
+PASS regex513.exec(input0); is results
+PASS regex514.exec(input0); is results
+PASS regex515.exec(input0); is results
+PASS regex516.exec(input0); is results
+PASS regex516.exec(input1); is results
+PASS regex517.exec(input0); is results
+PASS regex518.exec(input0); is results
+PASS regex519.exec(input0); is results
+PASS regex520.exec(input0); is results
+PASS regex521.exec(input0); is results
+PASS regex521.exec(input1); is results
+PASS regex522.exec(input0); is results
+PASS regex523.exec(input0); is results
+PASS regex524.exec(input0); is results
+PASS regex525.exec(input0); is results
+PASS regex526.exec(input0); is results
+PASS regex526.exec(input1); is results
+PASS regex527.exec(input0); is results
+PASS regex528.exec(input0); is results
+PASS regex529.exec(input0); is results
+PASS regex529.exec(input1); is results
+PASS regex530.exec(input0); is results
+PASS regex531.exec(input0); is results
+PASS regex532.exec(input0); is results
+PASS regex533.exec(input0); is results
+PASS regex534.exec(input0); is results
+PASS regex534.exec(input1); is results
+PASS regex535.exec(input0); is results
+PASS regex536.exec(input0); is results
+PASS regex537.exec(input0); is results
+PASS regex537.exec(input1); is results
+PASS regex538.exec(input0); is results
+PASS regex538.exec(input1); is results
+PASS regex539.exec(input0); is results
+PASS regex540.exec(input0); is results
+PASS regex541.exec(input0); is results
+PASS regex542.exec(input0); is results
+PASS regex542.exec(input1); is results
+PASS regex543.exec(input0); is results
+PASS regex544.exec(input0); is results
+PASS regex545.exec(input0); is results
+PASS regex550.exec(input0); is results
+PASS regex550.exec(input1); is results
+PASS regex550.exec(input2); is results
+PASS regex550.exec(input3); is results
+PASS regex550.exec(input4); is results
+PASS regex550.exec(input5); is results
+PASS regex550.exec(input6); is results
+PASS regex551.exec(input0); is results
+PASS regex552.exec(input0); is results
+PASS regex553.exec(input0); is results
+PASS regex554.exec(input0); is results
+PASS regex555.exec(input0); is results
+PASS regex556.exec(input0); is results
+PASS regex557.exec(input0); is results
+PASS regex557.exec(input1); is results
+PASS regex558.exec(input0); is results
+PASS regex558.exec(input1); is results
+PASS regex559.exec(input0); is results
+PASS regex559.exec(input1); is results
+PASS regex560.exec(input0); is results
+PASS regex561.exec(input0); is results
+PASS regex562.exec(input0); is results
+PASS regex562.exec(input1); is results
+PASS regex563.exec(input0); is results
+PASS regex564.exec(input0); is results
+PASS regex565.exec(input0); is results
+PASS regex566.exec(input0); is results
+PASS regex566.exec(input1); is results
+PASS regex566.exec(input2); is results
+PASS regex566.exec(input3); is results
+PASS regex566.exec(input4); is results
+PASS regex567.exec(input0); is results
+PASS regex567.exec(input1); is results
+PASS regex567.exec(input2); is results
+PASS regex567.exec(input3); is results
+PASS regex568.exec(input0); is results
+PASS regex569.exec(input0); is results
+PASS regex569.exec(input1); is results
+PASS regex570.exec(input0); is results
+PASS regex571.exec(input0); is results
+PASS regex572.exec(input0); is results
+PASS regex574.exec(input0); is results
+PASS regex575.exec(input0); is results
+PASS regex575.exec(input1); is results
+PASS regex576.exec(input0); is results
+PASS regex576.exec(input1); is results
+PASS regex577.exec(input0); is results
+PASS regex578.exec(input0); is results
+PASS regex579.exec(input0); is results
+PASS regex579.exec(input1); is results
+PASS regex579.exec(input2); is results
+PASS regex579.exec(input3); is results
+PASS regex580.exec(input0); is results
+PASS regex582.exec(input0); is results
+PASS regex583.exec(input0); is results
+PASS regex584.exec(input0); is results
+PASS regex588.exec(input0); is results
+PASS regex588.exec(input1); is results
+PASS regex589.exec(input0); is results
+PASS regex589.exec(input1); is results
+PASS regex590.exec(input0); is results
+PASS regex590.exec(input1); is results
+PASS regex600.exec(input0); is results
+PASS regex600.exec(input1); is results
+PASS regex600.exec(input2); is results
+PASS regex601.exec(input0); is results
+PASS regex601.exec(input1); is results
+PASS regex601.exec(input2); is results
+PASS regex603.exec(input0); is results
+PASS regex604.exec(input0); is results
+PASS regex605.exec(input0); is results
+PASS eval(regex608); threw exception SyntaxError: Invalid regular expression: invalid range in character class.
+PASS eval(regex609); threw exception SyntaxError: Invalid regular expression: invalid range in character class.
+PASS regex610.exec(input0); is results
+PASS regex611.exec(input0); is results
+PASS regex612.exec(input0); is results
+PASS regex613.exec(input0); is results
+PASS regex614.exec(input0); is results
+PASS regex616.exec(input0); is results
+PASS regex621.exec(input0); is results
+PASS regex621.exec(input1); is results
+PASS regex622.exec(input0); is results
+PASS regex622.exec(input1); is results
+PASS regex623.exec(input0); is results
+PASS regex623.exec(input1); is results
+PASS regex624.exec(input0); is results
+PASS regex625.exec(input0); is results
+PASS regex625.exec(input1); is results
+PASS regex625.exec(input2); is results
+PASS regex625.exec(input3); is results
+PASS regex625.exec(input4); is results
+PASS regex625.exec(input5); is results
+PASS regex626.exec(input0); is results
+PASS regex626.exec(input1); is results
+PASS regex627.exec(input0); is results
+PASS regex627.exec(input1); is results
+PASS regex628.exec(input0); is results
+PASS regex628.exec(input1); is results
+PASS regex630.exec(input0); is results
+PASS regex630.exec(input1); is results
+PASS regex631.exec(input0); is results
+PASS regex632.exec(input0); is results
+PASS regex633.exec(input0); is results
+PASS regex633.exec(input1); is results
+PASS regex633.exec(input2); is results
+PASS regex633.exec(input3); is results
+PASS regex633.exec(input4); is results
+PASS regex634.exec(input0); is results
+PASS regex634.exec(input1); is results
+PASS regex634.exec(input2); is results
+PASS regex634.exec(input3); is results
+PASS regex636.exec(input0); is results
+PASS regex637.exec(input0); is results
+PASS regex637.exec(input1); is results
+PASS regex641.exec(input0); is results
+PASS regex642.exec(input0); is results
+PASS regex642.exec(input1); is results
+PASS regex644.exec(input0); is results
+PASS regex644.exec(input1); is results
+PASS regex644.exec(input2); is results
+PASS regex645.exec(input0); is results
+PASS regex645.exec(input1); is results
+PASS regex645.exec(input2); is results
+PASS regex646.exec(input0); is results
+PASS regex646.exec(input1); is results
+PASS regex646.exec(input2); is results
+PASS regex647.exec(input0); is results
+PASS regex647.exec(input1); is results
+PASS regex647.exec(input2); is results
+PASS regex648.exec(input0); is results
+PASS regex648.exec(input1); is results
+PASS regex648.exec(input2); is results
+PASS regex649.exec(input0); is results
+PASS regex649.exec(input1); is results
+PASS regex650.exec(input0); is results
+PASS regex651.exec(input0); is results
+PASS regex652.exec(input0); is results
+PASS regex660.exec(input0); is results
+PASS regex661.exec(input0); is results
+PASS regex662.exec(input0); is results
+PASS regex663.exec(input0); is results
+PASS regex664.exec(input0); is results
+PASS regex664.exec(input1); is results
+PASS regex664.exec(input2); is results
+PASS regex665.exec(input0); is results
+PASS regex665.exec(input1); is results
+PASS regex667.exec(input0); is results
+PASS regex667.exec(input1); is results
+PASS regex669.exec(input0); is results
+PASS regex669.exec(input1); is results
+PASS regex671.exec(input0); is results
+PASS regex672.exec(input0); is results
+PASS regex672.exec(input1); is results
+PASS regex673.exec(input0); is results
+PASS regex673.exec(input1); is results
+PASS regex673.exec(input2); is results
+PASS regex673.exec(input3); is results
+PASS regex673.exec(input4); is results
+PASS input0.match(regexGlobal0); is results
+PASS input0.match(regexGlobal1); is results
+PASS input0.match(regexGlobal2); is results
+PASS input0.match(regexGlobal3); is results
+PASS input0.match(regexGlobal4); is results
+PASS input0.match(regexGlobal5); is results
+PASS input0.match(regexGlobal6); is results
+PASS input1.match(regexGlobal6); is results
+PASS input0.match(regexGlobal7); is results
+PASS input1.match(regexGlobal7); is results
+PASS input0.match(regexGlobal8); is results
+PASS input0.match(regexGlobal9); is results
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/regex/pcre-test-1.html b/LayoutTests/fast/regex/pcre-test-1.html
new file mode 100644
index 0000000..ff38148
--- /dev/null
+++ b/LayoutTests/fast/regex/pcre-test-1.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../js/resources/js-test-style.css">
+<script src="../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/pcre-test-1.js"></script>
+<script src="../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/regex/pcre-test-4-expected.txt b/LayoutTests/fast/regex/pcre-test-4-expected.txt
new file mode 100644
index 0000000..fc8bc07
--- /dev/null
+++ b/LayoutTests/fast/regex/pcre-test-4-expected.txt
@@ -0,0 +1,252 @@
+A chunk of our port of PCRE's test suite, adapted to be more applicable to JavaScript.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS regex0.exec(input0); is results
+PASS regex0.exec(input1); is results
+PASS regex0.exec(input2); is results
+PASS regex0.exec(input3); is results
+PASS regex1.exec(input0); is results
+PASS regex1.exec(input1); is results
+PASS regex1.exec(input2); is results
+PASS regex1.exec(input3); is results
+PASS regex1.exec(input4); is results
+PASS regex2.exec(input0); is results
+PASS regex3.exec(input0); is results
+PASS regex4.exec(input0); is results
+PASS regex5.exec(input0); is results
+PASS regex6.exec(input0); is results
+PASS regex7.exec(input0); is results
+PASS regex8.exec(input0); is results
+PASS regex9.exec(input0); is results
+PASS regex10.exec(input0); is results
+PASS regex11.exec(input0); is results
+PASS regex12.exec(input0); is results
+PASS regex12.exec(input1); is results
+PASS regex12.exec(input2); is results
+PASS regex12.exec(input3); is results
+PASS regex12.exec(input4); is results
+PASS regex13.exec(input0); is results
+PASS regex13.exec(input1); is results
+PASS regex13.exec(input2); is results
+PASS regex13.exec(input3); is results
+PASS regex13.exec(input4); is results
+PASS regex13.exec(input5); is results
+PASS regex14.exec(input0); is results
+PASS regex14.exec(input1); is results
+PASS regex14.exec(input2); is results
+PASS regex14.exec(input3); is results
+PASS regex14.exec(input4); is results
+PASS regex14.exec(input5); is results
+PASS regex15.exec(input0); is results
+PASS regex15.exec(input1); is results
+PASS regex15.exec(input2); is results
+PASS regex15.exec(input3); is results
+PASS regex15.exec(input4); is results
+PASS regex15.exec(input5); is results
+PASS regex15.exec(input6); is results
+PASS regex15.exec(input7); is results
+PASS regex15.exec(input8); is results
+PASS regex16.exec(input0); is results
+PASS regex16.exec(input1); is results
+PASS regex16.exec(input2); is results
+PASS regex16.exec(input3); is results
+PASS regex16.exec(input4); is results
+PASS regex16.exec(input5); is results
+PASS regex16.exec(input6); is results
+PASS regex16.exec(input7); is results
+PASS regex16.exec(input8); is results
+PASS regex17.exec(input0); is results
+PASS regex21.exec(input0); is results
+PASS regex21.exec(input1); is results
+PASS regex22.exec(input0); is results
+PASS regex22.exec(input1); is results
+PASS regex22.exec(input2); is results
+PASS regex30.exec(input0); is results
+PASS regex31.exec(input0); is results
+PASS regex32.exec(input0); is results
+PASS regex33.exec(input0); is results
+PASS regex34.exec(input0); is results
+PASS regex35.exec(input0); is results
+PASS regex36.exec(input0); is results
+PASS regex37.exec(input0); is results
+PASS regex37.exec(input1); is results
+PASS regex38.exec(input0); is results
+PASS regex38.exec(input1); is results
+PASS regex39.exec(input0); is results
+PASS regex39.exec(input1); is results
+PASS regex40.exec(input0); is results
+PASS regex41.exec(input0); is results
+PASS regex42.exec(input0); is results
+PASS regex43.exec(input0); is results
+PASS regex44.exec(input0); is results
+PASS regex45.exec(input0); is results
+PASS regex47.exec(input0); is results
+PASS regex48.exec(input0); is results
+PASS regex49.exec(input0); is results
+PASS regex49.exec(input1); is results
+PASS regex50.exec(input0); is results
+PASS regex50.exec(input1); is results
+PASS regex51.exec(input0); is results
+PASS regex52.exec(input0); is results
+PASS regex53.exec(input0); is results
+PASS regex53.exec(input1); is results
+PASS regex54.exec(input0); is results
+PASS regex54.exec(input1); is results
+PASS regex54.exec(input2); is results
+PASS regex54.exec(input3); is results
+PASS regex55.exec(input0); is results
+PASS regex55.exec(input1); is results
+PASS regex55.exec(input2); is results
+PASS regex55.exec(input3); is results
+PASS regex56.exec(input0); is results
+PASS regex57.exec(input0); is results
+PASS regex57.exec(input1); is results
+PASS regex57.exec(input2); is results
+PASS regex58.exec(input0); is results
+PASS regex58.exec(input1); is results
+PASS regex58.exec(input2); is results
+PASS regex59.exec(input0); is results
+PASS regex59.exec(input1); is results
+PASS regex60.exec(input0); is results
+PASS regex60.exec(input1); is results
+PASS regex60.exec(input2); is results
+PASS regex61.exec(input0); is results
+PASS regex61.exec(input1); is results
+PASS regex61.exec(input2); is results
+PASS regex62.exec(input0); is results
+PASS regex63.exec(input0); is results
+PASS regex63.exec(input1); is results
+PASS regex63.exec(input2); is results
+PASS regex64.exec(input0); is results
+PASS regex64.exec(input1); is results
+PASS regex64.exec(input2); is results
+PASS regex65.exec(input0); is results
+PASS regex65.exec(input1); is results
+PASS regex66.exec(input0); is results
+PASS regex66.exec(input1); is results
+PASS regex66.exec(input2); is results
+PASS regex67.exec(input0); is results
+PASS regex67.exec(input1); is results
+PASS regex67.exec(input2); is results
+PASS regex68.exec(input0); is results
+PASS regex68.exec(input1); is results
+PASS regex69.exec(input0); is results
+PASS regex69.exec(input1); is results
+PASS regex69.exec(input2); is results
+PASS regex70.exec(input0); is results
+PASS regex70.exec(input1); is results
+PASS regex70.exec(input2); is results
+PASS regex71.exec(input0); is results
+PASS regex71.exec(input1); is results
+PASS regex71.exec(input2); is results
+PASS regex72.exec(input0); is results
+PASS regex72.exec(input1); is results
+PASS regex72.exec(input2); is results
+PASS regex73.exec(input0); is results
+PASS regex73.exec(input1); is results
+PASS regex74.exec(input0); is results
+PASS regex74.exec(input1); is results
+PASS regex74.exec(input2); is results
+PASS regex75.exec(input0); is results
+PASS regex75.exec(input1); is results
+PASS regex75.exec(input2); is results
+PASS regex75.exec(input3); is results
+PASS regex75.exec(input4); is results
+PASS regex76.exec(input0); is results
+PASS regex76.exec(input1); is results
+PASS regex76.exec(input2); is results
+PASS regex77.exec(input0); is results
+PASS regex77.exec(input1); is results
+PASS regex77.exec(input2); is results
+PASS regex77.exec(input3); is results
+PASS regex78.exec(input0); is results
+PASS regex78.exec(input1); is results
+PASS regex78.exec(input2); is results
+PASS regex78.exec(input3); is results
+PASS regex78.exec(input4); is results
+PASS regex78.exec(input5); is results
+PASS regex79.exec(input0); is results
+PASS regex79.exec(input1); is results
+PASS regex79.exec(input2); is results
+PASS regex80.exec(input0); is results
+PASS regex80.exec(input1); is results
+PASS regex80.exec(input2); is results
+PASS regex81.exec(input0); is results
+PASS regex81.exec(input1); is results
+PASS regex81.exec(input2); is results
+PASS regex82.exec(input0); is results
+PASS regex82.exec(input1); is results
+PASS regex82.exec(input2); is results
+PASS regex86.exec(input0); is results
+PASS regex86.exec(input1); is results
+PASS regex86.exec(input2); is results
+PASS regex86.exec(input3); is results
+PASS regex86.exec(input4); is results
+PASS regex87.exec(input0); is results
+PASS regex87.exec(input1); is results
+PASS regex87.exec(input2); is results
+PASS regex87.exec(input3); is results
+PASS regex87.exec(input4); is results
+PASS regex87.exec(input5); is results
+PASS regex88.exec(input0); is results
+PASS regex88.exec(input1); is results
+PASS regex88.exec(input2); is results
+PASS regex88.exec(input3); is results
+PASS regex88.exec(input4); is results
+PASS regex91.exec(input0); is results
+PASS regex91.exec(input1); is results
+PASS regex91.exec(input2); is results
+PASS regex91.exec(input3); is results
+PASS regex91.exec(input4); is results
+PASS regex92.exec(input0); is results
+PASS regex93.exec(input0); is results
+PASS regex94.exec(input0); is results
+PASS regex95.exec(input0); is results
+PASS regex95.exec(input1); is results
+PASS regex96.exec(input0); is results
+PASS regex97.exec(input0); is results
+PASS regex98.exec(input0); is results
+PASS regex99.exec(input0); is results
+PASS regex100.exec(input0); is results
+PASS regex102.exec(input0); is results
+PASS regex103.exec(input0); is results
+PASS regex104.exec(input0); is results
+PASS regex105.exec(input0); is results
+PASS regex105.exec(input1); is results
+PASS regex106.exec(input0); is results
+PASS regex107.exec(input0); is results
+PASS input0.match(regexGlobal0); is results
+PASS input1.match(regexGlobal0); is results
+PASS input0.match(regexGlobal1); is results
+PASS input0.match(regexGlobal2); is results
+PASS input0.match(regexGlobal3); is results
+PASS input0.match(regexGlobal4); is results
+PASS input0.match(regexGlobal5); is results
+PASS input0.match(regexGlobal6); is results
+PASS input0.match(regexGlobal7); is results
+PASS input0.match(regexGlobal8); is results
+PASS input0.match(regexGlobal9); is results
+PASS input0.match(regexGlobal10); is results
+PASS input0.match(regexGlobal11); is results
+PASS input0.match(regexGlobal12); is results
+PASS input0.match(regexGlobal13); is results
+PASS input0.match(regexGlobal14); is results
+PASS input0.match(regexGlobal15); is results
+PASS input0.match(regexGlobal16); is results
+PASS input0.match(regexGlobal17); is results
+PASS input0.match(regexGlobal19); is results
+PASS input0.match(regexGlobal21); is results
+PASS input0.match(regexGlobal24); is results
+PASS input0.match(regexGlobal25); is results
+PASS input0.match(regexGlobal26); is results
+PASS input0.match(regexGlobal27); is results
+PASS input0.match(regexGlobal28); is results
+PASS input1.match(regexGlobal28); is results
+PASS input0.match(regexGlobal29); is results
+PASS input1.match(regexGlobal29); is results
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/regex/pcre-test-4.html b/LayoutTests/fast/regex/pcre-test-4.html
new file mode 100644
index 0000000..89e07c7
--- /dev/null
+++ b/LayoutTests/fast/regex/pcre-test-4.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../js/resources/js-test-style.css">
+<script src="../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/pcre-test-4.js"></script>
+<script src="../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/regex/pcre-test-runner.js b/LayoutTests/fast/regex/pcre-test-runner.js
deleted file mode 100644
index 1fc6ba7..0000000
--- a/LayoutTests/fast/regex/pcre-test-runner.js
+++ /dev/null
@@ -1,154 +0,0 @@
-if (window.layoutTestController)
- layoutTestController.dumpAsText();
-
-var console_messages = null;
-
-function log(message)
-{
- if (!console_messages) {
- console_messages = document.createElement("pre");
- document.body.appendChild(console_messages);
- }
- console_messages.appendChild(document.createTextNode(message + "\n"));
-}
-
-function fetchText(url) {
- try {
- var req = new XMLHttpRequest;
- req.open("GET", url, false);
- try {
- req.overrideMimeType("text/plain; charset=utf-8");
- } catch (ex) {
- }
- req.send();
- return req.responseText;
- } catch (ex) {
- log ("FAILED to read " + url);
- }
-}
-
-function replaceEscapes(str) {
- var pos;
- var endPos;
-
- // \x{41}
- while ((pos = str.indexOf("\\x{")) != -1) {
- endPos = pos + 1;
- while (str[endPos] != "}")
- ++endPos;
- var code = parseInt(str.substring(pos + 3, endPos), 16);
- str = str.substr(0, pos) + String.fromCharCode(code) + str.substr(endPos + 1);
- }
-
- // \071
- while ((pos = str.indexOf("\\0")) != -1) {
- endPos = pos + 4;
- var code = parseInt(str.substring(pos + 2, endPos), 8);
- str = str.substr(0, pos) + String.fromCharCode(code) + str.substr(endPos);
- }
-
- // \x7f
- while ((pos = str.indexOf("\\x")) != -1) {
- endPos = pos + 4;
- var code = parseInt(str.substring(pos + 2, endPos), 16);
- str = str.substr(0, pos) + String.fromCharCode(code) + str.substr(endPos);
- }
-
- return str;
-}
-
-function removeTrailingSpaces(str) {
- return str.replace(/ *$/, '');
-}
-
-function runPCRETest(number, name) {
- log(name + "\n");
-
- var inputText = fetchText("testinput" + number);
- var outputText = fetchText("testoutput" + number);
-
- var tests = inputText.split(/\n[ \t]*\n/);
- var results = outputText.split(/\n[ \t]*\n/);
- if (tests.length != results.length)
- log("Number of tests in input doesn't match output");
-
- var i, j;
- for (i = 0 ; i < tests.length - 1; ++i) { // -1 to account for "End of ..."
- var testLines = tests[i].split("\n");
- var resultLines = results[i].split("\n");
-
- var linesInRegexp = 1;
- var regexpText = testLines[0];
- if (testLines[0].lastIndexOf(testLines[0][0]) == 0) {
- do {
- regexpText += "\n" + testLines[linesInRegexp];
- } while (testLines[linesInRegexp++].indexOf(regexpText[0]) == -1)
- }
-
- log(regexpText);
-
- regexpText = replaceEscapes(regexpText);
- for (n = linesInRegexp; n < testLines.length; ++n) {
- // Some tests have trailing whitespace that needs to be ignored - but not if it is encoded.
- testLines[n] = replaceEscapes(removeTrailingSpaces(testLines[n]));
- }
- for (n = linesInRegexp; n < resultLines.length; ++n) {
- resultLines[n] = replaceEscapes(resultLines[n]);
- }
-
- var regexp = null;
- try {
- var reText = regexpText.match(new RegExp("^" + testLines[0][0] + "(.*)" + testLines[0][0] + ".*$"))[1];
- var reFlags = regexpText.match(new RegExp("^" + testLines[0][0] + ".*" + testLines[0][0] + "([^ \t]*)[ \t]*$"))[1];
- reFlags = reFlags.replace("8", ""); // No UTF-8 mode, we always work with Unicode.
- if (!/^[gims]*$/.test(reFlags)) {
- // Allowing "s" to better test newline handling, although it's unsupported in JavaScript.
- log("Unsupported modifiers: "+ reFlags + "\n");
- continue;
- }
- regexp = new RegExp(reText, reFlags);
- } catch (ex) {
- }
- if (!regexp) {
- log("FAILED TO COMPILE\n");
- continue;
- }
-
- var resultsRow = linesInRegexp;
- for (j = linesInRegexp; j < testLines.length; ++j) {
- var testLine = testLines[j];
- var failersLine = (/\*\*\* Failers/.test(testLine));
-
- // There is a slight discrepancy in the ways input and output strings are decoded, so the test below has
- // to be less specific than it could be. No big deal, as it's just a sanity check for debugging.
- if (removeTrailingSpaces(resultLines[resultsRow]) != removeTrailingSpaces(testLine))
- log('Test results out of sync, "' + resultLines[resultsRow] + '" vs. "' + testLine + '".');
-
- ++resultsRow;
- while (/^ {0,1}[0-9]+: .*/.test(resultLines[resultsRow]) || /^No match$/.test(resultLines[resultsRow])) {
-
- var actualResults = regexp.exec(testLine.replace(/^ /, ""));
- var expectedResults = null;
- while (/^ {0,1}[0-9]+: .*/.test(resultLines[resultsRow])) {
- var startOfNewResultArray = /^ {0,1}0: .*/.test(resultLines[resultsRow]);
- if (!expectedResults)
- expectedResults = [];
- else if (startOfNewResultArray)
- break;
- var resultLineWithoutNumber = resultLines[resultsRow++].replace(/^ {0,1}[0-9]*: /, "");
- if (resultLineWithoutNumber == "<unset>")
- resultLineWithoutNumber = undefined;
- expectedResults[expectedResults.length] = resultLineWithoutNumber;
- }
- if (/^No match$/.test(resultLines[resultsRow]))
- ++resultsRow;
- if ((actualResults === null && expectedResults === null) || (actualResults && expectedResults && actualResults.toString() == expectedResults.toString()))
- log(testLine + (failersLine ? "" : ": PASS"));
- else
- log(testLine + ': FAIL. Actual results: "' + actualResults /*+ '"; expected: "' + expectedResults*/ + '"');
- }
- }
- log("");
- }
- log("DONE");
-}
diff --git a/LayoutTests/fast/regex/script-tests/pcre-test-1.js b/LayoutTests/fast/regex/script-tests/pcre-test-1.js
new file mode 100644
index 0000000..c24d249
--- /dev/null
+++ b/LayoutTests/fast/regex/script-tests/pcre-test-1.js
@@ -0,0 +1,6032 @@
+description(
+"A chunk of our port of PCRE's test suite, adapted to be more applicable to JavaScript."
+);
+
+function shouldNotCompile(patternName)
+{
+ shouldThrow("eval(" + patternName + ");");
+}
+
+var regex0 = /the quick brown fox/;
+var input0 = "the quick brown fox";
+var results = ["the quick brown fox"];
+shouldBe('regex0.exec(input0);', 'results');
+var input1 = "The quick brown FOX";
+var results = null;
+shouldBe('regex0.exec(input1);', 'results');
+var input2 = "What do you know about the quick brown fox?";
+var results = ["the quick brown fox"];
+shouldBe('regex0.exec(input2);', 'results');
+var input3 = "What do you know about THE QUICK BROWN FOX?";
+var results = null;
+shouldBe('regex0.exec(input3);', 'results');
+
+var regex1 = /The quick brown fox/i;
+var input0 = "the quick brown fox";
+var results = ["the quick brown fox"];
+shouldBe('regex1.exec(input0);', 'results');
+var input1 = "The quick brown FOX";
+var results = ["The quick brown FOX"];
+shouldBe('regex1.exec(input1);', 'results');
+var input2 = "What do you know about the quick brown fox?";
+var results = ["the quick brown fox"];
+shouldBe('regex1.exec(input2);', 'results');
+var input3 = "What do you know about THE QUICK BROWN FOX?";
+var results = ["THE QUICK BROWN FOX"];
+shouldBe('regex1.exec(input3);', 'results');
+
+var regex2 = /abcd\t\n\r\f\v[\b]\071\x3b\$\\\?caxyz/;
+var input0 = "abcd\t\n\r\f\v\b9;\$\\?caxyz";
+var results = ["abcd\x09\x0a\x0d\x0c\x0b\x089;$\\?caxyz"];
+shouldBe('regex2.exec(input0);', 'results');
+
+var regex3 = /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/;
+var input0 = "abxyzpqrrrabbxyyyypqAzz";
+var results = ["abxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input0);', 'results');
+var input1 = "abxyzpqrrrabbxyyyypqAzz";
+var results = ["abxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input1);', 'results');
+var input2 = "aabxyzpqrrrabbxyyyypqAzz";
+var results = ["aabxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input2);', 'results');
+var input3 = "aaabxyzpqrrrabbxyyyypqAzz";
+var results = ["aaabxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input3);', 'results');
+var input4 = "aaaabxyzpqrrrabbxyyyypqAzz";
+var results = ["aaaabxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input4);', 'results');
+var input5 = "abcxyzpqrrrabbxyyyypqAzz";
+var results = ["abcxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input5);', 'results');
+var input6 = "aabcxyzpqrrrabbxyyyypqAzz";
+var results = ["aabcxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input6);', 'results');
+var input7 = "aaabcxyzpqrrrabbxyyyypAzz";
+var results = ["aaabcxyzpqrrrabbxyyyypAzz"];
+shouldBe('regex3.exec(input7);', 'results');
+var input8 = "aaabcxyzpqrrrabbxyyyypqAzz";
+var results = ["aaabcxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input8);', 'results');
+var input9 = "aaabcxyzpqrrrabbxyyyypqqAzz";
+var results = ["aaabcxyzpqrrrabbxyyyypqqAzz"];
+shouldBe('regex3.exec(input9);', 'results');
+var input10 = "aaabcxyzpqrrrabbxyyyypqqqAzz";
+var results = ["aaabcxyzpqrrrabbxyyyypqqqAzz"];
+shouldBe('regex3.exec(input10);', 'results');
+var input11 = "aaabcxyzpqrrrabbxyyyypqqqqAzz";
+var results = ["aaabcxyzpqrrrabbxyyyypqqqqAzz"];
+shouldBe('regex3.exec(input11);', 'results');
+var input12 = "aaabcxyzpqrrrabbxyyyypqqqqqAzz";
+var results = ["aaabcxyzpqrrrabbxyyyypqqqqqAzz"];
+shouldBe('regex3.exec(input12);', 'results');
+var input13 = "aaabcxyzpqrrrabbxyyyypqqqqqqAzz";
+var results = ["aaabcxyzpqrrrabbxyyyypqqqqqqAzz"];
+shouldBe('regex3.exec(input13);', 'results');
+var input14 = "aaaabcxyzpqrrrabbxyyyypqAzz";
+var results = ["aaaabcxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input14);', 'results');
+var input15 = "abxyzzpqrrrabbxyyyypqAzz";
+var results = ["abxyzzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input15);', 'results');
+var input16 = "aabxyzzzpqrrrabbxyyyypqAzz";
+var results = ["aabxyzzzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input16);', 'results');
+var input17 = "aaabxyzzzzpqrrrabbxyyyypqAzz";
+var results = ["aaabxyzzzzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input17);', 'results');
+var input18 = "aaaabxyzzzzpqrrrabbxyyyypqAzz";
+var results = ["aaaabxyzzzzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input18);', 'results');
+var input19 = "abcxyzzpqrrrabbxyyyypqAzz";
+var results = ["abcxyzzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input19);', 'results');
+var input20 = "aabcxyzzzpqrrrabbxyyyypqAzz";
+var results = ["aabcxyzzzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input20);', 'results');
+var input21 = "aaabcxyzzzzpqrrrabbxyyyypqAzz";
+var results = ["aaabcxyzzzzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input21);', 'results');
+var input22 = "aaaabcxyzzzzpqrrrabbxyyyypqAzz";
+var results = ["aaaabcxyzzzzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input22);', 'results');
+var input23 = "aaaabcxyzzzzpqrrrabbbxyyyypqAzz";
+var results = ["aaaabcxyzzzzpqrrrabbbxyyyypqAzz"];
+shouldBe('regex3.exec(input23);', 'results');
+var input24 = "aaaabcxyzzzzpqrrrabbbxyyyyypqAzz";
+var results = ["aaaabcxyzzzzpqrrrabbbxyyyyypqAzz"];
+shouldBe('regex3.exec(input24);', 'results');
+var input25 = "aaabcxyzpqrrrabbxyyyypABzz";
+var results = ["aaabcxyzpqrrrabbxyyyypABzz"];
+shouldBe('regex3.exec(input25);', 'results');
+var input26 = "aaabcxyzpqrrrabbxyyyypABBzz";
+var results = ["aaabcxyzpqrrrabbxyyyypABBzz"];
+shouldBe('regex3.exec(input26);', 'results');
+var input27 = ">>>aaabxyzpqrrrabbxyyyypqAzz";
+var results = ["aaabxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input27);', 'results');
+var input28 = ">aaaabxyzpqrrrabbxyyyypqAzz";
+var results = ["aaaabxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input28);', 'results');
+var input29 = ">>>>abcxyzpqrrrabbxyyyypqAzz";
+var results = ["abcxyzpqrrrabbxyyyypqAzz"];
+shouldBe('regex3.exec(input29);', 'results');
+// Failers
+var input30 = "abxyzpqrrabbxyyyypqAzz";
+var results = null;
+shouldBe('regex3.exec(input30);', 'results');
+var input31 = "abxyzpqrrrrabbxyyyypqAzz";
+var results = null;
+shouldBe('regex3.exec(input31);', 'results');
+var input32 = "abxyzpqrrrabxyyyypqAzz";
+var results = null;
+shouldBe('regex3.exec(input32);', 'results');
+var input33 = "aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz";
+var results = null;
+shouldBe('regex3.exec(input33);', 'results');
+var input34 = "aaaabcxyzzzzpqrrrabbbxyyypqAzz";
+var results = null;
+shouldBe('regex3.exec(input34);', 'results');
+var input35 = "aaabcxyzpqrrrabbxyyyypqqqqqqqAzz";
+var results = null;
+shouldBe('regex3.exec(input35);', 'results');
+
+var regex4 = /^(abc){1,2}zz/;
+var input0 = "abczz";
+var results = ["abczz", "abc"];
+shouldBe('regex4.exec(input0);', 'results');
+var input1 = "abcabczz";
+var results = ["abcabczz", "abc"];
+shouldBe('regex4.exec(input1);', 'results');
+// Failers
+var input2 = "zz";
+var results = null;
+shouldBe('regex4.exec(input2);', 'results');
+var input3 = "abcabcabczz";
+var results = null;
+shouldBe('regex4.exec(input3);', 'results');
+var input4 = ">>abczz";
+var results = null;
+shouldBe('regex4.exec(input4);', 'results');
+
+var regex5 = /^(b+?|a){1,2}?c/;
+var input0 = "bc";
+var results = ["bc", "b"];
+shouldBe('regex5.exec(input0);', 'results');
+var input1 = "bbc";
+var results = ["bbc", "b"];
+shouldBe('regex5.exec(input1);', 'results');
+var input2 = "bbbc";
+var results = ["bbbc", "bb"];
+shouldBe('regex5.exec(input2);', 'results');
+var input3 = "bac";
+var results = ["bac", "a"];
+shouldBe('regex5.exec(input3);', 'results');
+var input4 = "bbac";
+var results = ["bbac", "a"];
+shouldBe('regex5.exec(input4);', 'results');
+var input5 = "aac";
+var results = ["aac", "a"];
+shouldBe('regex5.exec(input5);', 'results');
+var input6 = "abbbbbbbbbbbc";
+var results = ["abbbbbbbbbbbc", "bbbbbbbbbbb"];
+shouldBe('regex5.exec(input6);', 'results');
+var input7 = "bbbbbbbbbbbac";
+var results = ["bbbbbbbbbbbac", "a"];
+shouldBe('regex5.exec(input7);', 'results');
+// Failers
+var input8 = "aaac";
+var results = null;
+shouldBe('regex5.exec(input8);', 'results');
+var input9 = "abbbbbbbbbbbac";
+var results = null;
+shouldBe('regex5.exec(input9);', 'results');
+
+var regex6 = /^(b+|a){1,2}c/;
+var input0 = "bc";
+var results = ["bc", "b"];
+shouldBe('regex6.exec(input0);', 'results');
+var input1 = "bbc";
+var results = ["bbc", "bb"];
+shouldBe('regex6.exec(input1);', 'results');
+var input2 = "bbbc";
+var results = ["bbbc", "bbb"];
+shouldBe('regex6.exec(input2);', 'results');
+var input3 = "bac";
+var results = ["bac", "a"];
+shouldBe('regex6.exec(input3);', 'results');
+var input4 = "bbac";
+var results = ["bbac", "a"];
+shouldBe('regex6.exec(input4);', 'results');
+var input5 = "aac";
+var results = ["aac", "a"];
+shouldBe('regex6.exec(input5);', 'results');
+var input6 = "abbbbbbbbbbbc";
+var results = ["abbbbbbbbbbbc", "bbbbbbbbbbb"];
+shouldBe('regex6.exec(input6);', 'results');
+var input7 = "bbbbbbbbbbbac";
+var results = ["bbbbbbbbbbbac", "a"];
+shouldBe('regex6.exec(input7);', 'results');
+// Failers
+var input8 = "aaac";
+var results = null;
+shouldBe('regex6.exec(input8);', 'results');
+var input9 = "abbbbbbbbbbbac";
+var results = null;
+shouldBe('regex6.exec(input9);', 'results');
+
+var regex7 = /^(b+|a){1,2}?bc/;
+var input0 = "bbc";
+var results = ["bbc", "b"];
+shouldBe('regex7.exec(input0);', 'results');
+
+var regex8 = /^(b*|ba){1,2}?bc/;
+var input0 = "babc";
+var results = ["babc", "ba"];
+shouldBe('regex8.exec(input0);', 'results');
+var input1 = "bbabc";
+var results = ["bbabc", "ba"];
+shouldBe('regex8.exec(input1);', 'results');
+var input2 = "bababc";
+var results = ["bababc", "ba"];
+shouldBe('regex8.exec(input2);', 'results');
+// Failers
+var input3 = "bababbc";
+var results = null;
+shouldBe('regex8.exec(input3);', 'results');
+var input4 = "babababc";
+var results = null;
+shouldBe('regex8.exec(input4);', 'results');
+
+var regex9 = /^(ba|b*){1,2}?bc/;
+var input0 = "babc";
+var results = ["babc", "ba"];
+shouldBe('regex9.exec(input0);', 'results');
+var input1 = "bbabc";
+var results = ["bbabc", "ba"];
+shouldBe('regex9.exec(input1);', 'results');
+var input2 = "bababc";
+var results = ["bababc", "ba"];
+shouldBe('regex9.exec(input2);', 'results');
+// Failers
+var input3 = "bababbc";
+var results = null;
+shouldBe('regex9.exec(input3);', 'results');
+var input4 = "babababc";
+var results = null;
+shouldBe('regex9.exec(input4);', 'results');
+
+var regex10 = /^\ca\cA/;
+var input0 = "\x01\x01";
+var results = ["\x01\x01"];
+shouldBe('regex10.exec(input0);', 'results');
+
+var regex11 = /^[ab\]cde]/;
+var input0 = "athing";
+var results = ["a"];
+shouldBe('regex11.exec(input0);', 'results');
+var input1 = "bthing";
+var results = ["b"];
+shouldBe('regex11.exec(input1);', 'results');
+var input2 = "]thing";
+var results = ["]"];
+shouldBe('regex11.exec(input2);', 'results');
+var input3 = "cthing";
+var results = ["c"];
+shouldBe('regex11.exec(input3);', 'results');
+var input4 = "dthing";
+var results = ["d"];
+shouldBe('regex11.exec(input4);', 'results');
+var input5 = "ething";
+var results = ["e"];
+shouldBe('regex11.exec(input5);', 'results');
+// Failers
+var input6 = "fthing";
+var results = null;
+shouldBe('regex11.exec(input6);', 'results');
+var input7 = "[thing";
+var results = null;
+shouldBe('regex11.exec(input7);', 'results');
+var input8 = "\\thing";
+var results = null;
+shouldBe('regex11.exec(input8);', 'results');
+
+var regex12 = /^[\]cde]/;
+var input0 = "]thing";
+var results = ["]"];
+shouldBe('regex12.exec(input0);', 'results');
+var input1 = "cthing";
+var results = ["c"];
+shouldBe('regex12.exec(input1);', 'results');
+var input2 = "dthing";
+var results = ["d"];
+shouldBe('regex12.exec(input2);', 'results');
+var input3 = "ething";
+var results = ["e"];
+shouldBe('regex12.exec(input3);', 'results');
+// Failers
+var input4 = "athing";
+var results = null;
+shouldBe('regex12.exec(input4);', 'results');
+var input5 = "fthing";
+var results = null;
+shouldBe('regex12.exec(input5);', 'results');
+
+var regex13 = /^[^ab\]cde]/;
+var input0 = "fthing";
+var results = ["f"];
+shouldBe('regex13.exec(input0);', 'results');
+var input1 = "[thing";
+var results = ["["];
+shouldBe('regex13.exec(input1);', 'results');
+var input2 = "\\thing";
+var results = ["\\"];
+shouldBe('regex13.exec(input2);', 'results');
+// Failers
+var input3 = "athing";
+var results = null;
+shouldBe('regex13.exec(input3);', 'results');
+var input4 = "bthing";
+var results = null;
+shouldBe('regex13.exec(input4);', 'results');
+var input5 = "]thing";
+var results = null;
+shouldBe('regex13.exec(input5);', 'results');
+var input6 = "cthing";
+var results = null;
+shouldBe('regex13.exec(input6);', 'results');
+var input7 = "dthing";
+var results = null;
+shouldBe('regex13.exec(input7);', 'results');
+var input8 = "ething";
+var results = null;
+shouldBe('regex13.exec(input8);', 'results');
+
+var regex14 = /^[^\]cde]/;
+var input0 = "athing";
+var results = ["a"];
+shouldBe('regex14.exec(input0);', 'results');
+var input1 = "fthing";
+var results = ["f"];
+shouldBe('regex14.exec(input1);', 'results');
+// Failers
+var input2 = "]thing";
+var results = null;
+shouldBe('regex14.exec(input2);', 'results');
+var input3 = "cthing";
+var results = null;
+shouldBe('regex14.exec(input3);', 'results');
+var input4 = "dthing";
+var results = null;
+shouldBe('regex14.exec(input4);', 'results');
+var input5 = "ething";
+var results = null;
+shouldBe('regex14.exec(input5);', 'results');
+
+var regex15 = /^\xc2/;
+var input0 = "\xc2";
+var results = ["\xc2"];
+shouldBe('regex15.exec(input0);', 'results');
+
+var regex16 = /^\xc3/;
+var input0 = "\xc3";
+var results = ["\xc3"];
+shouldBe('regex16.exec(input0);', 'results');
+
+var regex17 = /^[0-9]+$/;
+var input0 = "0";
+var results = ["0"];
+shouldBe('regex17.exec(input0);', 'results');
+var input1 = "1";
+var results = ["1"];
+shouldBe('regex17.exec(input1);', 'results');
+var input2 = "2";
+var results = ["2"];
+shouldBe('regex17.exec(input2);', 'results');
+var input3 = "3";
+var results = ["3"];
+shouldBe('regex17.exec(input3);', 'results');
+var input4 = "4";
+var results = ["4"];
+shouldBe('regex17.exec(input4);', 'results');
+var input5 = "5";
+var results = ["5"];
+shouldBe('regex17.exec(input5);', 'results');
+var input6 = "6";
+var results = ["6"];
+shouldBe('regex17.exec(input6);', 'results');
+var input7 = "7";
+var results = ["7"];
+shouldBe('regex17.exec(input7);', 'results');
+var input8 = "8";
+var results = ["8"];
+shouldBe('regex17.exec(input8);', 'results');
+var input9 = "9";
+var results = ["9"];
+shouldBe('regex17.exec(input9);', 'results');
+var input10 = "10";
+var results = ["10"];
+shouldBe('regex17.exec(input10);', 'results');
+var input11 = "100";
+var results = ["100"];
+shouldBe('regex17.exec(input11);', 'results');
+// Failers
+var input12 = "abc";
+var results = null;
+shouldBe('regex17.exec(input12);', 'results');
+
+var regex18 = /^.*nter/;
+var input0 = "enter";
+var results = ["enter"];
+shouldBe('regex18.exec(input0);', 'results');
+var input1 = "inter";
+var results = ["inter"];
+shouldBe('regex18.exec(input1);', 'results');
+var input2 = "uponter";
+var results = ["uponter"];
+shouldBe('regex18.exec(input2);', 'results');
+
+var regex19 = /^xxx[0-9]+$/;
+var input0 = "xxx0";
+var results = ["xxx0"];
+shouldBe('regex19.exec(input0);', 'results');
+var input1 = "xxx1234";
+var results = ["xxx1234"];
+shouldBe('regex19.exec(input1);', 'results');
+// Failers
+var input2 = "xxx";
+var results = null;
+shouldBe('regex19.exec(input2);', 'results');
+
+var regex20 = /^.+[0-9][0-9][0-9]$/;
+var input0 = "x123";
+var results = ["x123"];
+shouldBe('regex20.exec(input0);', 'results');
+var input1 = "xx123";
+var results = ["xx123"];
+shouldBe('regex20.exec(input1);', 'results');
+var input2 = "123456";
+var results = ["123456"];
+shouldBe('regex20.exec(input2);', 'results');
+// Failers
+var input3 = "123";
+var results = null;
+shouldBe('regex20.exec(input3);', 'results');
+var input4 = "x1234";
+var results = ["x1234"];
+shouldBe('regex20.exec(input4);', 'results');
+
+var regex21 = /^.+?[0-9][0-9][0-9]$/;
+var input0 = "x123";
+var results = ["x123"];
+shouldBe('regex21.exec(input0);', 'results');
+var input1 = "xx123";
+var results = ["xx123"];
+shouldBe('regex21.exec(input1);', 'results');
+var input2 = "123456";
+var results = ["123456"];
+shouldBe('regex21.exec(input2);', 'results');
+// Failers
+var input3 = "123";
+var results = null;
+shouldBe('regex21.exec(input3);', 'results');
+var input4 = "x1234";
+var results = ["x1234"];
+shouldBe('regex21.exec(input4);', 'results');
+
+var regex22 = /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/;
+var input0 = "abc!pqr=apquxz.ixr.zzz.ac.uk";
+var results = ["abc!pqr=apquxz.ixr.zzz.ac.uk", "abc", "pqr"];
+shouldBe('regex22.exec(input0);', 'results');
+// Failers
+var input1 = "!pqr=apquxz.ixr.zzz.ac.uk";
+var results = null;
+shouldBe('regex22.exec(input1);', 'results');
+var input2 = "abc!=apquxz.ixr.zzz.ac.uk";
+var results = null;
+shouldBe('regex22.exec(input2);', 'results');
+var input3 = "abc!pqr=apquxz:ixr.zzz.ac.uk";
+var results = null;
+shouldBe('regex22.exec(input3);', 'results');
+var input4 = "abc!pqr=apquxz.ixr.zzz.ac.ukk";
+var results = null;
+shouldBe('regex22.exec(input4);', 'results');
+
+var regex23 = /:/;
+var input0 = "Well, we need a colon: somewhere";
+var results = [":"];
+shouldBe('regex23.exec(input0);', 'results');
+var input1 = "*** Fail if we don't";
+var results = null;
+shouldBe('regex23.exec(input1);', 'results');
+
+var regex24 = /([\da-f:]+)$/i;
+var input0 = "0abc";
+var results = ["0abc", "0abc"];
+shouldBe('regex24.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["abc", "abc"];
+shouldBe('regex24.exec(input1);', 'results');
+var input2 = "fed";
+var results = ["fed", "fed"];
+shouldBe('regex24.exec(input2);', 'results');
+var input3 = "E";
+var results = ["E", "E"];
+shouldBe('regex24.exec(input3);', 'results');
+var input4 = "::";
+var results = ["::", "::"];
+shouldBe('regex24.exec(input4);', 'results');
+var input5 = "5f03:12C0::932e";
+var results = ["5f03:12C0::932e", "5f03:12C0::932e"];
+shouldBe('regex24.exec(input5);', 'results');
+var input6 = "fed def";
+var results = ["def", "def"];
+shouldBe('regex24.exec(input6);', 'results');
+var input7 = "Any old stuff";
+var results = ["ff", "ff"];
+shouldBe('regex24.exec(input7);', 'results');
+// Failers
+var input8 = "0zzz";
+var results = null;
+shouldBe('regex24.exec(input8);', 'results');
+var input9 = "gzzz";
+var results = null;
+shouldBe('regex24.exec(input9);', 'results');
+var input10 = "fed\x20";
+var results = null;
+shouldBe('regex24.exec(input10);', 'results');
+var input11 = "Any old rubbish";
+var results = null;
+shouldBe('regex24.exec(input11);', 'results');
+
+var regex25 = /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
+var input0 = ".1.2.3";
+var results = [".1.2.3", "1", "2", "3"];
+shouldBe('regex25.exec(input0);', 'results');
+var input1 = "A.12.123.0";
+var results = ["A.12.123.0", "12", "123", "0"];
+shouldBe('regex25.exec(input1);', 'results');
+// Failers
+var input2 = ".1.2.3333";
+var results = null;
+shouldBe('regex25.exec(input2);', 'results');
+var input3 = "1.2.3";
+var results = null;
+shouldBe('regex25.exec(input3);', 'results');
+var input4 = "1234.2.3";
+var results = null;
+shouldBe('regex25.exec(input4);', 'results');
+
+var regex26 = /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/;
+var input0 = "1 IN SOA non-sp1 non-sp2(";
+var results = ["1 IN SOA non-sp1 non-sp2(", "1", "non-sp1", "non-sp2"];
+shouldBe('regex26.exec(input0);', 'results');
+var input1 = "1 IN SOA non-sp1 non-sp2 (";
+var results = ["1 IN SOA non-sp1 non-sp2 (", "1", "non-sp1", "non-sp2"];
+shouldBe('regex26.exec(input1);', 'results');
+// Failers
+var input2 = "1IN SOA non-sp1 non-sp2(";
+var results = null;
+shouldBe('regex26.exec(input2);', 'results');
+
+var regex27 = /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/;
+var input0 = "a.";
+var results = ["a.", undefined];
+shouldBe('regex27.exec(input0);', 'results');
+var input1 = "Z.";
+var results = ["Z.", undefined];
+shouldBe('regex27.exec(input1);', 'results');
+var input2 = "2.";
+var results = ["2.", undefined];
+shouldBe('regex27.exec(input2);', 'results');
+var input3 = "ab-c.pq-r.";
+var results = ["ab-c.pq-r.", ".pq-r"];
+shouldBe('regex27.exec(input3);', 'results');
+var input4 = "sxk.zzz.ac.uk.";
+var results = ["sxk.zzz.ac.uk.", ".uk"];
+shouldBe('regex27.exec(input4);', 'results');
+var input5 = "x-.y-.";
+var results = ["x-.y-.", ".y-"];
+shouldBe('regex27.exec(input5);', 'results');
+// Failers
+var input6 = "-abc.peq.";
+var results = null;
+shouldBe('regex27.exec(input6);', 'results');
+
+var regex28 = /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/;
+var input0 = "*.a";
+var results = ["*.a", undefined, undefined, undefined];
+shouldBe('regex28.exec(input0);', 'results');
+var input1 = "*.b0-a";
+var results = ["*.b0-a", "0-a", undefined, undefined];
+shouldBe('regex28.exec(input1);', 'results');
+var input2 = "*.c3-b.c";
+var results = ["*.c3-b.c", "3-b", ".c", undefined];
+shouldBe('regex28.exec(input2);', 'results');
+var input3 = "*.c-a.b-c";
+var results = ["*.c-a.b-c", "-a", ".b-c", "-c"];
+shouldBe('regex28.exec(input3);', 'results');
+// Failers
+var input4 = "*.0";
+var results = null;
+shouldBe('regex28.exec(input4);', 'results');
+var input5 = "*.a-";
+var results = null;
+shouldBe('regex28.exec(input5);', 'results');
+var input6 = "*.a-b.c-";
+var results = null;
+shouldBe('regex28.exec(input6);', 'results');
+var input7 = "*.c-a.0-c";
+var results = null;
+shouldBe('regex28.exec(input7);', 'results');
+
+var regex29 = /^(?=ab(de))(abd)(e)/;
+var input0 = "abde";
+var results = ["abde", "de", "abd", "e"];
+shouldBe('regex29.exec(input0);', 'results');
+
+var regex30 = /^(?!(ab)de|x)(abd)(f)/;
+var input0 = "abdf";
+var results = ["abdf", undefined, "abd", "f"];
+shouldBe('regex30.exec(input0);', 'results');
+
+var regex31 = /^(?=(ab(cd)))(ab)/;
+var input0 = "abcd";
+var results = ["ab", "abcd", "cd", "ab"];
+shouldBe('regex31.exec(input0);', 'results');
+
+var regex32 = /^[\da-f](\.[\da-f])*$/i;
+var input0 = "a.b.c.d";
+var results = ["a.b.c.d", ".d"];
+shouldBe('regex32.exec(input0);', 'results');
+var input1 = "A.B.C.D";
+var results = ["A.B.C.D", ".D"];
+shouldBe('regex32.exec(input1);', 'results');
+var input2 = "a.b.c.1.2.3.C";
+var results = ["a.b.c.1.2.3.C", ".C"];
+shouldBe('regex32.exec(input2);', 'results');
+
+var regex33 = /^\".*\"\s*(;.*)?$/;
+var input0 = "\"1234\"";
+var results = ["\"1234\"", undefined];
+shouldBe('regex33.exec(input0);', 'results');
+var input1 = "\"abcd\" ;";
+var results = ["\"abcd\" ;", ";"];
+shouldBe('regex33.exec(input1);', 'results');
+var input2 = "\"\" ; rhubarb";
+var results = ["\"\" ; rhubarb", "; rhubarb"];
+shouldBe('regex33.exec(input2);', 'results');
+// Failers
+var input3 = "\"1234\" : things";
+var results = null;
+shouldBe('regex33.exec(input3);', 'results');
+
+var regex34 = /^$/;
+var input0 = "";
+var results = [""];
+shouldBe('regex34.exec(input0);', 'results');
+
+var regex35 = /^a\ b[c ]d$/;
+var input0 = "a bcd";
+var results = ["a bcd"];
+shouldBe('regex35.exec(input0);', 'results');
+var input1 = "a b d";
+var results = ["a b d"];
+shouldBe('regex35.exec(input1);', 'results');
+var input2 = "abcd";
+var results = null;
+shouldBe('regex35.exec(input2);', 'results');
+var input3 = "ab d";
+var results = null;
+shouldBe('regex35.exec(input3);', 'results');
+
+var regex36 = /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/;
+var input0 = "abcdefhijklm";
+var results = ["abcdefhijklm", "abc", "bc", "c", "def", "ef", "f", "hij", "ij", "j", "klm", "lm", "m"];
+shouldBe('regex36.exec(input0);', 'results');
+
+var regex37 = /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/;
+var input0 = "abcdefhijklm";
+var results = ["abcdefhijklm", "bc", "c", "ef", "f", "ij", "j", "lm", "m"];
+shouldBe('regex37.exec(input0);', 'results');
+
+var regex38 = /^[\w][\W][\s][\S][\d][\D][\n][\cc][\022]/;
+var input0 = "a+ Z0+\n\x03\x12";
+var results = ["a+ Z0+\x0a\x03\x12"];
+shouldBe('regex38.exec(input0);', 'results');
+
+var regex39 = /^[.^$|()*+?{,}]+/;
+var input0 = ".^\$(*+)|{?,?}";
+var results = [".^$(*+)|{?,?}"];
+shouldBe('regex39.exec(input0);', 'results');
+
+var regex40 = /^a*\w/;
+var input0 = "z";
+var results = ["z"];
+shouldBe('regex40.exec(input0);', 'results');
+var input1 = "az";
+var results = ["az"];
+shouldBe('regex40.exec(input1);', 'results');
+var input2 = "aaaz";
+var results = ["aaaz"];
+shouldBe('regex40.exec(input2);', 'results');
+var input3 = "a";
+var results = ["a"];
+shouldBe('regex40.exec(input3);', 'results');
+var input4 = "aa";
+var results = ["aa"];
+shouldBe('regex40.exec(input4);', 'results');
+var input5 = "aaaa";
+var results = ["aaaa"];
+shouldBe('regex40.exec(input5);', 'results');
+var input6 = "a+";
+var results = ["a"];
+shouldBe('regex40.exec(input6);', 'results');
+var input7 = "aa+";
+var results = ["aa"];
+shouldBe('regex40.exec(input7);', 'results');
+
+var regex41 = /^a*?\w/;
+var input0 = "z";
+var results = ["z"];
+shouldBe('regex41.exec(input0);', 'results');
+var input1 = "az";
+var results = ["a"];
+shouldBe('regex41.exec(input1);', 'results');
+var input2 = "aaaz";
+var results = ["a"];
+shouldBe('regex41.exec(input2);', 'results');
+var input3 = "a";
+var results = ["a"];
+shouldBe('regex41.exec(input3);', 'results');
+var input4 = "aa";
+var results = ["a"];
+shouldBe('regex41.exec(input4);', 'results');
+var input5 = "aaaa";
+var results = ["a"];
+shouldBe('regex41.exec(input5);', 'results');
+var input6 = "a+";
+var results = ["a"];
+shouldBe('regex41.exec(input6);', 'results');
+var input7 = "aa+";
+var results = ["a"];
+shouldBe('regex41.exec(input7);', 'results');
+
+var regex42 = /^a+\w/;
+var input0 = "az";
+var results = ["az"];
+shouldBe('regex42.exec(input0);', 'results');
+var input1 = "aaaz";
+var results = ["aaaz"];
+shouldBe('regex42.exec(input1);', 'results');
+var input2 = "aa";
+var results = ["aa"];
+shouldBe('regex42.exec(input2);', 'results');
+var input3 = "aaaa";
+var results = ["aaaa"];
+shouldBe('regex42.exec(input3);', 'results');
+var input4 = "aa+";
+var results = ["aa"];
+shouldBe('regex42.exec(input4);', 'results');
+
+var regex43 = /^a+?\w/;
+var input0 = "az";
+var results = ["az"];
+shouldBe('regex43.exec(input0);', 'results');
+var input1 = "aaaz";
+var results = ["aa"];
+shouldBe('regex43.exec(input1);', 'results');
+var input2 = "aa";
+var results = ["aa"];
+shouldBe('regex43.exec(input2);', 'results');
+var input3 = "aaaa";
+var results = ["aa"];
+shouldBe('regex43.exec(input3);', 'results');
+var input4 = "aa+";
+var results = ["aa"];
+shouldBe('regex43.exec(input4);', 'results');
+
+var regex44 = /^\d{8}\w{2,}/;
+var input0 = "1234567890";
+var results = ["1234567890"];
+shouldBe('regex44.exec(input0);', 'results');
+var input1 = "12345678ab";
+var results = ["12345678ab"];
+shouldBe('regex44.exec(input1);', 'results');
+var input2 = "12345678__";
+var results = ["12345678__"];
+shouldBe('regex44.exec(input2);', 'results');
+// Failers
+var input3 = "1234567";
+var results = null;
+shouldBe('regex44.exec(input3);', 'results');
+
+var regex45 = /^[aeiou\d]{4,5}$/;
+var input0 = "uoie";
+var results = ["uoie"];
+shouldBe('regex45.exec(input0);', 'results');
+var input1 = "1234";
+var results = ["1234"];
+shouldBe('regex45.exec(input1);', 'results');
+var input2 = "12345";
+var results = ["12345"];
+shouldBe('regex45.exec(input2);', 'results');
+var input3 = "aaaaa";
+var results = ["aaaaa"];
+shouldBe('regex45.exec(input3);', 'results');
+// Failers
+var input4 = "123456";
+var results = null;
+shouldBe('regex45.exec(input4);', 'results');
+
+var regex46 = /^[aeiou\d]{4,5}?/;
+var input0 = "uoie";
+var results = ["uoie"];
+shouldBe('regex46.exec(input0);', 'results');
+var input1 = "1234";
+var results = ["1234"];
+shouldBe('regex46.exec(input1);', 'results');
+var input2 = "12345";
+var results = ["1234"];
+shouldBe('regex46.exec(input2);', 'results');
+var input3 = "aaaaa";
+var results = ["aaaa"];
+shouldBe('regex46.exec(input3);', 'results');
+var input4 = "123456";
+var results = ["1234"];
+shouldBe('regex46.exec(input4);', 'results');
+
+var regex47 = /^(abc|def)=(\1){2,3}$/;
+var input0 = "abc=abcabc";
+var results = ["abc=abcabc", "abc", "abc"];
+shouldBe('regex47.exec(input0);', 'results');
+var input1 = "def=defdefdef";
+var results = ["def=defdefdef", "def", "def"];
+shouldBe('regex47.exec(input1);', 'results');
+// Failers
+var input2 = "abc=defdef";
+var results = null;
+shouldBe('regex47.exec(input2);', 'results');
+
+var regex48 = /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?:)2$/;
+var input0 = "abcdefghijkcda2";
+var results = ["abcdefghijkcda2", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "cd"];
+shouldBe('regex48.exec(input0);', 'results');
+var input1 = "abcdefghijkkkkcda2";
+var results = ["abcdefghijkkkkcda2", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "cd"];
+shouldBe('regex48.exec(input1);', 'results');
+
+var regex49 = /(cat(a(ract|tonic)|erpillar)) \1()2(3)/;
+var input0 = "cataract cataract23";
+var results = ["cataract cataract23", "cataract", "aract", "ract", "", "3"];
+shouldBe('regex49.exec(input0);', 'results');
+var input1 = "catatonic catatonic23";
+var results = ["catatonic catatonic23", "catatonic", "atonic", "tonic", "", "3"];
+shouldBe('regex49.exec(input1);', 'results');
+var input2 = "caterpillar caterpillar23";
+var results = ["caterpillar caterpillar23", "caterpillar", "erpillar", undefined, "", "3"];
+shouldBe('regex49.exec(input2);', 'results');
+
+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]/;
+var input0 = "From abcd Mon Sep 01 12:33:02 1997";
+var results = ["From abcd Mon Sep 01 12:33", "abcd"];
+shouldBe('regex50.exec(input0);', 'results');
+
+var regex51 = /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/;
+var input0 = "From abcd Mon Sep 01 12:33:02 1997";
+var results = ["From abcd Mon Sep 01 12:33", "Sep "];
+shouldBe('regex51.exec(input0);', 'results');
+var input1 = "From abcd Mon Sep 1 12:33:02 1997";
+var results = ["From abcd Mon Sep 1 12:33", "Sep "];
+shouldBe('regex51.exec(input1);', 'results');
+// Failers
+var input2 = "From abcd Sep 01 12:33:02 1997";
+var results = null;
+shouldBe('regex51.exec(input2);', 'results');
+
+var regex52 = /^12.34/;
+// Failers
+var input0 = "12\n34";
+var results = null;
+shouldBe('regex52.exec(input0);', 'results');
+var input1 = "12\r34";
+var results = null;
+shouldBe('regex52.exec(input1);', 'results');
+
+var regex53 = /\w+(?=\t)/;
+var input0 = "the quick brown\t fox";
+var results = ["brown"];
+shouldBe('regex53.exec(input0);', 'results');
+
+var regex54 = /foo(?!bar)(.*)/;
+var input0 = "foobar is foolish see?";
+var results = ["foolish see?", "lish see?"];
+shouldBe('regex54.exec(input0);', 'results');
+
+var regex55 = /(?:(?!foo)...|^.{0,2})bar(.*)/;
+var input0 = "foobar crowbar etc";
+var results = ["rowbar etc", " etc"];
+shouldBe('regex55.exec(input0);', 'results');
+var input1 = "barrel";
+var results = ["barrel", "rel"];
+shouldBe('regex55.exec(input1);', 'results');
+var input2 = "2barrel";
+var results = ["2barrel", "rel"];
+shouldBe('regex55.exec(input2);', 'results');
+var input3 = "A barrel";
+var results = ["A barrel", "rel"];
+shouldBe('regex55.exec(input3);', 'results');
+
+var regex56 = /^(\D*)(?=\d)(?!123)/;
+var input0 = "abc456";
+var results = ["abc", "abc"];
+shouldBe('regex56.exec(input0);', 'results');
+// Failers
+var input1 = "abc123";
+var results = null;
+shouldBe('regex56.exec(input1);', 'results');
+
+var regex57 = /^(a)\1{2,3}(.)/;
+var input0 = "aaab";
+var results = ["aaab", "a", "b"];
+shouldBe('regex57.exec(input0);', 'results');
+var input1 = "aaaab";
+var results = ["aaaab", "a", "b"];
+shouldBe('regex57.exec(input1);', 'results');
+var input2 = "aaaaab";
+var results = ["aaaaa", "a", "a"];
+shouldBe('regex57.exec(input2);', 'results');
+var input3 = "aaaaaab";
+var results = ["aaaaa", "a", "a"];
+shouldBe('regex57.exec(input3);', 'results');
+
+var regex58 = /(?!^)abc/;
+var input0 = "the abc";
+var results = ["abc"];
+shouldBe('regex58.exec(input0);', 'results');
+// Failers
+var input1 = "abc";
+var results = null;
+shouldBe('regex58.exec(input1);', 'results');
+
+var regex59 = /(?=^)abc/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex59.exec(input0);', 'results');
+// Failers
+var input1 = "the abc";
+var results = null;
+shouldBe('regex59.exec(input1);', 'results');
+
+var regex60 = /^[ab]{1,3}(ab*|b)/;
+var input0 = "aabbbbb";
+var results = ["aabb", "b"];
+shouldBe('regex60.exec(input0);', 'results');
+
+var regex61 = /^[ab]{1,3}?(ab*|b)/;
+var input0 = "aabbbbb";
+var results = ["aabbbbb", "abbbbb"];
+shouldBe('regex61.exec(input0);', 'results');
+
+var regex62 = /^[ab]{1,3}?(ab*?|b)/;
+var input0 = "aabbbbb";
+var results = ["aa", "a"];
+shouldBe('regex62.exec(input0);', 'results');
+
+var regex63 = /^[ab]{1,3}(ab*?|b)/;
+var input0 = "aabbbbb";
+var results = ["aabb", "b"];
+shouldBe('regex63.exec(input0);', 'results');
+
+var regex64 = /abc\0def\00pqr\000xyz\0000AB/;
+var input0 = "abc\0def\0pqr\0xyz\0AB";
+var results = ["abc\0def\0pqr\0xyz\0AB"];
+shouldBe('regex64.exec(input0);', 'results');
+var input1 = "abc456 abc\0def\0pqr\0xyz\0ABCDE";
+var results = ["abc\0def\0pqr\0xyz\0AB"];
+shouldBe('regex64.exec(input1);', 'results');
+
+var regex65 = /abc\x0def\x00pqr\x000xyz\x0000AB/;
+var input0 = "abc\x0def\x00pqr\x000xyz\x0000AB";
+var results = ["abc\x0def\x00pqr\x000xyz\x0000AB"];
+shouldBe('regex65.exec(input0);', 'results');
+var input1 = "abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE";
+var results = ["abc\x0def\x00pqr\x000xyz\x0000AB"];
+shouldBe('regex65.exec(input1);', 'results');
+
+var regex66 = /^[\000-\037]/;
+var input0 = "\0A";
+var results = ["\x00"];
+shouldBe('regex66.exec(input0);', 'results');
+var input1 = "\01B";
+var results = ["\x01"];
+shouldBe('regex66.exec(input1);', 'results');
+var input2 = "\037C";
+var results = ["\x1f"];
+shouldBe('regex66.exec(input2);', 'results');
+
+var regex67 = /\0*/;
+var input0 = "\0\0\0\0";
+var results = ["\x00\x00\x00\x00"];
+shouldBe('regex67.exec(input0);', 'results');
+
+var regex68 = /A\0{2,3}Z/;
+var input0 = "The A\0\0Z";
+var results = ["A\x00\x00Z"];
+shouldBe('regex68.exec(input0);', 'results');
+var input1 = "An A\0\0\0Z";
+var results = ["A\x00\x00\x00Z"];
+shouldBe('regex68.exec(input1);', 'results');
+// Failers
+var input2 = "A\0Z";
+var results = null;
+shouldBe('regex68.exec(input2);', 'results');
+var input3 = "A\0\x0\0\x0Z";
+var results = null;
+shouldBe('regex68.exec(input3);', 'results');
+
+var regex69 = /^(cow|)\1(bell)/;
+var input0 = "cowcowbell";
+var results = ["cowcowbell", "cow", "bell"];
+shouldBe('regex69.exec(input0);', 'results');
+var input1 = "bell";
+var results = ["bell", "", "bell"];
+shouldBe('regex69.exec(input1);', 'results');
+// Failers
+var input2 = "cowbell";
+var results = null;
+shouldBe('regex69.exec(input2);', 'results');
+
+var regex70 = /^\s/;
+var input0 = "\040abc";
+var results = [" "];
+shouldBe('regex70.exec(input0);', 'results');
+var input1 = "\x0cabc";
+var results = ["\x0c"];
+shouldBe('regex70.exec(input1);', 'results');
+var input2 = "\nabc";
+var results = ["\x0a"];
+shouldBe('regex70.exec(input2);', 'results');
+var input3 = "\rabc";
+var results = ["\x0d"];
+shouldBe('regex70.exec(input3);', 'results');
+var input4 = "\tabc";
+var results = ["\x09"];
+shouldBe('regex70.exec(input4);', 'results');
+// Failers
+var input5 = "abc";
+var results = null;
+shouldBe('regex70.exec(input5);', 'results');
+
+var regex71 = /^(a|)\1*b/;
+var input0 = "ab";
+var results = ["ab", "a"];
+shouldBe('regex71.exec(input0);', 'results');
+var input1 = "aaaab";
+var results = ["aaaab", "a"];
+shouldBe('regex71.exec(input1);', 'results');
+var input2 = "b";
+var results = ["b", ""];
+shouldBe('regex71.exec(input2);', 'results');
+// Failers
+var input3 = "acb";
+var results = null;
+shouldBe('regex71.exec(input3);', 'results');
+
+var regex72 = /^(a|)\1+b/;
+var input0 = "aab";
+var results = ["aab", "a"];
+shouldBe('regex72.exec(input0);', 'results');
+var input1 = "aaaab";
+var results = ["aaaab", "a"];
+shouldBe('regex72.exec(input1);', 'results');
+var input2 = "b";
+var results = ["b", ""];
+shouldBe('regex72.exec(input2);', 'results');
+// Failers
+var input3 = "ab";
+var results = null;
+shouldBe('regex72.exec(input3);', 'results');
+
+var regex73 = /^(a|)\1?b/;
+var input0 = "ab";
+var results = ["ab", "a"];
+shouldBe('regex73.exec(input0);', 'results');
+var input1 = "aab";
+var results = ["aab", "a"];
+shouldBe('regex73.exec(input1);', 'results');
+var input2 = "b";
+var results = ["b", ""];
+shouldBe('regex73.exec(input2);', 'results');
+// Failers
+var input3 = "acb";
+var results = null;
+shouldBe('regex73.exec(input3);', 'results');
+
+var regex74 = /^(a|)\1{2}b/;
+var input0 = "aaab";
+var results = ["aaab", "a"];
+shouldBe('regex74.exec(input0);', 'results');
+var input1 = "b";
+var results = ["b", ""];
+shouldBe('regex74.exec(input1);', 'results');
+// Failers
+var input2 = "ab";
+var results = null;
+shouldBe('regex74.exec(input2);', 'results');
+var input3 = "aab";
+var results = null;
+shouldBe('regex74.exec(input3);', 'results');
+var input4 = "aaaab";
+var results = null;
+shouldBe('regex74.exec(input4);', 'results');
+
+var regex75 = /^(a|)\1{2,3}b/;
+var input0 = "aaab";
+var results = ["aaab", "a"];
+shouldBe('regex75.exec(input0);', 'results');
+var input1 = "aaaab";
+var results = ["aaaab", "a"];
+shouldBe('regex75.exec(input1);', 'results');
+var input2 = "b";
+var results = ["b", ""];
+shouldBe('regex75.exec(input2);', 'results');
+// Failers
+var input3 = "ab";
+var results = null;
+shouldBe('regex75.exec(input3);', 'results');
+var input4 = "aab";
+var results = null;
+shouldBe('regex75.exec(input4);', 'results');
+var input5 = "aaaaab";
+var results = null;
+shouldBe('regex75.exec(input5);', 'results');
+
+var regex76 = /ab{1,3}bc/;
+var input0 = "abbbbc";
+var results = ["abbbbc"];
+shouldBe('regex76.exec(input0);', 'results');
+var input1 = "abbbc";
+var results = ["abbbc"];
+shouldBe('regex76.exec(input1);', 'results');
+var input2 = "abbc";
+var results = ["abbc"];
+shouldBe('regex76.exec(input2);', 'results');
+// Failers
+var input3 = "abc";
+var results = null;
+shouldBe('regex76.exec(input3);', 'results');
+var input4 = "abbbbbc";
+var results = null;
+shouldBe('regex76.exec(input4);', 'results');
+
+var regex77 = /([^.]*)\.([^:]*):[T ]+(.*)/;
+var input0 = "track1.title:TBlah blah blah";
+var results = ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"];
+shouldBe('regex77.exec(input0);', 'results');
+
+var regex78 = /([^.]*)\.([^:]*):[T ]+(.*)/i;
+var input0 = "track1.title:TBlah blah blah";
+var results = ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"];
+shouldBe('regex78.exec(input0);', 'results');
+
+var regex79 = /([^.]*)\.([^:]*):[t ]+(.*)/i;
+var input0 = "track1.title:TBlah blah blah";
+var results = ["track1.title:TBlah blah blah", "track1", "title", "Blah blah blah"];
+shouldBe('regex79.exec(input0);', 'results');
+
+var regex80 = /^[W-c]+$/;
+var input0 = "WXY_^abc";
+var results = ["WXY_^abc"];
+shouldBe('regex80.exec(input0);', 'results');
+// Failers
+var input1 = "wxy";
+var results = null;
+shouldBe('regex80.exec(input1);', 'results');
+
+var regex81 = /^[W-c]+$/i;
+var input0 = "WXY_^abc";
+var results = ["WXY_^abc"];
+shouldBe('regex81.exec(input0);', 'results');
+var input1 = "wxy_^ABC";
+var results = ["wxy_^ABC"];
+shouldBe('regex81.exec(input1);', 'results');
+
+var regex82 = /^[\x3f-\x5F]+$/i;
+var input0 = "WXY_^abc";
+var results = ["WXY_^abc"];
+shouldBe('regex82.exec(input0);', 'results');
+var input1 = "wxy_^ABC";
+var results = ["wxy_^ABC"];
+shouldBe('regex82.exec(input1);', 'results');
+
+var regex83 = /^abc$/m;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex83.exec(input0);', 'results');
+var input1 = "qqq\nabc";
+var results = ["abc"];
+shouldBe('regex83.exec(input1);', 'results');
+var input2 = "abc\nzzz";
+var results = ["abc"];
+shouldBe('regex83.exec(input2);', 'results');
+var input3 = "qqq\nabc\nzzz";
+var results = ["abc"];
+shouldBe('regex83.exec(input3);', 'results');
+
+var regex84 = /^abc$/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex84.exec(input0);', 'results');
+var input1 = "abbbbc";
+var results = null;
+shouldBe('regex84.exec(input1);', 'results');
+var input2 = "abcc";
+var results = null;
+shouldBe('regex84.exec(input2);', 'results');
+var input3 = "qqq\nabc";
+var results = null;
+shouldBe('regex84.exec(input3);', 'results');
+var input4 = "abc\nzzz";
+var results = null;
+shouldBe('regex84.exec(input4);', 'results');
+var input5 = "qqq\nabc\nzzz";
+var results = null;
+shouldBe('regex84.exec(input5);', 'results');
+
+var regex85 = /^abc$/m;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex85.exec(input0);', 'results');
+var input1 = "abc\n";
+var results = ["abc"];
+shouldBe('regex85.exec(input1);', 'results');
+var input2 = "qqq\nabc";
+var results = ["abc"];
+shouldBe('regex85.exec(input2);', 'results');
+var input3 = "abc\nzzz";
+var results = ["abc"];
+shouldBe('regex85.exec(input3);', 'results');
+var input4 = "qqq\nabc\nzzz";
+var results = ["abc"];
+shouldBe('regex85.exec(input4);', 'results');
+
+var regex86 = /^([\w\W])*$/;
+var input0 = "abc\ndef";
+var results = ["abc\x0adef", "f"];
+shouldBe('regex86.exec(input0);', 'results');
+
+var regex87 = /^(.)*$/m;
+var input0 = "abc\ndef";
+var results = ["abc", "c"];
+shouldBe('regex87.exec(input0);', 'results');
+
+var regex88 = /(?:b)|(?::+)/;
+var input0 = "b::c";
+var results = ["b"];
+shouldBe('regex88.exec(input0);', 'results');
+var input1 = "c::b";
+var results = ["::"];
+shouldBe('regex88.exec(input1);', 'results');
+
+var regex89 = /[-az]+/;
+var input0 = "az-";
+var results = ["az-"];
+shouldBe('regex89.exec(input0);', 'results');
+// Failers
+var input1 = "b";
+var results = null;
+shouldBe('regex89.exec(input1);', 'results');
+
+var regex90 = /[az-]+/;
+var input0 = "za-";
+var results = ["za-"];
+shouldBe('regex90.exec(input0);', 'results');
+// Failers
+var input1 = "b";
+var results = null;
+shouldBe('regex90.exec(input1);', 'results');
+
+var regex91 = /[a\-z]+/;
+var input0 = "a-z";
+var results = ["a-z"];
+shouldBe('regex91.exec(input0);', 'results');
+// Failers
+var input1 = "b";
+var results = null;
+shouldBe('regex91.exec(input1);', 'results');
+
+var regex92 = /[a-z]+/;
+var input0 = "abcdxyz";
+var results = ["abcdxyz"];
+shouldBe('regex92.exec(input0);', 'results');
+
+var regex93 = /[\d-]+/;
+var input0 = "12-34";
+var results = ["12-34"];
+shouldBe('regex93.exec(input0);', 'results');
+// Failers
+var input1 = "aaa";
+var results = null;
+shouldBe('regex93.exec(input1);', 'results');
+
+var regex94 = "/[\\d-z]+/";
+shouldNotCompile("regex94");
+
+var regex95 = /\x5c/;
+var input0 = "\\";
+var results = ["\\"];
+shouldBe('regex95.exec(input0);', 'results');
+
+var regex96 = /\x20Z/;
+var input0 = "the Zoo";
+var results = [" Z"];
+shouldBe('regex96.exec(input0);', 'results');
+// Failers
+var input1 = "Zulu";
+var results = null;
+shouldBe('regex96.exec(input1);', 'results');
+
+var regex97 = /(abc)\1/i;
+var input0 = "abcabc";
+var results = ["abcabc", "abc"];
+shouldBe('regex97.exec(input0);', 'results');
+var input1 = "ABCabc";
+var results = ["ABCabc", "ABC"];
+shouldBe('regex97.exec(input1);', 'results');
+var input2 = "abcABC";
+var results = ["abcABC", "abc"];
+shouldBe('regex97.exec(input2);', 'results');
+
+var regex98 = /ab{3cd/;
+var input0 = "ab{3cd";
+var results = ["ab{3cd"];
+shouldBe('regex98.exec(input0);', 'results');
+
+var regex99 = /ab{3,cd/;
+var input0 = "ab{3,cd";
+var results = ["ab{3,cd"];
+shouldBe('regex99.exec(input0);', 'results');
+
+var regex100 = /ab{3,4a}cd/;
+var input0 = "ab{3,4a}cd";
+var results = ["ab{3,4a}cd"];
+shouldBe('regex100.exec(input0);', 'results');
+
+var regex101 = /{4,5a}bc/;
+var input0 = "{4,5a}bc";
+var results = ["{4,5a}bc"];
+shouldBe('regex101.exec(input0);', 'results');
+
+var regex102 = /abc$/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex102.exec(input0);', 'results');
+// Failers
+var input1 = "abc\n";
+var results = null;
+shouldBe('regex102.exec(input1);', 'results');
+var input2 = "abc\ndef";
+var results = null;
+shouldBe('regex102.exec(input2);', 'results');
+
+var regex103 = /abc$/m;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex103.exec(input0);', 'results');
+var input1 = "abc\n";
+var results = ["abc"];
+shouldBe('regex103.exec(input1);', 'results');
+var input2 = "abc\ndef";
+var results = ["abc"];
+shouldBe('regex103.exec(input2);', 'results');
+
+var regex104 = /(abc)\123/;
+var input0 = "abc\x53";
+var results = ["abcS", "abc"];
+shouldBe('regex104.exec(input0);', 'results');
+
+var regex105 = /(abc)\223/;
+var input0 = "abc\x93";
+var results = ["abc\x93", "abc"];
+shouldBe('regex105.exec(input0);', 'results');
+
+var regex106 = /(abc)\323/;
+var input0 = "abc\xd3";
+var results = ["abc\xd3", "abc"];
+shouldBe('regex106.exec(input0);', 'results');
+
+var regex107 = /(abc)\100/;
+var input0 = "abc\x40";
+var results = ["abc@", "abc"];
+shouldBe('regex107.exec(input0);', 'results');
+var input1 = "abc\100";
+var results = ["abc@", "abc"];
+shouldBe('regex107.exec(input1);', 'results');
+
+var regex108 = /(abc)\1000/;
+var input0 = "abc\x400";
+var results = ["abc at 0", "abc"];
+shouldBe('regex108.exec(input0);', 'results');
+var input1 = "abc\x40\x30";
+var results = ["abc at 0", "abc"];
+shouldBe('regex108.exec(input1);', 'results');
+var input2 = "abc\1000";
+var results = ["abc at 0", "abc"];
+shouldBe('regex108.exec(input2);', 'results');
+var input3 = "abc\100\x30";
+var results = ["abc at 0", "abc"];
+shouldBe('regex108.exec(input3);', 'results');
+var input4 = "abc\100\060";
+var results = ["abc at 0", "abc"];
+shouldBe('regex108.exec(input4);', 'results');
+var input5 = "abc\100\60";
+var results = ["abc at 0", "abc"];
+shouldBe('regex108.exec(input5);', 'results');
+
+var regex109 = /abc\081/;
+var input0 = "abc\081";
+var results = ["abc\x0081"];
+shouldBe('regex109.exec(input0);', 'results');
+var input1 = "abc\0\x38\x31";
+var results = ["abc\x0081"];
+shouldBe('regex109.exec(input1);', 'results');
+
+var regex110 = /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/;
+var input0 = "abcdefghijkllS";
+var results = ["abcdefghijkllS", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"];
+shouldBe('regex110.exec(input0);', 'results');
+
+var regex111 = /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/;
+var input0 = "abcdefghijk\12S";
+var results = ["abcdefghijk\x0aS", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"];
+shouldBe('regex111.exec(input0);', 'results');
+
+var regex112 = /ab\idef/;
+var input0 = "abidef";
+var results = ["abidef"];
+shouldBe('regex112.exec(input0);', 'results');
+
+var regex113 = /a{0}bc/;
+var input0 = "bc";
+var results = ["bc"];
+shouldBe('regex113.exec(input0);', 'results');
+
+var regex114 = /(?:a|(?:bc)){0,0}?xyz/;
+var input0 = "xyz";
+var results = ["xyz"];
+shouldBe('regex114.exec(input0);', 'results');
+
+var regex115 = /abc[\10]de/;
+var input0 = "abc\010de";
+var results = ["abc\x08de"];
+shouldBe('regex115.exec(input0);', 'results');
+
+var regex116 = /abc[\1]de/;
+var input0 = "abc\1de";
+var results = ["abc\x01de"];
+shouldBe('regex116.exec(input0);', 'results');
+
+var regex117 = /(abc)[\1]de/;
+var input0 = "abc\1de";
+var results = ["abc\x01de", "abc"];
+shouldBe('regex117.exec(input0);', 'results');
+
+var regex118 = /a.b/;
+var input0 = "a\nb";
+var results = null;
+shouldBe('regex118.exec(input0);', 'results');
+
+var regex119 = /^([^a])([^\b])([^c]*)([^d]{3,4})/;
+var input0 = "baNOTccccd";
+var results = ["baNOTcccc", "b", "a", "NOT", "cccc"];
+shouldBe('regex119.exec(input0);', 'results');
+var input1 = "baNOTcccd";
+var results = ["baNOTccc", "b", "a", "NOT", "ccc"];
+shouldBe('regex119.exec(input1);', 'results');
+var input2 = "baNOTccd";
+var results = ["baNOTcc", "b", "a", "NO", "Tcc"];
+shouldBe('regex119.exec(input2);', 'results');
+var input3 = "bacccd";
+var results = ["baccc", "b", "a", "", "ccc"];
+shouldBe('regex119.exec(input3);', 'results');
+// Failers
+var input4 = "anything";
+var results = null;
+shouldBe('regex119.exec(input4);', 'results');
+var input5 = "b\bc";
+var results = null;
+shouldBe('regex119.exec(input5);', 'results');
+var input6 = "baccd";
+var results = null;
+shouldBe('regex119.exec(input6);', 'results');
+
+var regex120 = /[^a]/;
+var input0 = "Abc";
+var results = ["A"];
+shouldBe('regex120.exec(input0);', 'results');
+
+var regex121 = /[^a]/i;
+var input0 = "Abc";
+var results = ["b"];
+shouldBe('regex121.exec(input0);', 'results');
+
+var regex122 = /[^a]+/;
+var input0 = "AAAaAbc";
+var results = ["AAA"];
+shouldBe('regex122.exec(input0);', 'results');
+
+var regex123 = /[^a]+/i;
+var input0 = "AAAaAbc";
+var results = ["bc"];
+shouldBe('regex123.exec(input0);', 'results');
+
+var regex124 = /[^a]+/;
+var input0 = "bbb\nccc";
+var results = ["bbb\x0accc"];
+shouldBe('regex124.exec(input0);', 'results');
+
+var regex125 = /[^k]$/;
+var input0 = "abc";
+var results = ["c"];
+shouldBe('regex125.exec(input0);', 'results');
+// Failers
+var input1 = "abk";
+var results = null;
+shouldBe('regex125.exec(input1);', 'results');
+
+var regex126 = /[^k]{2,3}$/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex126.exec(input0);', 'results');
+var input1 = "kbc";
+var results = ["bc"];
+shouldBe('regex126.exec(input1);', 'results');
+var input2 = "kabc";
+var results = ["abc"];
+shouldBe('regex126.exec(input2);', 'results');
+// Failers
+var input3 = "abk";
+var results = null;
+shouldBe('regex126.exec(input3);', 'results');
+var input4 = "akb";
+var results = null;
+shouldBe('regex126.exec(input4);', 'results');
+var input5 = "akk";
+var results = null;
+shouldBe('regex126.exec(input5);', 'results');
+
+var regex127 = /^\d{8,}\@.+[^k]$/;
+var input0 = "12345678\@a.b.c.d";
+var results = ["12345678 at a.b.c.d"];
+shouldBe('regex127.exec(input0);', 'results');
+var input1 = "123456789\@x.y.z";
+var results = ["123456789 at x.y.z"];
+shouldBe('regex127.exec(input1);', 'results');
+// Failers
+var input2 = "12345678\@x.y.uk";
+var results = null;
+shouldBe('regex127.exec(input2);', 'results');
+var input3 = "1234567\@a.b.c.d";
+var results = null;
+shouldBe('regex127.exec(input3);', 'results');
+
+var regex128 = /(a)\1{8,}/;
+var input0 = "aaaaaaaaa";
+var results = ["aaaaaaaaa", "a"];
+shouldBe('regex128.exec(input0);', 'results');
+var input1 = "aaaaaaaaaa";
+var results = ["aaaaaaaaaa", "a"];
+shouldBe('regex128.exec(input1);', 'results');
+// Failers
+var input2 = "aaaaaaa";
+var results = null;
+shouldBe('regex128.exec(input2);', 'results');
+
+var regex129 = /[^a]/;
+var input0 = "aaaabcd";
+var results = ["b"];
+shouldBe('regex129.exec(input0);', 'results');
+var input1 = "aaAabcd";
+var results = ["A"];
+shouldBe('regex129.exec(input1);', 'results');
+
+var regex130 = /[^a]/i;
+var input0 = "aaaabcd";
+var results = ["b"];
+shouldBe('regex130.exec(input0);', 'results');
+var input1 = "aaAabcd";
+var results = ["b"];
+shouldBe('regex130.exec(input1);', 'results');
+
+var regex131 = /[^az]/;
+var input0 = "aaaabcd";
+var results = ["b"];
+shouldBe('regex131.exec(input0);', 'results');
+var input1 = "aaAabcd";
+var results = ["A"];
+shouldBe('regex131.exec(input1);', 'results');
+
+var regex132 = /[^az]/i;
+var input0 = "aaaabcd";
+var results = ["b"];
+shouldBe('regex132.exec(input0);', 'results');
+var input1 = "aaAabcd";
+var results = ["b"];
+shouldBe('regex132.exec(input1);', 'results');
+
+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/;
+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";
+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"];
+shouldBe('regex133.exec(input0);', 'results');
+
+var regex134 = /P[^*]TAIRE[^*]{1,6}?LL/;
+var input0 = "xxxxxxxxxxxPSTAIREISLLxxxxxxxxx";
+var results = ["PSTAIREISLL"];
+shouldBe('regex134.exec(input0);', 'results');
+
+var regex135 = /P[^*]TAIRE[^*]{1,}?LL/;
+var input0 = "xxxxxxxxxxxPSTAIREISLLxxxxxxxxx";
+var results = ["PSTAIREISLL"];
+shouldBe('regex135.exec(input0);', 'results');
+
+var regex136 = /(\.\d\d[1-9]?)\d+/;
+var input0 = "1.230003938";
+var results = [".230003938", ".23"];
+shouldBe('regex136.exec(input0);', 'results');
+var input1 = "1.875000282";
+var results = [".875000282", ".875"];
+shouldBe('regex136.exec(input1);', 'results');
+var input2 = "1.235";
+var results = [".235", ".23"];
+shouldBe('regex136.exec(input2);', 'results');
+
+var regex137 = /(\.\d\d((?=0)|\d(?=\d)))/;
+var input0 = "1.230003938";
+var results = [".23", ".23", ""];
+shouldBe('regex137.exec(input0);', 'results');
+var input1 = "1.875000282";
+var results = [".875", ".875", "5"];
+shouldBe('regex137.exec(input1);', 'results');
+// Failers
+var input2 = "1.235";
+var results = null;
+shouldBe('regex137.exec(input2);', 'results');
+
+var regex138 = /a(?:)b/;
+var input0 = "ab";
+var results = ["ab"];
+shouldBe('regex138.exec(input0);', 'results');
+
+var regex139 = /\b(foo)\s+(\w+)/i;
+var input0 = "Food is on the foo table";
+var results = ["foo table", "foo", "table"];
+shouldBe('regex139.exec(input0);', 'results');
+
+var regex140 = /foo(.*)bar/;
+var input0 = "The food is under the bar in the barn.";
+var results = ["food is under the bar in the bar", "d is under the bar in the "];
+shouldBe('regex140.exec(input0);', 'results');
+
+var regex141 = /foo(.*?)bar/ ;
+var input0 = "The food is under the bar in the barn.";
+var results = ["food is under the bar", "d is under the "];
+shouldBe('regex141.exec(input0);', 'results');
+
+var regex142 = /(.*)(\d*)/;
+var input0 = "I have 2 numbers: 53147";
+var results = ["I have 2 numbers: 53147", "I have 2 numbers: 53147", ""];
+shouldBe('regex142.exec(input0);', 'results');
+
+var regex143 = /(.*)(\d+)/;
+var input0 = "I have 2 numbers: 53147";
+var results = ["I have 2 numbers: 53147", "I have 2 numbers: 5314", "7"];
+shouldBe('regex143.exec(input0);', 'results');
+
+var regex144 = /(.*?)(\d*)/;
+var input0 = "I have 2 numbers: 53147";
+var results = ["", "", ""];
+shouldBe('regex144.exec(input0);', 'results');
+
+var regex145 = /(.*?)(\d+)/;
+var input0 = "I have 2 numbers: 53147";
+var results = ["I have 2", "I have ", "2"];
+shouldBe('regex145.exec(input0);', 'results');
+
+var regex146 = /(.*)(\d+)$/;
+var input0 = "I have 2 numbers: 53147";
+var results = ["I have 2 numbers: 53147", "I have 2 numbers: 5314", "7"];
+shouldBe('regex146.exec(input0);', 'results');
+
+var regex147 = /(.*?)(\d+)$/;
+var input0 = "I have 2 numbers: 53147";
+var results = ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"];
+shouldBe('regex147.exec(input0);', 'results');
+
+var regex148 = /(.*)\b(\d+)$/;
+var input0 = "I have 2 numbers: 53147";
+var results = ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"];
+shouldBe('regex148.exec(input0);', 'results');
+
+var regex149 = /(.*\D)(\d+)$/;
+var input0 = "I have 2 numbers: 53147";
+var results = ["I have 2 numbers: 53147", "I have 2 numbers: ", "53147"];
+shouldBe('regex149.exec(input0);', 'results');
+
+var regex150 = /^\D*(?!123)/;
+var input0 = "ABC123";
+var results = ["AB"];
+shouldBe('regex150.exec(input0);', 'results');
+
+var regex151 = /^(\D*)(?=\d)(?!123)/;
+var input0 = "ABC445";
+var results = ["ABC", "ABC"];
+shouldBe('regex151.exec(input0);', 'results');
+// Failers
+var input1 = "ABC123";
+var results = null;
+shouldBe('regex151.exec(input1);', 'results');
+
+var regex152 = /^[W-]46]/;
+var input0 = "W46]789";
+var results = ["W46]"];
+shouldBe('regex152.exec(input0);', 'results');
+var input1 = "-46]789";
+var results = ["-46]"];
+shouldBe('regex152.exec(input1);', 'results');
+// Failers
+var input2 = "Wall";
+var results = null;
+shouldBe('regex152.exec(input2);', 'results');
+var input3 = "Zebra";
+var results = null;
+shouldBe('regex152.exec(input3);', 'results');
+var input4 = "42";
+var results = null;
+shouldBe('regex152.exec(input4);', 'results');
+var input5 = "[abcd]";
+var results = null;
+shouldBe('regex152.exec(input5);', 'results');
+var input6 = "]abcd[";
+var results = null;
+shouldBe('regex152.exec(input6);', 'results');
+
+var regex153 = /^[W-\]46]/;
+var input0 = "W46]789";
+var results = ["W"];
+shouldBe('regex153.exec(input0);', 'results');
+var input1 = "Wall";
+var results = ["W"];
+shouldBe('regex153.exec(input1);', 'results');
+var input2 = "Zebra";
+var results = ["Z"];
+shouldBe('regex153.exec(input2);', 'results');
+var input3 = "Xylophone";
+var results = ["X"];
+shouldBe('regex153.exec(input3);', 'results');
+var input4 = "42";
+var results = ["4"];
+shouldBe('regex153.exec(input4);', 'results');
+var input5 = "[abcd]";
+var results = ["["];
+shouldBe('regex153.exec(input5);', 'results');
+var input6 = "]abcd[";
+var results = ["]"];
+shouldBe('regex153.exec(input6);', 'results');
+var input7 = "\\backslash";
+var results = ["\\"];
+shouldBe('regex153.exec(input7);', 'results');
+// Failers
+var input8 = "-46]789";
+var results = null;
+shouldBe('regex153.exec(input8);', 'results');
+var input9 = "well";
+var results = null;
+shouldBe('regex153.exec(input9);', 'results');
+
+var regex154 = /\d\d\/\d\d\/\d\d\d\d/;
+var input0 = "01/01/2000";
+var results = ["01/01/2000"];
+shouldBe('regex154.exec(input0);', 'results');
+
+var regex155 = /word (?:[a-zA-Z0-9]+ ){0,10}otherword/;
+var input0 = "word cat dog elephant mussel cow horse canary baboon snake shark otherword";
+var results = ["word cat dog elephant mussel cow horse canary baboon snake shark otherword"];
+shouldBe('regex155.exec(input0);', 'results');
+var input1 = "word cat dog elephant mussel cow horse canary baboon snake shark";
+var results = null;
+shouldBe('regex155.exec(input1);', 'results');
+
+var regex156 = /word (?:[a-zA-Z0-9]+ ){0,300}otherword/;
+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";
+var results = null;
+shouldBe('regex156.exec(input0);', 'results');
+
+var regex157 = /^(?:a){0,0}/;
+var input0 = "bcd";
+var results = [""];
+shouldBe('regex157.exec(input0);', 'results');
+var input1 = "abc";
+var results = [""];
+shouldBe('regex157.exec(input1);', 'results');
+var input2 = "aab";
+var results = [""];
+shouldBe('regex157.exec(input2);', 'results');
+
+var regex158 = /^(a){0,1}/;
+var input0 = "bcd";
+var results = ["", undefined];
+shouldBe('regex158.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["a", "a"];
+shouldBe('regex158.exec(input1);', 'results');
+var input2 = "aab";
+var results = ["a", "a"];
+shouldBe('regex158.exec(input2);', 'results');
+
+var regex159 = /^(a){0,2}/;
+var input0 = "bcd";
+var results = ["", undefined];
+shouldBe('regex159.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["a", "a"];
+shouldBe('regex159.exec(input1);', 'results');
+var input2 = "aab";
+var results = ["aa", "a"];
+shouldBe('regex159.exec(input2);', 'results');
+
+var regex160 = /^(a){0,3}/;
+var input0 = "bcd";
+var results = ["", undefined];
+shouldBe('regex160.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["a", "a"];
+shouldBe('regex160.exec(input1);', 'results');
+var input2 = "aab";
+var results = ["aa", "a"];
+shouldBe('regex160.exec(input2);', 'results');
+var input3 = "aaa";
+var results = ["aaa", "a"];
+shouldBe('regex160.exec(input3);', 'results');
+
+var regex161 = /^(a){0,}/;
+var input0 = "bcd";
+var results = ["", undefined];
+shouldBe('regex161.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["a", "a"];
+shouldBe('regex161.exec(input1);', 'results');
+var input2 = "aab";
+var results = ["aa", "a"];
+shouldBe('regex161.exec(input2);', 'results');
+var input3 = "aaa";
+var results = ["aaa", "a"];
+shouldBe('regex161.exec(input3);', 'results');
+var input4 = "aaaaaaaa";
+var results = ["aaaaaaaa", "a"];
+shouldBe('regex161.exec(input4);', 'results');
+
+var regex162 = /^(a){1,1}/;
+var input0 = "bcd";
+var results = null;
+shouldBe('regex162.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["a", "a"];
+shouldBe('regex162.exec(input1);', 'results');
+var input2 = "aab";
+var results = ["a", "a"];
+shouldBe('regex162.exec(input2);', 'results');
+
+var regex163 = /^(a){1,2}/;
+var input0 = "bcd";
+var results = null;
+shouldBe('regex163.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["a", "a"];
+shouldBe('regex163.exec(input1);', 'results');
+var input2 = "aab";
+var results = ["aa", "a"];
+shouldBe('regex163.exec(input2);', 'results');
+
+var regex164 = /^(a){1,3}/;
+var input0 = "bcd";
+var results = null;
+shouldBe('regex164.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["a", "a"];
+shouldBe('regex164.exec(input1);', 'results');
+var input2 = "aab";
+var results = ["aa", "a"];
+shouldBe('regex164.exec(input2);', 'results');
+var input3 = "aaa";
+var results = ["aaa", "a"];
+shouldBe('regex164.exec(input3);', 'results');
+
+var regex165 = /^(a){1,}/;
+var input0 = "bcd";
+var results = null;
+shouldBe('regex165.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["a", "a"];
+shouldBe('regex165.exec(input1);', 'results');
+var input2 = "aab";
+var results = ["aa", "a"];
+shouldBe('regex165.exec(input2);', 'results');
+var input3 = "aaa";
+var results = ["aaa", "a"];
+shouldBe('regex165.exec(input3);', 'results');
+var input4 = "aaaaaaaa";
+var results = ["aaaaaaaa", "a"];
+shouldBe('regex165.exec(input4);', 'results');
+
+var regex166 = /.*\.gif/;
+var input0 = "borfle\nbib.gif\nno";
+var results = ["bib.gif"];
+shouldBe('regex166.exec(input0);', 'results');
+
+var regex167 = /.{0,}\.gif/;
+var input0 = "borfle\nbib.gif\nno";
+var results = ["bib.gif"];
+shouldBe('regex167.exec(input0);', 'results');
+
+var regex168 = /.*\.gif/m;
+var input0 = "borfle\nbib.gif\nno";
+var results = ["bib.gif"];
+shouldBe('regex168.exec(input0);', 'results');
+
+var regex169 = /.*\.gif/;
+var input0 = "borfle\nbib.gif\nno";
+var results = ["bib.gif"];
+shouldBe('regex169.exec(input0);', 'results');
+
+var regex170 = /.*\.gif/m;
+var input0 = "borfle\nbib.gif\nno";
+var results = ["bib.gif"];
+shouldBe('regex170.exec(input0);', 'results');
+
+var regex171 = /.*$/;
+var input0 = "borfle\nbib.gif\nno";
+var results = ["no"];
+shouldBe('regex171.exec(input0);', 'results');
+
+var regex172 = /.*$/m;
+var input0 = "borfle\nbib.gif\nno";
+var results = ["borfle"];
+shouldBe('regex172.exec(input0);', 'results');
+
+var regex173 = /[\w\W]*?$/;
+var input0 = "borfle\nbib.gif\nno";
+var results = ["borfle\nbib.gif\x0ano"];
+shouldBe('regex173.exec(input0);', 'results');
+
+var regex174 = /[\w\W]*?$/m;
+var input0 = "borfle\nbib.gif\nno";
+var results = ["borfle"];
+shouldBe('regex174.exec(input0);', 'results');
+
+var regex175 = /.*$/;
+var input0 = "borfle\nbib.gif\nno\n";
+var results = [""];
+shouldBe('regex175.exec(input0);', 'results');
+
+var regex176 = /.*$/m;
+var input0 = "borfle\nbib.gif\nno\n";
+var results = ["borfle"];
+shouldBe('regex176.exec(input0);', 'results');
+
+var regex177 = /.*$/;
+var input0 = "borfle\nbib.gif\nno\n";
+var results = [""];
+shouldBe('regex177.exec(input0);', 'results');
+
+var regex178 = /.*$/m;
+var input0 = "borfle\nbib.gif\nno\n";
+var results = ["borfle"];
+shouldBe('regex178.exec(input0);', 'results');
+
+var regex179 = /(.*X|^B)/;
+var input0 = "abcde\n1234Xyz";
+var results = ["1234X", "1234X"];
+shouldBe('regex179.exec(input0);', 'results');
+var input1 = "BarFoo";
+var results = ["B", "B"];
+shouldBe('regex179.exec(input1);', 'results');
+// Failers
+var input2 = "abcde\nBar";
+var results = null;
+shouldBe('regex179.exec(input2);', 'results');
+
+var regex180 = /(.*X|^B)/m;
+var input0 = "abcde\n1234Xyz";
+var results = ["1234X", "1234X"];
+shouldBe('regex180.exec(input0);', 'results');
+var input1 = "BarFoo";
+var results = ["B", "B"];
+shouldBe('regex180.exec(input1);', 'results');
+var input2 = "abcde\nBar";
+var results = ["B", "B"];
+shouldBe('regex180.exec(input2);', 'results');
+
+var regex181 = /([\w\W]*X|^B)/;
+var input0 = "abcde\n1234Xyz";
+var results = ["abcde\x0a1234X", "abcde\x0a1234X"];
+shouldBe('regex181.exec(input0);', 'results');
+var input1 = "BarFoo";
+var results = ["B", "B"];
+shouldBe('regex181.exec(input1);', 'results');
+// Failers
+var input2 = "abcde\nBar";
+var results = null;
+shouldBe('regex181.exec(input2);', 'results');
+
+var regex182 = /([\w\W]*X|^B)/m;
+var input0 = "abcde\n1234Xyz";
+var results = ["abcde\x0a1234X", "abcde\x0a1234X"];
+shouldBe('regex182.exec(input0);', 'results');
+var input1 = "BarFoo";
+var results = ["B", "B"];
+shouldBe('regex182.exec(input1);', 'results');
+var input2 = "abcde\nBar";
+var results = ["B", "B"];
+shouldBe('regex182.exec(input2);', 'results');
+
+var regex183 = /([\w\W]*X|^B)/;
+var input0 = "abcde\n1234Xyz";
+var results = ["abcde\x0a1234X", "abcde\x0a1234X"];
+shouldBe('regex183.exec(input0);', 'results');
+var input1 = "BarFoo";
+var results = ["B", "B"];
+shouldBe('regex183.exec(input1);', 'results');
+// Failers
+var input2 = "abcde\nBar";
+var results = null;
+shouldBe('regex183.exec(input2);', 'results');
+
+var regex184 = /(?:.*X|^B)/;
+var input0 = "abcde\n1234Xyz";
+var results = ["1234X"];
+shouldBe('regex184.exec(input0);', 'results');
+var input1 = "BarFoo";
+var results = ["B"];
+shouldBe('regex184.exec(input1);', 'results');
+// Failers
+var input2 = "abcde\nBar";
+var results = null;
+shouldBe('regex184.exec(input2);', 'results');
+
+var regex185 = /^.*B/;
+// Failers
+var input0 = "abc\nB";
+var results = null;
+shouldBe('regex185.exec(input0);', 'results');
+
+var regex186 = /^[\w\W]*B/;
+var input0 = "abc\nB";
+var results = ["abc\x0aB"];
+shouldBe('regex186.exec(input0);', 'results');
+
+var regex187 = /.*B/;
+var input0 = "abc\nB";
+var results = ["B"];
+shouldBe('regex187.exec(input0);', 'results');
+
+var regex188 = /^.*B/;
+// Failers
+var input0 = "abc\nB";
+var results = null;
+shouldBe('regex188.exec(input0);', 'results');
+
+var regex189a = /^B/;
+// Failers
+var input0 = "abc\nB";
+var results = null;
+shouldBe('regex189a.exec(input0);', 'results');
+
+var regex189b = /^B/m;
+var input0 = "abc\nB";
+var results = ["B"];
+shouldBe('regex189b.exec(input0);', 'results');
+
+var regex190a = /B$/;
+// Failers
+var input0 = "B\n";
+var results = null;
+shouldBe('regex190a.exec(input0);', 'results');
+
+var regex190b = /B$/m;
+var input0 = "B\n";
+var results = ["B"];
+shouldBe('regex190b.exec(input0);', 'results');
+
+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]/;
+var input0 = "123456654321";
+var results = ["123456654321"];
+shouldBe('regex191.exec(input0);', 'results');
+
+var regex192 = /^\d\d\d\d\d\d\d\d\d\d\d\d/;
+var input0 = "123456654321";
+var results = ["123456654321"];
+shouldBe('regex192.exec(input0);', 'results');
+
+var regex193 = /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/;
+var input0 = "123456654321";
+var results = ["123456654321"];
+shouldBe('regex193.exec(input0);', 'results');
+
+var regex194 = /^[abc]{12}/;
+var input0 = "abcabcabcabc";
+var results = ["abcabcabcabc"];
+shouldBe('regex194.exec(input0);', 'results');
+
+var regex195 = /^[a-c]{12}/;
+var input0 = "abcabcabcabc";
+var results = ["abcabcabcabc"];
+shouldBe('regex195.exec(input0);', 'results');
+
+var regex196 = /^(a|b|c){12}/;
+var input0 = "abcabcabcabc";
+var results = ["abcabcabcabc", "c"];
+shouldBe('regex196.exec(input0);', 'results');
+
+var regex197 = /^[abcdefghijklmnopqrstuvwxy0123456789]/;
+var input0 = "n";
+var results = ["n"];
+shouldBe('regex197.exec(input0);', 'results');
+// Failers
+var input1 = "z";
+var results = null;
+shouldBe('regex197.exec(input1);', 'results');
+
+var regex198 = /abcde{0,0}/;
+var input0 = "abcd";
+var results = ["abcd"];
+shouldBe('regex198.exec(input0);', 'results');
+// Failers
+var input1 = "abce";
+var results = null;
+shouldBe('regex198.exec(input1);', 'results');
+
+var regex199 = /ab[cd]{0,0}e/;
+var input0 = "abe";
+var results = ["abe"];
+shouldBe('regex199.exec(input0);', 'results');
+// Failers
+var input1 = "abcde";
+var results = null;
+shouldBe('regex199.exec(input1);', 'results');
+
+var regex200 = /ab(c){0,0}d/;
+var input0 = "abd";
+var results = ["abd", undefined];
+shouldBe('regex200.exec(input0);', 'results');
+// Failers
+var input1 = "abcd";
+var results = null;
+shouldBe('regex200.exec(input1);', 'results');
+
+var regex201 = /a(b*)/;
+var input0 = "a";
+var results = ["a", ""];
+shouldBe('regex201.exec(input0);', 'results');
+var input1 = "ab";
+var results = ["ab", "b"];
+shouldBe('regex201.exec(input1);', 'results');
+var input2 = "abbbb";
+var results = ["abbbb", "bbbb"];
+shouldBe('regex201.exec(input2);', 'results');
+// Failers
+var input3 = "bbbbb";
+var results = null;
+shouldBe('regex201.exec(input3);', 'results');
+
+var regex202 = /ab\d{0}e/;
+var input0 = "abe";
+var results = ["abe"];
+shouldBe('regex202.exec(input0);', 'results');
+// Failers
+var input1 = "ab1e";
+var results = null;
+shouldBe('regex202.exec(input1);', 'results');
+
+var regex203 = /"([^\\"]+|\\.)*"/;
+var input0 = "the \"quick\" brown fox";
+var results = ["\"quick\"", "quick"];
+shouldBe('regex203.exec(input0);', 'results');
+var input1 = "\"the \\\"quick\\\" brown fox\"";
+var results = ["\"the \\\"quick\\\" brown fox\"", " brown fox"];
+shouldBe('regex203.exec(input1);', 'results');
+
+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>/is;
+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>";
+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"];
+shouldBe('regex204.exec(input0);', 'results');
+
+var regex205 = /a[^a]b/;
+var input0 = "acb";
+var results = ["acb"];
+shouldBe('regex205.exec(input0);', 'results');
+var input1 = "a\nb";
+var results = ["a\x0ab"];
+shouldBe('regex205.exec(input1);', 'results');
+
+var regex206 = /a.b/;
+var input0 = "acb";
+var results = ["acb"];
+shouldBe('regex206.exec(input0);', 'results');
+// Failers
+var input1 = "a\nb";
+var results = null;
+shouldBe('regex206.exec(input1);', 'results');
+
+var regex207 = /a[^a]b/;
+var input0 = "acb";
+var results = ["acb"];
+shouldBe('regex207.exec(input0);', 'results');
+var input1 = "a\nb";
+var results = ["a\x0ab"];
+shouldBe('regex207.exec(input1);', 'results');
+
+var regex208 = /a[\w\W]b/;
+var input0 = "acb";
+var results = ["acb"];
+shouldBe('regex208.exec(input0);', 'results');
+var input1 = "a\nb";
+var results = ["a\x0ab"];
+shouldBe('regex208.exec(input1);', 'results');
+
+var regex209 = /^(b+?|a){1,2}?c/;
+var input0 = "bac";
+var results = ["bac", "a"];
+shouldBe('regex209.exec(input0);', 'results');
+var input1 = "bbac";
+var results = ["bbac", "a"];
+shouldBe('regex209.exec(input1);', 'results');
+var input2 = "bbbac";
+var results = ["bbbac", "a"];
+shouldBe('regex209.exec(input2);', 'results');
+var input3 = "bbbbac";
+var results = ["bbbbac", "a"];
+shouldBe('regex209.exec(input3);', 'results');
+var input4 = "bbbbbac";
+var results = ["bbbbbac", "a"];
+shouldBe('regex209.exec(input4);', 'results');
+
+var regex210 = /^(b+|a){1,2}?c/;
+var input0 = "bac";
+var results = ["bac", "a"];
+shouldBe('regex210.exec(input0);', 'results');
+var input1 = "bbac";
+var results = ["bbac", "a"];
+shouldBe('regex210.exec(input1);', 'results');
+var input2 = "bbbac";
+var results = ["bbbac", "a"];
+shouldBe('regex210.exec(input2);', 'results');
+var input3 = "bbbbac";
+var results = ["bbbbac", "a"];
+shouldBe('regex210.exec(input3);', 'results');
+var input4 = "bbbbbac";
+var results = ["bbbbbac", "a"];
+shouldBe('regex210.exec(input4);', 'results');
+
+var regex211 = /(?!^)x/m;
+var input0 = "a\bx\n";
+var results = ["x"];
+shouldBe('regex211.exec(input0);', 'results');
+// Failers
+var input1 = "x\nb\n";
+var results = null;
+shouldBe('regex211.exec(input1);', 'results');
+
+var regex212 = /\0{ab}/;
+var input0 = "\0{ab}";
+var results = ["\x00{ab}"];
+shouldBe('regex212.exec(input0);', 'results');
+
+var regex213 = /(A|B)*?CD/;
+var input0 = "CD";
+var results = ["CD", undefined];
+shouldBe('regex213.exec(input0);', 'results');
+
+var regex214 = /(A|B)*CD/;
+var input0 = "CD";
+var results = ["CD", undefined];
+shouldBe('regex214.exec(input0);', 'results');
+
+var regex215 = /^((AB)+?)\2$/;
+var input0 = "ABABAB";
+var results = ["ABABAB", "ABAB", "AB"];
+shouldBe('regex215.exec(input0);', 'results');
+
+var regex216 = /(AB)*\1/;
+var input0 = "ABABAB";
+var results = ["ABABAB", "AB"];
+shouldBe('regex216.exec(input0);', 'results');
+
+var regex220 = /^abc$/m;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex220.exec(input0);', 'results');
+var input1 = "abc\n";
+var results = ["abc"];
+shouldBe('regex220.exec(input1);', 'results');
+var input2 = "qqq\nabc";
+var results = ["abc"];
+shouldBe('regex220.exec(input2);', 'results');
+var input3 = "abc\nzzz";
+var results = ["abc"];
+shouldBe('regex220.exec(input3);', 'results');
+var input4 = "qqq\nabc\nzzz";
+var results = ["abc"];
+shouldBe('regex220.exec(input4);', 'results');
+
+var regex225 = /(\d+)(\w)/;
+var input0 = "12345a";
+var results = ["12345a", "12345", "a"];
+shouldBe('regex225.exec(input0);', 'results');
+var input1 = "12345+";
+var results = ["12345", "1234", "5"];
+shouldBe('regex225.exec(input1);', 'results');
+
+var regex234 = /ab/;
+var input0 = "ab";
+var results = ["ab"];
+shouldBe('regex234.exec(input0);', 'results');
+// Failers
+var input1 = "Ab";
+var results = null;
+shouldBe('regex234.exec(input1);', 'results');
+var input2 = "aB";
+var results = null;
+shouldBe('regex234.exec(input2);', 'results');
+var input3 = "AB";
+var results = null;
+shouldBe('regex234.exec(input3);', 'results');
+
+var regex235 = /(a bc)d e/;
+var input0 = "a bcd e";
+var results = ["a bcd e", "a bc"];
+shouldBe('regex235.exec(input0);', 'results');
+// Failers
+var input1 = "a b cd e";
+var results = null;
+shouldBe('regex235.exec(input1);', 'results');
+var input2 = "abcd e";
+var results = null;
+shouldBe('regex235.exec(input2);', 'results');
+var input3 = "a bcde";
+var results = null;
+shouldBe('regex235.exec(input3);', 'results');
+
+var regex236 = /(a bcde f)/;
+var input0 = "a bcde f";
+var results = ["a bcde f", "a bcde f"];
+shouldBe('regex236.exec(input0);', 'results');
+// Failers
+var input1 = "abcdef";
+var results = null;
+shouldBe('regex236.exec(input1);', 'results');
+
+var regex237 = /(a[bB])c/;
+var input0 = "abc";
+var results = ["abc", "ab"];
+shouldBe('regex237.exec(input0);', 'results');
+var input1 = "aBc";
+var results = ["aBc", "aB"];
+shouldBe('regex237.exec(input1);', 'results');
+// Failers
+var input2 = "abC";
+var results = null;
+shouldBe('regex237.exec(input2);', 'results');
+var input3 = "aBC";
+var results = null;
+shouldBe('regex237.exec(input3);', 'results');
+var input4 = "Abc";
+var results = null;
+shouldBe('regex237.exec(input4);', 'results');
+var input5 = "ABc";
+var results = null;
+shouldBe('regex237.exec(input5);', 'results');
+var input6 = "ABC";
+var results = null;
+shouldBe('regex237.exec(input6);', 'results');
+var input7 = "AbC";
+var results = null;
+shouldBe('regex237.exec(input7);', 'results');
+
+var regex238 = /a[bB]c/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex238.exec(input0);', 'results');
+var input1 = "aBc";
+var results = ["aBc"];
+shouldBe('regex238.exec(input1);', 'results');
+// Failers
+var input2 = "ABC";
+var results = null;
+shouldBe('regex238.exec(input2);', 'results');
+var input3 = "abC";
+var results = null;
+shouldBe('regex238.exec(input3);', 'results');
+var input4 = "aBC";
+var results = null;
+shouldBe('regex238.exec(input4);', 'results');
+
+var regex239 = /a[bB]*c/;
+var input0 = "aBc";
+var results = ["aBc"];
+shouldBe('regex239.exec(input0);', 'results');
+var input1 = "aBBc";
+var results = ["aBBc"];
+shouldBe('regex239.exec(input1);', 'results');
+// Failers
+var input2 = "aBC";
+var results = null;
+shouldBe('regex239.exec(input2);', 'results');
+var input3 = "aBBC";
+var results = null;
+shouldBe('regex239.exec(input3);', 'results');
+
+var regex240 = /a(?=b[cC])\w\wd/;
+var input0 = "abcd";
+var results = ["abcd"];
+shouldBe('regex240.exec(input0);', 'results');
+var input1 = "abCd";
+var results = ["abCd"];
+shouldBe('regex240.exec(input1);', 'results');
+// Failers
+var input2 = "aBCd";
+var results = null;
+shouldBe('regex240.exec(input2);', 'results');
+var input3 = "abcD";
+var results = null;
+shouldBe('regex240.exec(input3);', 'results');
+
+var regex241 = /(?:more[\w\W]*than).*million/i;
+var input0 = "more than million";
+var results = ["more than million"];
+shouldBe('regex241.exec(input0);', 'results');
+var input1 = "more than MILLION";
+var results = ["more than MILLION"];
+shouldBe('regex241.exec(input1);', 'results');
+var input2 = "more \n than Million";
+var results = ["more \x0a than Million"];
+shouldBe('regex241.exec(input2);', 'results');
+var input3 = "MORE THAN MILLION";
+var results = ["MORE THAN MILLION"];
+// Failers
+shouldBe('regex241.exec(input3);', 'results');
+var input4 = "more \n than \n million";
+var results = null;
+shouldBe('regex241.exec(input4);', 'results');
+
+var regex242 = /(?:more[\w\W]*than).*million/i;
+var input0 = "more than million";
+var results = ["more than million"];
+shouldBe('regex242.exec(input0);', 'results');
+var input1 = "more than MILLION";
+var results = ["more than MILLION"];
+shouldBe('regex242.exec(input1);', 'results');
+var input2 = "more \n than Million";
+var results = ["more \x0a than Million"];
+shouldBe('regex242.exec(input2);', 'results');
+var input3 = "MORE THAN MILLION";
+var results = ["MORE THAN MILLION"];
+// Failers
+shouldBe('regex242.exec(input3);', 'results');
+var input4 = "more \n than \n million";
+var results = null;
+shouldBe('regex242.exec(input4);', 'results');
+
+var regex243 = /(?:ab+)+c/i ;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex243.exec(input0);', 'results');
+var input1 = "aBbc";
+var results = ["aBbc"];
+shouldBe('regex243.exec(input1);', 'results');
+var input2 = "aBBc";
+var results = ["aBBc"];
+shouldBe('regex243.exec(input2);', 'results');
+var input3 = "Abc";
+var results = ["Abc"];
+shouldBe('regex243.exec(input3);', 'results');
+var input4 = "abbC";
+var results = ["abbC"];
+shouldBe('regex243.exec(input4);', 'results');
+// Failers
+var input5 = "abAb";
+var results = null;
+shouldBe('regex243.exec(input5);', 'results');
+
+var regex244 = /(?=a[bB])\w\wc/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex244.exec(input0);', 'results');
+var input1 = "aBc";
+var results = ["aBc"];
+shouldBe('regex244.exec(input1);', 'results');
+// Failers
+var input2 = "Ab";
+var results = null;
+shouldBe('regex244.exec(input2);', 'results');
+var input3 = "abC";
+var results = null;
+shouldBe('regex244.exec(input3);', 'results');
+var input4 = "aBC";
+var results = null;
+shouldBe('regex244.exec(input4);', 'results');
+
+var regex246 = /(?:(a)|b)(?:A|B)/;
+var input0 = "aA";
+var results = ["aA", "a"];
+shouldBe('regex246.exec(input0);', 'results');
+var input1 = "bB";
+var results = ["bB", undefined];
+shouldBe('regex246.exec(input1);', 'results');
+var input2 = "aB";
+var results = ["aB", "a"];
+shouldBe('regex246.exec(input2);', 'results');
+var input3 = "bA";
+var results = ["bA", undefined];
+shouldBe('regex246.exec(input3);', 'results');
+
+var regex247 = /^(a)?(?:a|b)+$/;
+var input0 = "aa";
+var results = ["aa", "a"];
+shouldBe('regex247.exec(input0);', 'results');
+var input1 = "b";
+var results = ["b", undefined];
+shouldBe('regex247.exec(input1);', 'results');
+var input2 = "bb";
+var results = ["bb", undefined];
+shouldBe('regex247.exec(input2);', 'results');
+var input3 = "ab";
+var results = ["ab", "a"];
+shouldBe('regex247.exec(input3);', 'results');
+
+var regex248 = /^(?:(?=abc)\w{3}:|\d\d)$/;
+var input0 = "abc:";
+var results = ["abc:"];
+shouldBe('regex248.exec(input0);', 'results');
+var input1 = "12";
+var results = ["12"];
+shouldBe('regex248.exec(input1);', 'results');
+// Failers
+var input2 = "123";
+var results = null;
+shouldBe('regex248.exec(input2);', 'results');
+var input3 = "xyz";
+var results = null;
+shouldBe('regex248.exec(input3);', 'results');
+
+var regex249 = /^(?:(?!abc)\d\d|\w{3}:)$/;
+var input0 = "abc:";
+var results = ["abc:"];
+shouldBe('regex249.exec(input0);', 'results');
+var input1 = "12";
+var results = ["12"];
+shouldBe('regex249.exec(input1);', 'results');
+// Failers
+var input2 = "123";
+var results = null;
+shouldBe('regex249.exec(input2);', 'results');
+var input3 = "xyz";
+var results = null;
+shouldBe('regex249.exec(input3);', 'results');
+
+var regex252 = /(?=\()(\()[^()]+\)|[^()]+/;
+var input0 = "abcd";
+var results = ["abcd", undefined];
+shouldBe('regex252.exec(input0);', 'results');
+var input1 = "(abcd)";
+var results = ["(abcd)", "("];
+shouldBe('regex252.exec(input1);', 'results');
+var input2 = "the quick (abcd) fox";
+var results = ["the quick ", undefined];
+shouldBe('regex252.exec(input2);', 'results');
+var input3 = "(abcd";
+var results = ["abcd", undefined];
+shouldBe('regex252.exec(input3);', 'results');
+
+var regex253 = /^(?:a|(1)(2))+$/;
+var input0 = "12";
+var results = ["12", "1", "2"];
+shouldBe('regex253.exec(input0);', 'results');
+var input1 = "12a";
+var results = ["12a", undefined, undefined];
+shouldBe('regex253.exec(input1);', 'results');
+var input2 = "12aa";
+var results = ["12aa", undefined, undefined];
+shouldBe('regex253.exec(input2);', 'results');
+// Failers
+var input3 = "1234";
+var results = null;
+shouldBe('regex253.exec(input3);', 'results');
+
+var regex254 = /(blah)\s+\1/i;
+var input0 = "blah blah";
+var results = ["blah blah", "blah"];
+shouldBe('regex254.exec(input0);', 'results');
+var input1 = "BLAH BLAH";
+var results = ["BLAH BLAH", "BLAH"];
+shouldBe('regex254.exec(input1);', 'results');
+var input2 = "Blah Blah";
+var results = ["Blah Blah", "Blah"];
+shouldBe('regex254.exec(input2);', 'results');
+var input3 = "blaH blaH";
+var results = ["blaH blaH", "blaH"];
+shouldBe('regex254.exec(input3);', 'results');
+var input4 = "blah BLAH";
+var results = ["blah BLAH", "blah"];
+shouldBe('regex254.exec(input4);', 'results');
+var input5 = "Blah blah";
+var results = ["Blah blah", "Blah"];
+shouldBe('regex254.exec(input5);', 'results');
+var input6 = "blaH blah";
+var results = ["blaH blah", "blaH"];
+shouldBe('regex254.exec(input6);', 'results');
+
+var regex255 = /(blah)\s+(?:\1)/i;
+var input0 = "blah blah";
+var results = ["blah blah", "blah"];
+shouldBe('regex255.exec(input0);', 'results');
+var input1 = "BLAH BLAH";
+var results = ["BLAH BLAH", "BLAH"];
+shouldBe('regex255.exec(input1);', 'results');
+var input2 = "Blah Blah";
+var results = ["Blah Blah", "Blah"];
+shouldBe('regex255.exec(input2);', 'results');
+var input3 = "blaH blaH";
+var results = ["blaH blaH", "blaH"];
+shouldBe('regex255.exec(input3);', 'results');
+var input4 = "blah BLAH";
+var results = ["blah BLAH", "blah"];
+shouldBe('regex255.exec(input4);', 'results');
+var input5 = "Blah blah";
+var results = ["Blah blah", "Blah"];
+shouldBe('regex255.exec(input5);', 'results');
+var input6 = "blaH blah";
+var results = ["blaH blah", "blaH"];
+shouldBe('regex255.exec(input6);', 'results');
+
+var regex257 = /(abc|)+/;
+var input0 = "abc";
+var results = ["abc", "abc"];
+shouldBe('regex257.exec(input0);', 'results');
+var input1 = "abcabc";
+var results = ["abcabc", "abc"];
+shouldBe('regex257.exec(input1);', 'results');
+var input2 = "abcabcabc";
+var results = ["abcabcabc", "abc"];
+shouldBe('regex257.exec(input2);', 'results');
+var input3 = "xyz";
+var results = ["", ""];
+shouldBe('regex257.exec(input3);', 'results');
+
+var regex258 = /([a]*)*/;
+var input0 = "a";
+var results = ["a", "a"];
+shouldBe('regex258.exec(input0);', 'results');
+var input1 = "aaaaa";
+var results = ["aaaaa", "aaaaa"];
+shouldBe('regex258.exec(input1);', 'results');
+
+var regex259 = /([ab]*)*/;
+var input0 = "a";
+var results = ["a", "a"];
+shouldBe('regex259.exec(input0);', 'results');
+var input1 = "b";
+var results = ["b", "b"];
+shouldBe('regex259.exec(input1);', 'results');
+var input2 = "ababab";
+var results = ["ababab", "ababab"];
+shouldBe('regex259.exec(input2);', 'results');
+var input3 = "aaaabcde";
+var results = ["aaaab", "aaaab"];
+shouldBe('regex259.exec(input3);', 'results');
+var input4 = "bbbb";
+var results = ["bbbb", "bbbb"];
+shouldBe('regex259.exec(input4);', 'results');
+
+var regex260 = /([^a]*)*/;
+var input0 = "b";
+var results = ["b", "b"];
+shouldBe('regex260.exec(input0);', 'results');
+var input1 = "bbbb";
+var results = ["bbbb", "bbbb"];
+shouldBe('regex260.exec(input1);', 'results');
+var input2 = "aaa";
+var results = ["", undefined];
+shouldBe('regex260.exec(input2);', 'results');
+
+var regex261 = /([^ab]*)*/;
+var input0 = "cccc";
+var results = ["cccc", "cccc"];
+shouldBe('regex261.exec(input0);', 'results');
+var input1 = "abab";
+var results = ["", undefined];
+shouldBe('regex261.exec(input1);', 'results');
+
+var regex262 = /([a]*?)*/;
+var input0 = "a";
+var results = ["a", "a"];
+shouldBe('regex262.exec(input0);', 'results');
+var input1 = "aaaa";
+var results = ["aaaa", "a"];
+shouldBe('regex262.exec(input1);', 'results');
+
+var regex263 = /([ab]*?)*/;
+var input0 = "a";
+var results = ["a", "a"];
+shouldBe('regex263.exec(input0);', 'results');
+var input1 = "b";
+var results = ["b", "b"];
+shouldBe('regex263.exec(input1);', 'results');
+var input2 = "abab";
+var results = ["abab", "b"];
+shouldBe('regex263.exec(input2);', 'results');
+var input3 = "baba";
+var results = ["baba", "a"];
+shouldBe('regex263.exec(input3);', 'results');
+
+var regex264 = /([^a]*?)*/;
+var input0 = "b";
+var results = ["b", "b"];
+shouldBe('regex264.exec(input0);', 'results');
+var input1 = "bbbb";
+var results = ["bbbb", "b"];
+shouldBe('regex264.exec(input1);', 'results');
+var input2 = "aaa";
+var results = ["", undefined];
+shouldBe('regex264.exec(input2);', 'results');
+
+var regex265 = /([^ab]*?)*/;
+var input0 = "c";
+var results = ["c", "c"];
+shouldBe('regex265.exec(input0);', 'results');
+var input1 = "cccc";
+var results = ["cccc", "c"];
+shouldBe('regex265.exec(input1);', 'results');
+var input2 = "baba";
+var results = ["", undefined];
+shouldBe('regex265.exec(input2);', 'results');
+
+var regex269 = /(?=[^a-z]+[a-z])\d{2}-[a-z]{3}-\d{2}|(?![^a-z]+[a-z])\d{2}-\d{2}-\d{2}/;
+var input0 = "12-sep-98";
+var results = ["12-sep-98"];
+shouldBe('regex269.exec(input0);', 'results');
+var input1 = "12-09-98";
+var results = ["12-09-98"];
+shouldBe('regex269.exec(input1);', 'results');
+var input2 = "sep-12-98";
+var results = null;
+shouldBe('regex269.exec(input2);', 'results');
+
+var regex271 = /(?:saturday|sunday)/i;
+var input0 = "saturday";
+var results = ["saturday"];
+shouldBe('regex271.exec(input0);', 'results');
+var input1 = "sunday";
+var results = ["sunday"];
+shouldBe('regex271.exec(input1);', 'results');
+var input2 = "Saturday";
+var results = ["Saturday"];
+shouldBe('regex271.exec(input2);', 'results');
+var input3 = "Sunday";
+var results = ["Sunday"];
+shouldBe('regex271.exec(input3);', 'results');
+var input4 = "SATURDAY";
+var results = ["SATURDAY"];
+shouldBe('regex271.exec(input4);', 'results');
+var input5 = "SUNDAY";
+var results = ["SUNDAY"];
+shouldBe('regex271.exec(input5);', 'results');
+var input6 = "SunDay";
+var results = ["SunDay"];
+shouldBe('regex271.exec(input6);', 'results');
+
+var regex272 = /([aA][bB][cC]|[bB][bB])x/;
+var input0 = "abcx";
+var results = ["abcx", "abc"];
+shouldBe('regex272.exec(input0);', 'results');
+var input1 = "aBCx";
+var results = ["aBCx", "aBC"];
+shouldBe('regex272.exec(input1);', 'results');
+var input2 = "bbx";
+var results = ["bbx", "bb"];
+shouldBe('regex272.exec(input2);', 'results');
+var input3 = "BBx";
+var results = ["BBx", "BB"];
+shouldBe('regex272.exec(input3);', 'results');
+// Failers
+var input4 = "abcX";
+var results = null;
+shouldBe('regex272.exec(input4);', 'results');
+var input5 = "aBCX";
+var results = null;
+shouldBe('regex272.exec(input5);', 'results');
+var input6 = "bbX";
+var results = null;
+shouldBe('regex272.exec(input6);', 'results');
+var input7 = "BBX";
+var results = null;
+shouldBe('regex272.exec(input7);', 'results');
+
+var regex273 = /^([ab][cd]|[ef])/i;
+var input0 = "ac";
+var results = ["ac", "ac"];
+shouldBe('regex273.exec(input0);', 'results');
+var input1 = "aC";
+var results = ["aC", "aC"];
+shouldBe('regex273.exec(input1);', 'results');
+var input2 = "bD";
+var results = ["bD", "bD"];
+shouldBe('regex273.exec(input2);', 'results');
+var input3 = "elephant";
+var results = ["e", "e"];
+shouldBe('regex273.exec(input3);', 'results');
+var input4 = "Europe";
+var results = ["E", "E"];
+shouldBe('regex273.exec(input4);', 'results');
+var input5 = "frog";
+var results = ["f", "f"];
+shouldBe('regex273.exec(input5);', 'results');
+var input6 = "France";
+var results = ["F", "F"];
+shouldBe('regex273.exec(input6);', 'results');
+// Failers
+var input7 = "Africa";
+var results = null;
+shouldBe('regex273.exec(input7);', 'results');
+
+var regex274 = /^(ab|a[b-cB-C]d|x[yY]|[zZ])/;
+var input0 = "ab";
+var results = ["ab", "ab"];
+shouldBe('regex274.exec(input0);', 'results');
+var input1 = "aBd";
+var results = ["aBd", "aBd"];
+shouldBe('regex274.exec(input1);', 'results');
+var input2 = "xy";
+var results = ["xy", "xy"];
+shouldBe('regex274.exec(input2);', 'results');
+var input3 = "xY";
+var results = ["xY", "xY"];
+shouldBe('regex274.exec(input3);', 'results');
+var input4 = "zebra";
+var results = ["z", "z"];
+shouldBe('regex274.exec(input4);', 'results');
+var input5 = "Zambesi";
+var results = ["Z", "Z"];
+shouldBe('regex274.exec(input5);', 'results');
+// Failers
+var input6 = "aCD";
+var results = null;
+shouldBe('regex274.exec(input6);', 'results');
+var input7 = "XY";
+var results = null;
+shouldBe('regex274.exec(input7);', 'results');
+
+var regex277 = /^(a\1?){4}$/;
+var input0 = "a";
+var results = null;
+shouldBe('regex277.exec(input0);', 'results');
+var input1 = "aa";
+var results = null;
+shouldBe('regex277.exec(input1);', 'results');
+var input2 = "aaa";
+var results = null;
+shouldBe('regex277.exec(input2);', 'results');
+var input3 = "aaaa";
+var results = ["aaaa", "a"];
+shouldBe('regex277.exec(input3);', 'results');
+var input4 = "aaaaa";
+var results = null;
+shouldBe('regex277.exec(input4);', 'results');
+var input5 = "aaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input5);', 'results');
+var input6 = "aaaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input6);', 'results');
+var input7 = "aaaaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input7);', 'results');
+var input8 = "aaaaaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input8);', 'results');
+var input9 = "aaaaaaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input9);', 'results');
+var input10 = "aaaaaaaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input10);', 'results');
+var input11 = "aaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input11);', 'results');
+var input12 = "aaaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input12);', 'results');
+var input13 = "aaaaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input13);', 'results');
+var input14 = "aaaaaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex277.exec(input14);', 'results');
+
+var regex278 = /^(a\1?)(a\1?)(a\2?)(a\3?)$/;
+var input0 = "a";
+var results = null;
+shouldBe('regex278.exec(input0);', 'results');
+var input1 = "aa";
+var results = null;
+shouldBe('regex278.exec(input1);', 'results');
+var input2 = "aaa";
+var results = null;
+shouldBe('regex278.exec(input2);', 'results');
+var input3 = "aaaa";
+var results = ["aaaa", "a", "a", "a", "a"];
+shouldBe('regex278.exec(input3);', 'results');
+var input4 = "aaaaa";
+var results = ["aaaaa", "a", "aa", "a", "a"];
+shouldBe('regex278.exec(input4);', 'results');
+var input5 = "aaaaaa";
+var results = ["aaaaaa", "a", "aa", "a", "aa"];
+shouldBe('regex278.exec(input5);', 'results');
+var input6 = "aaaaaaa";
+var results = ["aaaaaaa", "a", "aa", "aaa", "a"];
+shouldBe('regex278.exec(input6);', 'results');
+var input7 = "aaaaaaaa";
+var results = null;
+shouldBe('regex278.exec(input7);', 'results');
+var input8 = "aaaaaaaaa";
+var results = null;
+shouldBe('regex278.exec(input8);', 'results');
+var input9 = "aaaaaaaaaa";
+var results = ["aaaaaaaaaa", "a", "aa", "aaa", "aaaa"];
+shouldBe('regex278.exec(input9);', 'results');
+var input10 = "aaaaaaaaaaa";
+var results = null;
+shouldBe('regex278.exec(input10);', 'results');
+var input11 = "aaaaaaaaaaaa";
+var results = null;
+shouldBe('regex278.exec(input11);', 'results');
+var input12 = "aaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex278.exec(input12);', 'results');
+var input13 = "aaaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex278.exec(input13);', 'results');
+var input14 = "aaaaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex278.exec(input14);', 'results');
+var input15 = "aaaaaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex278.exec(input15);', 'results');
+
+var regex279 = /abc/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex279.exec(input0);', 'results');
+var input1 = "xabcy";
+var results = ["abc"];
+shouldBe('regex279.exec(input1);', 'results');
+var input2 = "ababc";
+var results = ["abc"];
+shouldBe('regex279.exec(input2);', 'results');
+// Failers
+var input3 = "xbc";
+var results = null;
+shouldBe('regex279.exec(input3);', 'results');
+var input4 = "axc";
+var results = null;
+shouldBe('regex279.exec(input4);', 'results');
+var input5 = "abx";
+var results = null;
+shouldBe('regex279.exec(input5);', 'results');
+
+var regex280 = /ab*c/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex280.exec(input0);', 'results');
+
+var regex281 = /ab*bc/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex281.exec(input0);', 'results');
+var input1 = "abbc";
+var results = ["abbc"];
+shouldBe('regex281.exec(input1);', 'results');
+var input2 = "abbbbc";
+var results = ["abbbbc"];
+shouldBe('regex281.exec(input2);', 'results');
+
+var regex282 = /.{1}/;
+var input0 = "abbbbc";
+var results = ["a"];
+shouldBe('regex282.exec(input0);', 'results');
+
+var regex283 = /.{3,4}/;
+var input0 = "abbbbc";
+var results = ["abbb"];
+shouldBe('regex283.exec(input0);', 'results');
+
+var regex284 = /ab{0,}bc/;
+var input0 = "abbbbc";
+var results = ["abbbbc"];
+shouldBe('regex284.exec(input0);', 'results');
+
+var regex285 = /ab+bc/;
+var input0 = "abbc";
+var results = ["abbc"];
+shouldBe('regex285.exec(input0);', 'results');
+// Failers
+var input1 = "abc";
+var results = null;
+shouldBe('regex285.exec(input1);', 'results');
+var input2 = "abq";
+var results = null;
+shouldBe('regex285.exec(input2);', 'results');
+
+var regex286 = /ab+bc/;
+var input0 = "abbbbc";
+var results = ["abbbbc"];
+shouldBe('regex286.exec(input0);', 'results');
+
+var regex287 = /ab{1,}bc/;
+var input0 = "abbbbc";
+var results = ["abbbbc"];
+shouldBe('regex287.exec(input0);', 'results');
+
+var regex288 = /ab{1,3}bc/;
+var input0 = "abbbbc";
+var results = ["abbbbc"];
+shouldBe('regex288.exec(input0);', 'results');
+
+var regex289 = /ab{3,4}bc/;
+var input0 = "abbbbc";
+var results = ["abbbbc"];
+shouldBe('regex289.exec(input0);', 'results');
+
+var regex290 = /ab{4,5}bc/;
+// Failers
+var input0 = "abq";
+var results = null;
+shouldBe('regex290.exec(input0);', 'results');
+var input1 = "abbbbc";
+var results = null;
+shouldBe('regex290.exec(input1);', 'results');
+
+var regex291 = /ab?bc/;
+var input0 = "abbc";
+var results = ["abbc"];
+shouldBe('regex291.exec(input0);', 'results');
+var input1 = "abc";
+var results = ["abc"];
+shouldBe('regex291.exec(input1);', 'results');
+
+var regex292 = /ab{0,1}bc/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex292.exec(input0);', 'results');
+
+var regex293 = /ab?c/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex293.exec(input0);', 'results');
+
+var regex294 = /ab{0,1}c/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex294.exec(input0);', 'results');
+
+var regex295 = /^abc/;
+var input0 = "abcc";
+var results = ["abc"];
+shouldBe('regex295.exec(input0);', 'results');
+
+var regex296 = /abc$/;
+var input0 = "aabc";
+var results = ["abc"];
+shouldBe('regex296.exec(input0);', 'results');
+// Failers
+var input1 = "aabc";
+var results = ["abc"];
+shouldBe('regex296.exec(input1);', 'results');
+var input2 = "aabcd";
+var results = null;
+shouldBe('regex296.exec(input2);', 'results');
+
+var regex297 = /^/;
+var input0 = "abc";
+var results = [""];
+shouldBe('regex297.exec(input0);', 'results');
+
+var regex298 = /$/;
+var input0 = "abc";
+var results = [""];
+shouldBe('regex298.exec(input0);', 'results');
+
+var regex299 = /a.c/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex299.exec(input0);', 'results');
+var input1 = "axc";
+var results = ["axc"];
+shouldBe('regex299.exec(input1);', 'results');
+
+var regex300 = /a.*c/;
+var input0 = "axyzc";
+var results = ["axyzc"];
+shouldBe('regex300.exec(input0);', 'results');
+
+var regex301 = /a[bc]d/;
+var input0 = "abd";
+var results = ["abd"];
+shouldBe('regex301.exec(input0);', 'results');
+// Failers
+var input1 = "axyzd";
+var results = null;
+shouldBe('regex301.exec(input1);', 'results');
+var input2 = "abc";
+var results = null;
+shouldBe('regex301.exec(input2);', 'results');
+
+var regex302 = /a[b-d]e/;
+var input0 = "ace";
+var results = ["ace"];
+shouldBe('regex302.exec(input0);', 'results');
+
+var regex303 = /a[b-d]/;
+var input0 = "aac";
+var results = ["ac"];
+shouldBe('regex303.exec(input0);', 'results');
+
+var regex304 = /a[-b]/;
+var input0 = "a-";
+var results = ["a-"];
+shouldBe('regex304.exec(input0);', 'results');
+
+var regex305 = /a[b-]/;
+var input0 = "a-";
+var results = ["a-"];
+shouldBe('regex305.exec(input0);', 'results');
+
+var regex306 = /a]/;
+var input0 = "a]";
+var results = ["a]"];
+shouldBe('regex306.exec(input0);', 'results');
+
+var regex307 = /a[\]]b/;
+var input0 = "a]b";
+var results = ["a]b"];
+shouldBe('regex307.exec(input0);', 'results');
+
+var regex308 = /a[^bc]d/;
+var input0 = "aed";
+var results = ["aed"];
+shouldBe('regex308.exec(input0);', 'results');
+// Failers
+var input1 = "abd";
+var results = null;
+shouldBe('regex308.exec(input1);', 'results');
+var input2 = "abd";
+var results = null;
+shouldBe('regex308.exec(input2);', 'results');
+
+var regex309 = /a[^-b]c/;
+var input0 = "adc";
+var results = ["adc"];
+shouldBe('regex309.exec(input0);', 'results');
+
+var regex310 = /a[^\]b]c/;
+var input0 = "adc";
+var results = ["adc"];
+shouldBe('regex310.exec(input0);', 'results');
+var input1 = "a-c";
+var results = ["a-c"];
+shouldBe('regex310.exec(input1);', 'results');
+// Failers
+var input2 = "a]c";
+var results = null;
+shouldBe('regex310.exec(input2);', 'results');
+
+var regex311 = /\ba\b/;
+var input0 = "a-";
+var results = ["a"];
+shouldBe('regex311.exec(input0);', 'results');
+var input1 = "-a";
+var results = ["a"];
+shouldBe('regex311.exec(input1);', 'results');
+var input2 = "-a-";
+var results = ["a"];
+shouldBe('regex311.exec(input2);', 'results');
+
+var regex312 = /\by\b/;
+// Failers
+var input0 = "xy";
+var results = null;
+shouldBe('regex312.exec(input0);', 'results');
+var input1 = "yz";
+var results = null;
+shouldBe('regex312.exec(input1);', 'results');
+var input2 = "xyz";
+var results = null;
+shouldBe('regex312.exec(input2);', 'results');
+
+var regex313 = /\Ba\B/;
+// Failers
+var input0 = "a-";
+var results = null;
+shouldBe('regex313.exec(input0);', 'results');
+var input1 = "-a";
+var results = null;
+shouldBe('regex313.exec(input1);', 'results');
+var input2 = "-a-";
+var results = null;
+shouldBe('regex313.exec(input2);', 'results');
+
+var regex314 = /\By\b/;
+var input0 = "xy";
+var results = ["y"];
+shouldBe('regex314.exec(input0);', 'results');
+
+var regex315 = /\by\B/;
+var input0 = "yz";
+var results = ["y"];
+shouldBe('regex315.exec(input0);', 'results');
+
+var regex316 = /\By\B/;
+var input0 = "xyz";
+var results = ["y"];
+shouldBe('regex316.exec(input0);', 'results');
+
+var regex317 = /\w/;
+var input0 = "a";
+var results = ["a"];
+shouldBe('regex317.exec(input0);', 'results');
+
+var regex318 = /\W/;
+var input0 = "-";
+var results = ["-"];
+shouldBe('regex318.exec(input0);', 'results');
+// Failers
+var input1 = "-";
+var results = ["-"];
+shouldBe('regex318.exec(input1);', 'results');
+var input2 = "a";
+var results = null;
+shouldBe('regex318.exec(input2);', 'results');
+
+var regex319 = /a\sb/;
+var input0 = "a b";
+var results = ["a b"];
+shouldBe('regex319.exec(input0);', 'results');
+
+var regex320 = /a\Sb/;
+var input0 = "a-b";
+var results = ["a-b"];
+shouldBe('regex320.exec(input0);', 'results');
+// Failers
+var input1 = "a-b";
+var results = ["a-b"];
+shouldBe('regex320.exec(input1);', 'results');
+var input2 = "a b";
+var results = null;
+shouldBe('regex320.exec(input2);', 'results');
+
+var regex321 = /\d/;
+var input0 = "1";
+var results = ["1"];
+shouldBe('regex321.exec(input0);', 'results');
+
+var regex322 = /\D/;
+var input0 = "-";
+var results = ["-"];
+shouldBe('regex322.exec(input0);', 'results');
+// Failers
+var input1 = "-";
+var results = ["-"];
+shouldBe('regex322.exec(input1);', 'results');
+var input2 = "1";
+var results = null;
+shouldBe('regex322.exec(input2);', 'results');
+
+var regex323 = /[\w]/;
+var input0 = "a";
+var results = ["a"];
+shouldBe('regex323.exec(input0);', 'results');
+
+var regex324 = /[\W]/;
+var input0 = "-";
+var results = ["-"];
+shouldBe('regex324.exec(input0);', 'results');
+// Failers
+var input1 = "-";
+var results = ["-"];
+shouldBe('regex324.exec(input1);', 'results');
+var input2 = "a";
+var results = null;
+shouldBe('regex324.exec(input2);', 'results');
+
+var regex325 = /a[\s]b/;
+var input0 = "a b";
+var results = ["a b"];
+shouldBe('regex325.exec(input0);', 'results');
+
+var regex326 = /a[\S]b/;
+var input0 = "a-b";
+var results = ["a-b"];
+shouldBe('regex326.exec(input0);', 'results');
+// Failers
+var input1 = "a-b";
+var results = ["a-b"];
+shouldBe('regex326.exec(input1);', 'results');
+var input2 = "a b";
+var results = null;
+shouldBe('regex326.exec(input2);', 'results');
+
+var regex327 = /[\d]/;
+var input0 = "1";
+var results = ["1"];
+shouldBe('regex327.exec(input0);', 'results');
+
+var regex328 = /[\D]/;
+var input0 = "-";
+var results = ["-"];
+shouldBe('regex328.exec(input0);', 'results');
+// Failers
+var input1 = "-";
+var results = ["-"];
+shouldBe('regex328.exec(input1);', 'results');
+var input2 = "1";
+var results = null;
+shouldBe('regex328.exec(input2);', 'results');
+
+var regex329 = /ab|cd/;
+var input0 = "abc";
+var results = ["ab"];
+shouldBe('regex329.exec(input0);', 'results');
+var input1 = "abcd";
+var results = ["ab"];
+shouldBe('regex329.exec(input1);', 'results');
+
+var regex330 = /()ef/;
+var input0 = "def";
+var results = ["ef", ""];
+shouldBe('regex330.exec(input0);', 'results');
+
+var regex331 = /a\(b/;
+var input0 = "a(b";
+var results = ["a(b"];
+shouldBe('regex331.exec(input0);', 'results');
+
+var regex332 = /a\(*b/;
+var input0 = "ab";
+var results = ["ab"];
+shouldBe('regex332.exec(input0);', 'results');
+var input1 = "a((b";
+var results = ["a((b"];
+shouldBe('regex332.exec(input1);', 'results');
+
+var regex333 = /a\\b/;
+var input0 = "a\b";
+var results = null;
+shouldBe('regex333.exec(input0);', 'results');
+
+var regex334 = /((a))/;
+var input0 = "abc";
+var results = ["a", "a", "a"];
+shouldBe('regex334.exec(input0);', 'results');
+
+var regex335 = /(a)b(c)/;
+var input0 = "abc";
+var results = ["abc", "a", "c"];
+shouldBe('regex335.exec(input0);', 'results');
+
+var regex336 = /a+b+c/;
+var input0 = "aabbabc";
+var results = ["abc"];
+shouldBe('regex336.exec(input0);', 'results');
+
+var regex337 = /a{1,}b{1,}c/;
+var input0 = "aabbabc";
+var results = ["abc"];
+shouldBe('regex337.exec(input0);', 'results');
+
+var regex338 = /a.+?c/;
+var input0 = "abcabc";
+var results = ["abc"];
+shouldBe('regex338.exec(input0);', 'results');
+
+var regex339 = /(a+|b)*/;
+var input0 = "ab";
+var results = ["ab", "b"];
+shouldBe('regex339.exec(input0);', 'results');
+
+var regex340 = /(a+|b){0,}/;
+var input0 = "ab";
+var results = ["ab", "b"];
+shouldBe('regex340.exec(input0);', 'results');
+
+var regex341 = /(a+|b)+/;
+var input0 = "ab";
+var results = ["ab", "b"];
+shouldBe('regex341.exec(input0);', 'results');
+
+var regex342 = /(a+|b){1,}/;
+var input0 = "ab";
+var results = ["ab", "b"];
+shouldBe('regex342.exec(input0);', 'results');
+
+var regex343 = /(a+|b)?/;
+var input0 = "ab";
+var results = ["a", "a"];
+shouldBe('regex343.exec(input0);', 'results');
+
+var regex344 = /(a+|b){0,1}/;
+var input0 = "ab";
+var results = ["a", "a"];
+shouldBe('regex344.exec(input0);', 'results');
+
+var regex345 = /[^ab]*/;
+var input0 = "cde";
+var results = ["cde"];
+shouldBe('regex345.exec(input0);', 'results');
+
+var regex346 = /abc/;
+// Failers
+var input0 = "b";
+var results = null;
+shouldBe('regex346.exec(input0);', 'results');
+
+var regex347 = /([abc])*d/;
+var input0 = "abbbcd";
+var results = ["abbbcd", "c"];
+shouldBe('regex347.exec(input0);', 'results');
+
+var regex348 = /([abc])*bcd/;
+var input0 = "abcd";
+var results = ["abcd", "a"];
+shouldBe('regex348.exec(input0);', 'results');
+
+var regex349 = /a|b|c|d|e/;
+var input0 = "e";
+var results = ["e"];
+shouldBe('regex349.exec(input0);', 'results');
+
+var regex350 = /(a|b|c|d|e)f/;
+var input0 = "ef";
+var results = ["ef", "e"];
+shouldBe('regex350.exec(input0);', 'results');
+
+var regex351 = /abcd*efg/;
+var input0 = "abcdefg";
+var results = ["abcdefg"];
+shouldBe('regex351.exec(input0);', 'results');
+
+var regex352 = /ab*/;
+var input0 = "xabyabbbz";
+var results = ["ab"];
+shouldBe('regex352.exec(input0);', 'results');
+var input1 = "xayabbbz";
+var results = ["a"];
+shouldBe('regex352.exec(input1);', 'results');
+
+var regex353 = /(ab|cd)e/;
+var input0 = "abcde";
+var results = ["cde", "cd"];
+shouldBe('regex353.exec(input0);', 'results');
+
+var regex354 = /[abhgefdc]ij/;
+var input0 = "hij";
+var results = ["hij"];
+shouldBe('regex354.exec(input0);', 'results');
+
+var regex355 = /(abc|)ef/;
+var input0 = "abcdef";
+var results = ["ef", ""];
+shouldBe('regex355.exec(input0);', 'results');
+
+var regex356 = /(a|b)c*d/;
+var input0 = "abcd";
+var results = ["bcd", "b"];
+shouldBe('regex356.exec(input0);', 'results');
+
+var regex357 = /(ab|ab*)bc/;
+var input0 = "abc";
+var results = ["abc", "a"];
+shouldBe('regex357.exec(input0);', 'results');
+
+var regex358 = /a([bc]*)c*/;
+var input0 = "abc";
+var results = ["abc", "bc"];
+shouldBe('regex358.exec(input0);', 'results');
+
+var regex359 = /a([bc]*)(c*d)/;
+var input0 = "abcd";
+var results = ["abcd", "bc", "d"];
+shouldBe('regex359.exec(input0);', 'results');
+
+var regex360 = /a([bc]+)(c*d)/;
+var input0 = "abcd";
+var results = ["abcd", "bc", "d"];
+shouldBe('regex360.exec(input0);', 'results');
+
+var regex361 = /a([bc]*)(c+d)/;
+var input0 = "abcd";
+var results = ["abcd", "b", "cd"];
+shouldBe('regex361.exec(input0);', 'results');
+
+var regex362 = /a[bcd]*dcdcde/;
+var input0 = "adcdcde";
+var results = ["adcdcde"];
+shouldBe('regex362.exec(input0);', 'results');
+
+var regex363 = /a[bcd]+dcdcde/;
+// Failers
+var input0 = "abcde";
+var results = null;
+shouldBe('regex363.exec(input0);', 'results');
+var input1 = "adcdcde";
+var results = null;
+shouldBe('regex363.exec(input1);', 'results');
+
+var regex364 = /(ab|a)b*c/;
+var input0 = "abc";
+var results = ["abc", "ab"];
+shouldBe('regex364.exec(input0);', 'results');
+
+var regex365 = /((a)(b)c)(d)/;
+var input0 = "abcd";
+var results = ["abcd", "abc", "a", "b", "d"];
+shouldBe('regex365.exec(input0);', 'results');
+
+var regex366 = /[a-zA-Z_][a-zA-Z0-9_]*/;
+var input0 = "alpha";
+var results = ["alpha"];
+shouldBe('regex366.exec(input0);', 'results');
+
+var regex367 = /^a(bc+|b[eh])g|.h$/;
+var input0 = "abh";
+var results = ["bh", undefined];
+shouldBe('regex367.exec(input0);', 'results');
+
+var regex368 = /(bc+d$|ef*g.|h?i(j|k))/;
+var input0 = "effgz";
+var results = ["effgz", "effgz", undefined];
+shouldBe('regex368.exec(input0);', 'results');
+var input1 = "ij";
+var results = ["ij", "ij", "j"];
+shouldBe('regex368.exec(input1);', 'results');
+var input2 = "reffgz";
+var results = ["effgz", "effgz", undefined];
+shouldBe('regex368.exec(input2);', 'results');
+// Failers
+var input3 = "effg";
+var results = null;
+shouldBe('regex368.exec(input3);', 'results');
+var input4 = "bcdd";
+var results = null;
+shouldBe('regex368.exec(input4);', 'results');
+
+var regex369 = /((((((((((a))))))))))/;
+var input0 = "a";
+var results = ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a"];
+shouldBe('regex369.exec(input0);', 'results');
+
+var regex370 = /((((((((((a))))))))))\10/;
+var input0 = "aa";
+var results = ["aa", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a"];
+shouldBe('regex370.exec(input0);', 'results');
+
+var regex371 = /(((((((((a)))))))))/;
+var input0 = "a";
+var results = ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a"];
+shouldBe('regex371.exec(input0);', 'results');
+
+var regex372 = /multiple words of text/;
+// Failers
+var input0 = "aa";
+var results = null;
+shouldBe('regex372.exec(input0);', 'results');
+var input1 = "uh-uh";
+var results = null;
+shouldBe('regex372.exec(input1);', 'results');
+
+var regex373 = /multiple words/;
+var input0 = "multiple words, yeah";
+var results = ["multiple words"];
+shouldBe('regex373.exec(input0);', 'results');
+
+var regex374 = /(.*)c(.*)/;
+var input0 = "abcde";
+var results = ["abcde", "ab", "de"];
+shouldBe('regex374.exec(input0);', 'results');
+
+var regex375 = /\((.*), (.*)\)/;
+var input0 = "(a, b)";
+var results = ["(a, b)", "a", "b"];
+shouldBe('regex375.exec(input0);', 'results');
+
+var regex376 = /abcd/;
+var input0 = "abcd";
+var results = ["abcd"];
+shouldBe('regex376.exec(input0);', 'results');
+
+var regex377 = /a(bc)d/;
+var input0 = "abcd";
+var results = ["abcd", "bc"];
+shouldBe('regex377.exec(input0);', 'results');
+
+var regex378 = /a[-]?c/;
+var input0 = "ac";
+var results = ["ac"];
+shouldBe('regex378.exec(input0);', 'results');
+
+var regex379 = /(abc)\1/;
+var input0 = "abcabc";
+var results = ["abcabc", "abc"];
+shouldBe('regex379.exec(input0);', 'results');
+
+var regex380 = /([a-c]*)\1/;
+var input0 = "abcabc";
+var results = ["abcabc", "abc"];
+shouldBe('regex380.exec(input0);', 'results');
+
+var regex381 = /(a)|\1/;
+var input0 = "a";
+var results = ["a", "a"];
+shouldBe('regex381.exec(input0);', 'results');
+var input1 = "ab";
+var results = ["a", "a"];
+shouldBe('regex381.exec(input1);', 'results');
+var input2 = "x";
+var results = ["", undefined];
+shouldBe('regex381.exec(input2);', 'results');
+
+var regex382 = /(([a-c])b*?\2)*/;
+var input0 = "ababbbcbc";
+var results = ["ababb", "bb", "b"];
+shouldBe('regex382.exec(input0);', 'results');
+
+var regex383 = /(([a-c])b*?\2){3}/;
+var input0 = "ababbbcbc";
+var results = ["ababbbcbc", "cbc", "c"];
+shouldBe('regex383.exec(input0);', 'results');
+
+var regex384 = /((\3|b)\2(a)x)+/;
+var input0 = "aaaxabaxbaaxbbax";
+var results = ["ax", "ax", "", "a"];
+shouldBe('regex384.exec(input0);', 'results');
+
+var regex385 = /((\3|b)\2(a)){2,}/;
+var input0 = "bbaababbabaaaaabbaaaabba";
+var results = ["bbaa", "a", "", "a"];
+shouldBe('regex385.exec(input0);', 'results');
+
+var regex386 = /abc/i;
+var input0 = "ABC";
+var results = ["ABC"];
+shouldBe('regex386.exec(input0);', 'results');
+var input1 = "XABCY";
+var results = ["ABC"];
+shouldBe('regex386.exec(input1);', 'results');
+var input2 = "ABABC";
+var results = ["ABC"];
+shouldBe('regex386.exec(input2);', 'results');
+// Failers
+var input3 = "aaxabxbaxbbx";
+var results = null;
+shouldBe('regex386.exec(input3);', 'results');
+var input4 = "XBC";
+var results = null;
+shouldBe('regex386.exec(input4);', 'results');
+var input5 = "AXC";
+var results = null;
+shouldBe('regex386.exec(input5);', 'results');
+var input6 = "ABX";
+var results = null;
+shouldBe('regex386.exec(input6);', 'results');
+
+var regex387 = /ab*c/i;
+var input0 = "ABC";
+var results = ["ABC"];
+shouldBe('regex387.exec(input0);', 'results');
+
+var regex388 = /ab*bc/i;
+var input0 = "ABC";
+var results = ["ABC"];
+shouldBe('regex388.exec(input0);', 'results');
+var input1 = "ABBC";
+var results = ["ABBC"];
+shouldBe('regex388.exec(input1);', 'results');
+
+var regex389 = /ab*?bc/i;
+var input0 = "ABBBBC";
+var results = ["ABBBBC"];
+shouldBe('regex389.exec(input0);', 'results');
+
+var regex390 = /ab{0,}?bc/i;
+var input0 = "ABBBBC";
+var results = ["ABBBBC"];
+shouldBe('regex390.exec(input0);', 'results');
+
+var regex391 = /ab+?bc/i;
+var input0 = "ABBC";
+var results = ["ABBC"];
+shouldBe('regex391.exec(input0);', 'results');
+
+var regex392 = /ab+bc/i;
+// Failers
+var input0 = "ABC";
+var results = null;
+shouldBe('regex392.exec(input0);', 'results');
+var input1 = "ABQ";
+var results = null;
+shouldBe('regex392.exec(input1);', 'results');
+
+var regex393 = /ab+bc/i;
+var input0 = "ABBBBC";
+var results = ["ABBBBC"];
+shouldBe('regex393.exec(input0);', 'results');
+
+var regex394 = /ab{1,}?bc/i;
+var input0 = "ABBBBC";
+var results = ["ABBBBC"];
+shouldBe('regex394.exec(input0);', 'results');
+
+var regex395 = /ab{1,3}?bc/i;
+var input0 = "ABBBBC";
+var results = ["ABBBBC"];
+shouldBe('regex395.exec(input0);', 'results');
+
+var regex396 = /ab{3,4}?bc/i;
+var input0 = "ABBBBC";
+var results = ["ABBBBC"];
+shouldBe('regex396.exec(input0);', 'results');
+
+var regex397 = /ab{4,5}?bc/i;
+// Failers
+var input0 = "ABQ";
+var results = null;
+shouldBe('regex397.exec(input0);', 'results');
+var input1 = "ABBBBC";
+var results = null;
+shouldBe('regex397.exec(input1);', 'results');
+
+var regex398 = /ab??bc/i;
+var input0 = "ABBC";
+var results = ["ABBC"];
+shouldBe('regex398.exec(input0);', 'results');
+var input1 = "ABC";
+var results = ["ABC"];
+shouldBe('regex398.exec(input1);', 'results');
+
+var regex399 = /ab{0,1}?bc/i;
+var input0 = "ABC";
+var results = ["ABC"];
+shouldBe('regex399.exec(input0);', 'results');
+
+var regex400 = /ab??c/i;
+var input0 = "ABC";
+var results = ["ABC"];
+shouldBe('regex400.exec(input0);', 'results');
+
+var regex401 = /ab{0,1}?c/i;
+var input0 = "ABC";
+var results = ["ABC"];
+shouldBe('regex401.exec(input0);', 'results');
+
+var regex402 = /^abc$/i;
+var input0 = "ABC";
+var results = ["ABC"];
+shouldBe('regex402.exec(input0);', 'results');
+// Failers
+var input1 = "ABBBBC";
+var results = null;
+shouldBe('regex402.exec(input1);', 'results');
+var input2 = "ABCC";
+var results = null;
+shouldBe('regex402.exec(input2);', 'results');
+
+var regex403 = /^abc/i;
+var input0 = "ABCC";
+var results = ["ABC"];
+shouldBe('regex403.exec(input0);', 'results');
+
+var regex404 = /abc$/i;
+var input0 = "AABC";
+var results = ["ABC"];
+shouldBe('regex404.exec(input0);', 'results');
+
+var regex405 = /^/i;
+var input0 = "ABC";
+var results = [""];
+shouldBe('regex405.exec(input0);', 'results');
+
+var regex406 = /$/i;
+var input0 = "ABC";
+var results = [""];
+shouldBe('regex406.exec(input0);', 'results');
+
+var regex407 = /a.c/i;
+var input0 = "ABC";
+var results = ["ABC"];
+shouldBe('regex407.exec(input0);', 'results');
+var input1 = "AXC";
+var results = ["AXC"];
+shouldBe('regex407.exec(input1);', 'results');
+
+var regex408 = /a.*?c/i;
+var input0 = "AXYZC";
+var results = ["AXYZC"];
+shouldBe('regex408.exec(input0);', 'results');
+
+var regex409 = /a.*c/i;
+// Failers
+var input0 = "AABC";
+var results = ["AABC"];
+shouldBe('regex409.exec(input0);', 'results');
+var input1 = "AXYZD";
+var results = null;
+shouldBe('regex409.exec(input1);', 'results');
+
+var regex410 = /a[bc]d/i;
+var input0 = "ABD";
+var results = ["ABD"];
+shouldBe('regex410.exec(input0);', 'results');
+
+var regex411 = /a[b-d]e/i;
+var input0 = "ACE";
+var results = ["ACE"];
+shouldBe('regex411.exec(input0);', 'results');
+// Failers
+var input1 = "ABC";
+var results = null;
+shouldBe('regex411.exec(input1);', 'results');
+var input2 = "ABD";
+var results = null;
+shouldBe('regex411.exec(input2);', 'results');
+
+var regex412 = /a[b-d]/i;
+var input0 = "AAC";
+var results = ["AC"];
+shouldBe('regex412.exec(input0);', 'results');
+
+var regex413 = /a[-b]/i;
+var input0 = "A-";
+var results = ["A-"];
+shouldBe('regex413.exec(input0);', 'results');
+
+var regex414 = /a[b-]/i;
+var input0 = "A-";
+var results = ["A-"];
+shouldBe('regex414.exec(input0);', 'results');
+
+var regex415 = /a]/i;
+var input0 = "A]";
+var results = ["A]"];
+shouldBe('regex415.exec(input0);', 'results');
+
+var regex416 = /a[\]]b/i;
+var input0 = "A]B";
+var results = ["A]B"];
+shouldBe('regex416.exec(input0);', 'results');
+
+var regex417 = /a[^bc]d/i;
+var input0 = "AED";
+var results = ["AED"];
+shouldBe('regex417.exec(input0);', 'results');
+
+var regex418 = /a[^-b]c/i;
+var input0 = "ADC";
+var results = ["ADC"];
+shouldBe('regex418.exec(input0);', 'results');
+// Failers
+var input1 = "ABD";
+var results = null;
+shouldBe('regex418.exec(input1);', 'results');
+var input2 = "A-C";
+var results = null;
+shouldBe('regex418.exec(input2);', 'results');
+
+var regex419 = /a[^\]b]c/i;
+var input0 = "ADC";
+var results = ["ADC"];
+shouldBe('regex419.exec(input0);', 'results');
+
+var regex420 = /ab|cd/i;
+var input0 = "ABC";
+var results = ["AB"];
+shouldBe('regex420.exec(input0);', 'results');
+var input1 = "ABCD";
+var results = ["AB"];
+shouldBe('regex420.exec(input1);', 'results');
+
+var regex421 = /()ef/i;
+var input0 = "DEF";
+var results = ["EF", ""];
+shouldBe('regex421.exec(input0);', 'results');
+
+var regex422 = /$b/i;
+// Failers
+var input0 = "A]C";
+var results = null;
+shouldBe('regex422.exec(input0);', 'results');
+var input1 = "B";
+var results = null;
+shouldBe('regex422.exec(input1);', 'results');
+
+var regex423 = /a\(b/i;
+var input0 = "A(B";
+var results = ["A(B"];
+shouldBe('regex423.exec(input0);', 'results');
+
+var regex424 = /a\(*b/i;
+var input0 = "AB";
+var results = ["AB"];
+shouldBe('regex424.exec(input0);', 'results');
+var input1 = "A((B";
+var results = ["A((B"];
+shouldBe('regex424.exec(input1);', 'results');
+
+var regex425 = /a\\b/i;
+var input0 = "A\B";
+var results = null;
+shouldBe('regex425.exec(input0);', 'results');
+
+var regex426 = /((a))/i;
+var input0 = "ABC";
+var results = ["A", "A", "A"];
+shouldBe('regex426.exec(input0);', 'results');
+
+var regex427 = /(a)b(c)/i;
+var input0 = "ABC";
+var results = ["ABC", "A", "C"];
+shouldBe('regex427.exec(input0);', 'results');
+
+var regex428 = /a+b+c/i;
+var input0 = "AABBABC";
+var results = ["ABC"];
+shouldBe('regex428.exec(input0);', 'results');
+
+var regex429 = /a{1,}b{1,}c/i;
+var input0 = "AABBABC";
+var results = ["ABC"];
+shouldBe('regex429.exec(input0);', 'results');
+
+var regex430 = /a.+?c/i;
+var input0 = "ABCABC";
+var results = ["ABC"];
+shouldBe('regex430.exec(input0);', 'results');
+
+var regex431 = /a.*?c/i;
+var input0 = "ABCABC";
+var results = ["ABC"];
+shouldBe('regex431.exec(input0);', 'results');
+
+var regex432 = /a.{0,5}?c/i;
+var input0 = "ABCABC";
+var results = ["ABC"];
+shouldBe('regex432.exec(input0);', 'results');
+
+var regex433 = /(a+|b)*/i;
+var input0 = "AB";
+var results = ["AB", "B"];
+shouldBe('regex433.exec(input0);', 'results');
+
+var regex434 = /(a+|b){0,}/i;
+var input0 = "AB";
+var results = ["AB", "B"];
+shouldBe('regex434.exec(input0);', 'results');
+
+var regex435 = /(a+|b)+/i;
+var input0 = "AB";
+var results = ["AB", "B"];
+shouldBe('regex435.exec(input0);', 'results');
+
+var regex436 = /(a+|b){1,}/i;
+var input0 = "AB";
+var results = ["AB", "B"];
+shouldBe('regex436.exec(input0);', 'results');
+
+var regex437 = /(a+|b)?/i;
+var input0 = "AB";
+var results = ["A", "A"];
+shouldBe('regex437.exec(input0);', 'results');
+
+var regex438 = /(a+|b){0,1}/i;
+var input0 = "AB";
+var results = ["A", "A"];
+shouldBe('regex438.exec(input0);', 'results');
+
+var regex439 = /(a+|b){0,1}?/i;
+var input0 = "AB";
+var results = ["", undefined];
+shouldBe('regex439.exec(input0);', 'results');
+
+var regex440 = /[^ab]*/i;
+var input0 = "CDE";
+var results = ["CDE"];
+shouldBe('regex440.exec(input0);', 'results');
+
+var regex441 = /([abc])*d/i;
+var input0 = "ABBBCD";
+var results = ["ABBBCD", "C"];
+shouldBe('regex441.exec(input0);', 'results');
+
+var regex442 = /([abc])*bcd/i;
+var input0 = "ABCD";
+var results = ["ABCD", "A"];
+shouldBe('regex442.exec(input0);', 'results');
+
+var regex443 = /a|b|c|d|e/i;
+var input0 = "E";
+var results = ["E"];
+shouldBe('regex443.exec(input0);', 'results');
+
+var regex444 = /(a|b|c|d|e)f/i;
+var input0 = "EF";
+var results = ["EF", "E"];
+shouldBe('regex444.exec(input0);', 'results');
+
+var regex445 = /abcd*efg/i;
+var input0 = "ABCDEFG";
+var results = ["ABCDEFG"];
+shouldBe('regex445.exec(input0);', 'results');
+
+var regex446 = /ab*/i;
+var input0 = "XABYABBBZ";
+var results = ["AB"];
+shouldBe('regex446.exec(input0);', 'results');
+var input1 = "XAYABBBZ";
+var results = ["A"];
+shouldBe('regex446.exec(input1);', 'results');
+
+var regex447 = /(ab|cd)e/i;
+var input0 = "ABCDE";
+var results = ["CDE", "CD"];
+shouldBe('regex447.exec(input0);', 'results');
+
+var regex448 = /[abhgefdc]ij/i;
+var input0 = "HIJ";
+var results = ["HIJ"];
+shouldBe('regex448.exec(input0);', 'results');
+
+var regex449 = /^(ab|cd)e/i;
+var input0 = "ABCDE";
+var results = null;
+shouldBe('regex449.exec(input0);', 'results');
+
+var regex450 = /(abc|)ef/i;
+var input0 = "ABCDEF";
+var results = ["EF", ""];
+shouldBe('regex450.exec(input0);', 'results');
+
+var regex451 = /(a|b)c*d/i;
+var input0 = "ABCD";
+var results = ["BCD", "B"];
+shouldBe('regex451.exec(input0);', 'results');
+
+var regex452 = /(ab|ab*)bc/i;
+var input0 = "ABC";
+var results = ["ABC", "A"];
+shouldBe('regex452.exec(input0);', 'results');
+
+var regex453 = /a([bc]*)c*/i;
+var input0 = "ABC";
+var results = ["ABC", "BC"];
+shouldBe('regex453.exec(input0);', 'results');
+
+var regex454 = /a([bc]*)(c*d)/i;
+var input0 = "ABCD";
+var results = ["ABCD", "BC", "D"];
+shouldBe('regex454.exec(input0);', 'results');
+
+var regex455 = /a([bc]+)(c*d)/i;
+var input0 = "ABCD";
+var results = ["ABCD", "BC", "D"];
+shouldBe('regex455.exec(input0);', 'results');
+
+var regex456 = /a([bc]*)(c+d)/i;
+var input0 = "ABCD";
+var results = ["ABCD", "B", "CD"];
+shouldBe('regex456.exec(input0);', 'results');
+
+var regex457 = /a[bcd]*dcdcde/i;
+var input0 = "ADCDCDE";
+var results = ["ADCDCDE"];
+shouldBe('regex457.exec(input0);', 'results');
+
+var regex458 = /(ab|a)b*c/i;
+var input0 = "ABC";
+var results = ["ABC", "AB"];
+shouldBe('regex458.exec(input0);', 'results');
+
+var regex459 = /((a)(b)c)(d)/i;
+var input0 = "ABCD";
+var results = ["ABCD", "ABC", "A", "B", "D"];
+shouldBe('regex459.exec(input0);', 'results');
+
+var regex460 = /[a-zA-Z_][a-zA-Z0-9_]*/i;
+var input0 = "ALPHA";
+var results = ["ALPHA"];
+shouldBe('regex460.exec(input0);', 'results');
+
+var regex461 = /^a(bc+|b[eh])g|.h$/i;
+var input0 = "ABH";
+var results = ["BH", undefined];
+shouldBe('regex461.exec(input0);', 'results');
+
+var regex462 = /(bc+d$|ef*g.|h?i(j|k))/i;
+var input0 = "EFFGZ";
+var results = ["EFFGZ", "EFFGZ", undefined];
+shouldBe('regex462.exec(input0);', 'results');
+var input1 = "IJ";
+var results = ["IJ", "IJ", "J"];
+shouldBe('regex462.exec(input1);', 'results');
+var input2 = "REFFGZ";
+var results = ["EFFGZ", "EFFGZ", undefined];
+shouldBe('regex462.exec(input2);', 'results');
+// Failers
+var input3 = "ADCDCDE";
+var results = null;
+shouldBe('regex462.exec(input3);', 'results');
+var input4 = "EFFG";
+var results = null;
+shouldBe('regex462.exec(input4);', 'results');
+var input5 = "BCDD";
+var results = null;
+shouldBe('regex462.exec(input5);', 'results');
+
+var regex463 = /((((((((((a))))))))))/i;
+var input0 = "A";
+var results = ["A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A"];
+shouldBe('regex463.exec(input0);', 'results');
+
+var regex464 = /((((((((((a))))))))))\10/i;
+var input0 = "AA";
+var results = ["AA", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A"];
+shouldBe('regex464.exec(input0);', 'results');
+
+var regex465 = /(((((((((a)))))))))/i;
+var input0 = "A";
+var results = ["A", "A", "A", "A", "A", "A", "A", "A", "A", "A"];
+shouldBe('regex465.exec(input0);', 'results');
+
+var regex466 = /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i;
+var input0 = "A";
+var results = ["A", "A"];
+shouldBe('regex466.exec(input0);', 'results');
+
+var regex467 = /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i;
+var input0 = "C";
+var results = ["C", "C"];
+shouldBe('regex467.exec(input0);', 'results');
+
+var regex468 = /multiple words of text/i;
+// Failers
+var input0 = "AA";
+var results = null;
+shouldBe('regex468.exec(input0);', 'results');
+var input1 = "UH-UH";
+var results = null;
+shouldBe('regex468.exec(input1);', 'results');
+
+var regex469 = /multiple words/i;
+var input0 = "MULTIPLE WORDS, YEAH";
+var results = ["MULTIPLE WORDS"];
+shouldBe('regex469.exec(input0);', 'results');
+
+var regex470 = /(.*)c(.*)/i;
+var input0 = "ABCDE";
+var results = ["ABCDE", "AB", "DE"];
+shouldBe('regex470.exec(input0);', 'results');
+
+var regex471 = /\((.*), (.*)\)/i;
+var input0 = "(A, B)";
+var results = ["(A, B)", "A", "B"];
+shouldBe('regex471.exec(input0);', 'results');
+
+var regex472 = /abcd/i;
+var input0 = "ABCD";
+var results = ["ABCD"];
+shouldBe('regex472.exec(input0);', 'results');
+
+var regex473 = /a(bc)d/i;
+var input0 = "ABCD";
+var results = ["ABCD", "BC"];
+shouldBe('regex473.exec(input0);', 'results');
+
+var regex474 = /a[-]?c/i;
+var input0 = "AC";
+var results = ["AC"];
+shouldBe('regex474.exec(input0);', 'results');
+
+var regex475 = /(abc)\1/i;
+var input0 = "ABCABC";
+var results = ["ABCABC", "ABC"];
+shouldBe('regex475.exec(input0);', 'results');
+
+var regex476 = /([a-c]*)\1/i;
+var input0 = "ABCABC";
+var results = ["ABCABC", "ABC"];
+shouldBe('regex476.exec(input0);', 'results');
+
+var regex477 = /a(?!b)./;
+var input0 = "abad";
+var results = ["ad"];
+shouldBe('regex477.exec(input0);', 'results');
+
+var regex478 = /a(?=d)./;
+var input0 = "abad";
+var results = ["ad"];
+shouldBe('regex478.exec(input0);', 'results');
+
+var regex479 = /a(?=c|d)./;
+var input0 = "abad";
+var results = ["ad"];
+shouldBe('regex479.exec(input0);', 'results');
+
+var regex480 = /a(?:b|c|d)(.)/;
+var input0 = "ace";
+var results = ["ace", "e"];
+shouldBe('regex480.exec(input0);', 'results');
+
+var regex481 = /a(?:b|c|d)*(.)/;
+var input0 = "ace";
+var results = ["ace", "e"];
+shouldBe('regex481.exec(input0);', 'results');
+
+var regex482 = /a(?:b|c|d)+?(.)/;
+var input0 = "ace";
+var results = ["ace", "e"];
+shouldBe('regex482.exec(input0);', 'results');
+var input1 = "acdbcdbe";
+var results = ["acd", "d"];
+shouldBe('regex482.exec(input1);', 'results');
+
+var regex483 = /a(?:b|c|d)+(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdbcdbe", "e"];
+shouldBe('regex483.exec(input0);', 'results');
+
+var regex484 = /a(?:b|c|d){2}(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdb", "b"];
+shouldBe('regex484.exec(input0);', 'results');
+
+var regex485 = /a(?:b|c|d){4,5}(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdbcdb", "b"];
+shouldBe('regex485.exec(input0);', 'results');
+
+var regex486 = /a(?:b|c|d){4,5}?(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdbcd", "d"];
+shouldBe('regex486.exec(input0);', 'results');
+
+var regex487 = /((foo)|(bar))*/;
+var input0 = "foobar";
+var results = ["foobar", "bar", undefined, "bar"];
+shouldBe('regex487.exec(input0);', 'results');
+
+var regex488 = /a(?:b|c|d){6,7}(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdbcdbe", "e"];
+shouldBe('regex488.exec(input0);', 'results');
+
+var regex489 = /a(?:b|c|d){6,7}?(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdbcdbe", "e"];
+shouldBe('regex489.exec(input0);', 'results');
+
+var regex490 = /a(?:b|c|d){5,6}(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdbcdbe", "e"];
+shouldBe('regex490.exec(input0);', 'results');
+
+var regex491 = /a(?:b|c|d){5,6}?(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdbcdb", "b"];
+shouldBe('regex491.exec(input0);', 'results');
+
+var regex492 = /a(?:b|c|d){5,7}(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdbcdbe", "e"];
+shouldBe('regex492.exec(input0);', 'results');
+
+var regex493 = /a(?:b|c|d){5,7}?(.)/;
+var input0 = "acdbcdbe";
+var results = ["acdbcdb", "b"];
+shouldBe('regex493.exec(input0);', 'results');
+
+var regex494 = /a(?:b|(c|e){1,2}?|d)+?(.)/;
+var input0 = "ace";
+var results = ["ace", "c", "e"];
+shouldBe('regex494.exec(input0);', 'results');
+
+var regex495 = /^(.+)?B/;
+var input0 = "AB";
+var results = ["AB", "A"];
+shouldBe('regex495.exec(input0);', 'results');
+
+var regex496 = /^([^a-z])|(\^)$/;
+var input0 = ".";
+var results = [".", ".", undefined];
+shouldBe('regex496.exec(input0);', 'results');
+
+var regex497 = /^[<>]&/;
+var input0 = "<&OUT";
+var results = ["<&"];
+shouldBe('regex497.exec(input0);', 'results');
+
+var regex498 = /^(a\1?){4}$/;
+var input0 = "aaaaaaaaaa";
+var results = null;
+shouldBe('regex498.exec(input0);', 'results');
+// Failers
+var input1 = "AB";
+var results = null;
+shouldBe('regex498.exec(input1);', 'results');
+var input2 = "aaaaaaaaa";
+var results = null;
+shouldBe('regex498.exec(input2);', 'results');
+var input3 = "aaaaaaaaaaa";
+var results = null;
+shouldBe('regex498.exec(input3);', 'results');
+
+var regex499 = /^(a(?:\1)){4}$/;
+var input0 = "aaaa";
+var results = ["aaaa", "a"];
+shouldBe('regex499.exec(input0);', 'results');
+// Failers
+var input1 = "aaaaaaaaa";
+var results = null;
+shouldBe('regex499.exec(input1);', 'results');
+var input2 = "aaaaaaaaaaa";
+var results = null;
+shouldBe('regex499.exec(input2);', 'results');
+var input3 = "aaaaaaaaaa";
+var results = null;
+shouldBe('regex499.exec(input3);', 'results');
+
+var regex500 = /(?:(f)(o)(o)|(b)(a)(r))*/;
+var input0 = "foobar";
+var results = ["foobar", undefined, undefined, undefined, "b", "a", "r"];
+shouldBe('regex500.exec(input0);', 'results');
+
+var regex503 = /(?:..)*a/;
+var input0 = "aba";
+var results = ["aba"];
+shouldBe('regex503.exec(input0);', 'results');
+
+var regex504 = /(?:..)*?a/;
+var input0 = "aba";
+var results = ["a"];
+shouldBe('regex504.exec(input0);', 'results');
+
+var regex505 = /^(?:b|a(?=(.)))*\1/;
+var input0 = "abc";
+var results = ["ab", undefined];
+shouldBe('regex505.exec(input0);', 'results');
+
+var regex506 = /^(){3,5}/;
+var input0 = "abc";
+var results = ["", ""];
+shouldBe('regex506.exec(input0);', 'results');
+
+var regex507 = /^(a+)*ax/;
+var input0 = "aax";
+var results = ["aax", "a"];
+shouldBe('regex507.exec(input0);', 'results');
+
+var regex508 = /^((a|b)+)*ax/;
+var input0 = "aax";
+var results = ["aax", "a", "a"];
+shouldBe('regex508.exec(input0);', 'results');
+
+var regex509 = /^((a|bc)+)*ax/;
+var input0 = "aax";
+var results = ["aax", "a", "a"];
+shouldBe('regex509.exec(input0);', 'results');
+
+var regex510 = /(a|x)*ab/;
+var input0 = "cab";
+var results = ["ab", undefined];
+shouldBe('regex510.exec(input0);', 'results');
+
+var regex511 = /(a)*ab/;
+var input0 = "cab";
+var results = ["ab", undefined];
+shouldBe('regex511.exec(input0);', 'results');
+
+var regex512 = /(?:a)b/;
+var input0 = "ab";
+var results = ["ab"];
+shouldBe('regex512.exec(input0);', 'results');
+
+var regex513 = /(a)b/;
+var input0 = "ab";
+var results = ["ab", "a"];
+shouldBe('regex513.exec(input0);', 'results');
+
+var regex514 = /(?:a)b/i;
+var input0 = "Ab";
+var results = ["Ab"];
+shouldBe('regex514.exec(input0);', 'results');
+
+var regex515 = /(a)b/i;
+var input0 = "Ab";
+var results = ["Ab", "A"];
+shouldBe('regex515.exec(input0);', 'results');
+
+var regex516 = /(?:[aA])b/;
+// Failers
+var input0 = "cb";
+var results = null;
+shouldBe('regex516.exec(input0);', 'results');
+var input1 = "aB";
+var results = null;
+shouldBe('regex516.exec(input1);', 'results');
+
+var regex517 = /(?:a)b/;
+var input0 = "ab";
+var results = ["ab"];
+shouldBe('regex517.exec(input0);', 'results');
+
+var regex518 = /((?:a))b/;
+var input0 = "ab";
+var results = ["ab", "a"];
+shouldBe('regex518.exec(input0);', 'results');
+
+var regex519 = /(?:a)b/i;
+var input0 = "Ab";
+var results = ["Ab"];
+shouldBe('regex519.exec(input0);', 'results');
+
+var regex520 = /((?:a))b/i;
+var input0 = "Ab";
+var results = ["Ab", "A"];
+shouldBe('regex520.exec(input0);', 'results');
+
+var regex521 = /(?:a)b/;
+// Failers
+var input0 = "aB";
+var results = null;
+shouldBe('regex521.exec(input0);', 'results');
+var input1 = "aB";
+var results = null;
+shouldBe('regex521.exec(input1);', 'results');
+
+var regex522 = /(?:a)b/i;
+var input0 = "ab";
+var results = ["ab"];
+shouldBe('regex522.exec(input0);', 'results');
+
+var regex523 = /(a)b/i;
+var input0 = "ab";
+var results = ["ab", "a"];
+shouldBe('regex523.exec(input0);', 'results');
+
+var regex524 = /(?:a)b/i;
+var input0 = "aB";
+var results = ["aB"];
+shouldBe('regex524.exec(input0);', 'results');
+
+var regex525 = /(a)b/i;
+var input0 = "aB";
+var results = ["aB", "a"];
+shouldBe('regex525.exec(input0);', 'results');
+
+var regex526 = /(?:a)[bB]/;
+// Failers
+var input0 = "aB";
+var results = ["aB"];
+shouldBe('regex526.exec(input0);', 'results');
+var input1 = "Ab";
+var results = null;
+shouldBe('regex526.exec(input1);', 'results');
+
+var regex527 = /(?:a)b/i;
+var input0 = "aB";
+var results = ["aB"];
+shouldBe('regex527.exec(input0);', 'results');
+
+var regex528 = /(a)b/i;
+var input0 = "aB";
+var results = ["aB", "a"];
+shouldBe('regex528.exec(input0);', 'results');
+
+var regex529 = /(?:a)[bB]/;
+// Failers
+var input0 = "Ab";
+var results = null;
+shouldBe('regex529.exec(input0);', 'results');
+var input1 = "AB";
+var results = null;
+shouldBe('regex529.exec(input1);', 'results');
+
+var regex530 = /(?:a)b/;
+var input0 = "ab";
+var results = ["ab"];
+shouldBe('regex530.exec(input0);', 'results');
+
+var regex531 = /((?:a))b/i;
+var input0 = "ab";
+var results = ["ab", "a"];
+shouldBe('regex531.exec(input0);', 'results');
+
+var regex532 = /(?:a)b/i;
+var input0 = "aB";
+var results = ["aB"];
+shouldBe('regex532.exec(input0);', 'results');
+
+var regex533 = /((?:a))b/i;
+var input0 = "aB";
+var results = ["aB", "a"];
+shouldBe('regex533.exec(input0);', 'results');
+
+var regex534 = /(?:a)[bB]/;
+// Failers
+var input0 = "AB";
+var results = null;
+shouldBe('regex534.exec(input0);', 'results');
+var input1 = "Ab";
+var results = null;
+shouldBe('regex534.exec(input1);', 'results');
+
+var regex535 = /(?:a)b/i;
+var input0 = "aB";
+var results = ["aB"];
+shouldBe('regex535.exec(input0);', 'results');
+
+var regex536 = /((?:a))b/i;
+var input0 = "aB";
+var results = ["aB", "a"];
+shouldBe('regex536.exec(input0);', 'results');
+
+var regex537 = /(?:a)[bB]/ ;
+// Failers
+var input0 = "Ab";
+var results = null;
+shouldBe('regex537.exec(input0);', 'results');
+var input1 = "AB";
+var results = null;
+shouldBe('regex537.exec(input1);', 'results');
+
+var regex538 = /((?:a.))b/i;
+// Failers
+var input0 = "AB";
+var results = null;
+shouldBe('regex538.exec(input0);', 'results');
+var input1 = "a\nB";
+var results = null;
+shouldBe('regex538.exec(input1);', 'results');
+
+var regex539 = /((?:a[\w\W]))b/i;
+var input0 = "a\nB";
+var results = ["a\x0aB", "a\x0a"];
+shouldBe('regex539.exec(input0);', 'results');
+
+var regex540 = /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/;
+var input0 = "cabbbb";
+var results = ["cabbbb"];
+shouldBe('regex540.exec(input0);', 'results');
+
+var regex541 = /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/;
+var input0 = "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
+var results = ["caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"];
+shouldBe('regex541.exec(input0);', 'results');
+
+var regex542 = /(ab)\d\1/i;
+var input0 = "Ab4ab";
+var results = ["Ab4ab", "Ab"];
+shouldBe('regex542.exec(input0);', 'results');
+var input1 = "ab4Ab";
+var results = ["ab4Ab", "ab"];
+shouldBe('regex542.exec(input1);', 'results');
+
+var regex543 = /foo\w*\d{4}baz/;
+var input0 = "foobar1234baz";
+var results = ["foobar1234baz"];
+shouldBe('regex543.exec(input0);', 'results');
+
+var regex544 = /x(~~)*(?:(?:F)?)?/;
+var input0 = "x~~";
+var results = ["x~~", "~~"];
+shouldBe('regex544.exec(input0);', 'results');
+
+var regex545 = /^a{3}c/;
+var input0 = "aaac";
+var results = ["aaac"];
+shouldBe('regex545.exec(input0);', 'results');
+
+var regex550 = /^(?:a?b?)*$/;
+var input0 = "";
+var results = [""];
+shouldBe('regex550.exec(input0);', 'results');
+var input1 = "a";
+var results = ["a"];
+shouldBe('regex550.exec(input1);', 'results');
+var input2 = "ab";
+var results = ["ab"];
+shouldBe('regex550.exec(input2);', 'results');
+var input3 = "aaa";
+var results = ["aaa"];
+shouldBe('regex550.exec(input3);', 'results');
+// Failers
+var input4 = "dbcb";
+var results = null;
+shouldBe('regex550.exec(input4);', 'results');
+var input5 = "a--";
+var results = null;
+shouldBe('regex550.exec(input5);', 'results');
+var input6 = "aa--";
+var results = null;
+shouldBe('regex550.exec(input6);', 'results');
+
+var regex551 = /(^a([\w\W]))(^b$)/m;
+var input0 = "a\nb\nc\n";
+var results = ["a\x0ab", "a\x0a", "\x0a", "b"];
+shouldBe('regex551.exec(input0);', 'results');
+
+var regex552 = /(^b$)/m;
+var input0 = "a\nb\nc\n";
+var results = ["b", "b"];
+shouldBe('regex552.exec(input0);', 'results');
+
+var regex553 = /^b/m;
+var input0 = "a\nb\n";
+var results = ["b"];
+shouldBe('regex553.exec(input0);', 'results');
+
+var regex554 = /^(b)/m;
+var input0 = "a\nb\n";
+var results = ["b", "b"];
+shouldBe('regex554.exec(input0);', 'results');
+
+var regex555 = /(^b)/m;
+var input0 = "a\nb\n";
+var results = ["b", "b"];
+shouldBe('regex555.exec(input0);', 'results');
+
+var regex556 = /\n(^b)/m;
+var input0 = "a\nb\n";
+var results = ["\x0ab", "b"];
+shouldBe('regex556.exec(input0);', 'results');
+
+var regex557 = /([\w\W])c(?!.)/m;
+var input0 = "a\nb\nc\n";
+var results = ["\x0ac", "\x0a"];
+shouldBe('regex557.exec(input0);', 'results');
+var input1 = "a\nb\nc\n";
+var results = ["\x0ac", "\x0a"];
+shouldBe('regex557.exec(input1);', 'results');
+
+var regex558 = /(b[\w\W])c(?!.)/m;
+var input0 = "a\nb\nc\n";
+var results = ["b\x0ac", "b\x0a"];
+shouldBe('regex558.exec(input0);', 'results');
+var input1 = "a\nb\nc\n";
+var results = ["b\x0ac", "b\x0a"];
+shouldBe('regex558.exec(input1);', 'results');
+
+var regex559 = /()^b/;
+// Failers
+var input0 = "a\nb\nc\n";
+var results = null;
+shouldBe('regex559.exec(input0);', 'results');
+var input1 = "a\nb\nc\n";
+var results = null;
+shouldBe('regex559.exec(input1);', 'results');
+
+var regex560 = /(^b)/m;
+var input0 = "a\nb\nc\n";
+var results = ["b", "b"];
+shouldBe('regex560.exec(input0);', 'results');
+
+var regex561 = /(?:b|a)/;
+var input0 = "a";
+var results = ["a"];
+shouldBe('regex561.exec(input0);', 'results');
+
+var regex562 = /(x)?(?:a|b)/;
+var input0 = "xa";
+var results = ["xa", "x"];
+shouldBe('regex562.exec(input0);', 'results');
+var input1 = "a";
+var results = ["a", undefined];
+shouldBe('regex562.exec(input1);', 'results');
+
+var regex563 = /(x)?(?:b|a)/;
+var input0 = "a";
+var results = ["a", undefined];
+shouldBe('regex563.exec(input0);', 'results');
+
+var regex564 = /()?(?:b|a)/;
+var input0 = "a";
+var results = ["a", undefined];
+shouldBe('regex564.exec(input0);', 'results');
+
+var regex565 = /()?(?:a|b)/;
+var input0 = "a";
+var results = ["a", undefined];
+shouldBe('regex565.exec(input0);', 'results');
+
+var regex566 = /^(\()?blah(?:(\))?)$/;
+var input0 = "(blah)";
+var results = ["(blah)", "(", ")"];
+shouldBe('regex566.exec(input0);', 'results');
+var input1 = "blah";
+var results = ["blah", undefined, undefined];
+shouldBe('regex566.exec(input1);', 'results');
+var input2 = "blah)";
+var results = ["blah)", undefined, ")"];
+shouldBe('regex566.exec(input2);', 'results');
+var input3 = "(blah";
+var results = ["(blah", "(", undefined];
+shouldBe('regex566.exec(input3);', 'results');
+// Failers
+var input4 = "a";
+var results = null;
+shouldBe('regex566.exec(input4);', 'results');
+
+var regex567 = /^(\(+)?blah(?:(\))?)$/;
+var input0 = "(blah)";
+var results = ["(blah)", "(", ")"];
+shouldBe('regex567.exec(input0);', 'results');
+var input1 = "blah";
+var results = ["blah", undefined, undefined];
+shouldBe('regex567.exec(input1);', 'results');
+var input2 = "blah)";
+var results = ["blah)", undefined, ")"];
+shouldBe('regex567.exec(input2);', 'results');
+var input3 = "(blah";
+var results = ["(blah", "(", undefined];
+shouldBe('regex567.exec(input3);', 'results');
+
+var regex568 = /((?!a)b|a)/;
+var input0 = "a";
+var results = ["a", "a"];
+shouldBe('regex568.exec(input0);', 'results');
+
+var regex569 = /((?=a)b|a)/;
+var input0 = "a";
+var results = ["a", "a"];
+shouldBe('regex569.exec(input0);', 'results');
+var input1 = "a";
+var results = ["a", "a"];
+shouldBe('regex569.exec(input1);', 'results');
+
+var regex570 = /((?=a)a|b)/;
+var input0 = "a";
+var results = ["a", "a"];
+shouldBe('regex570.exec(input0);', 'results');
+
+var regex571 = /(?=(a+?))(\1ab)/;
+var input0 = "aaab";
+var results = ["aab", "a", "aab"];
+shouldBe('regex571.exec(input0);', 'results');
+
+var regex572 = /(\w+:)+/;
+var input0 = "one:";
+var results = ["one:", "one:"];
+shouldBe('regex572.exec(input0);', 'results');
+
+var regex574 = /(?=(a+?))(\1ab)/;
+var input0 = "aaab";
+var results = ["aab", "a", "aab"];
+shouldBe('regex574.exec(input0);', 'results');
+
+var regex575 = /^(?=(a+?))\1ab/;
+// Failers
+var input0 = "aaab";
+var results = null;
+shouldBe('regex575.exec(input0);', 'results');
+var input1 = "aaab";
+var results = null;
+shouldBe('regex575.exec(input1);', 'results');
+
+var regex576 = /([\w:]+::)?(\w+)$/;
+var input0 = "abcd";
+var results = ["abcd", undefined, "abcd"];
+shouldBe('regex576.exec(input0);', 'results');
+var input1 = "xy:z:::abcd";
+var results = ["xy:z:::abcd", "xy:z:::", "abcd"];
+shouldBe('regex576.exec(input1);', 'results');
+
+var regex577 = /^[^bcd]*(c+)/;
+var input0 = "aexycd";
+var results = ["aexyc", "c"];
+shouldBe('regex577.exec(input0);', 'results');
+
+var regex578 = /(a*)b+/;
+var input0 = "caab";
+var results = ["aab", "aa"];
+shouldBe('regex578.exec(input0);', 'results');
+
+var regex579 = /([\w:]+::)?(\w+)$/;
+var input0 = "abcd";
+var results = ["abcd", undefined, "abcd"];
+shouldBe('regex579.exec(input0);', 'results');
+var input1 = "xy:z:::abcd";
+var results = ["xy:z:::abcd", "xy:z:::", "abcd"];
+shouldBe('regex579.exec(input1);', 'results');
+// Failers
+var input2 = "abcd:";
+var results = null;
+shouldBe('regex579.exec(input2);', 'results');
+var input3 = "abcd:";
+var results = null;
+shouldBe('regex579.exec(input3);', 'results');
+
+var regex580 = /^[^bcd]*(c+)/;
+var input0 = "aexycd";
+var results = ["aexyc", "c"];
+shouldBe('regex580.exec(input0);', 'results');
+
+var regex582 = /([[:]+)/;
+var input0 = "a:[b]:";
+var results = [":[", ":["];
+shouldBe('regex582.exec(input0);', 'results');
+
+var regex583 = /([[=]+)/;
+var input0 = "a=[b]=";
+var results = ["=[", "=["];
+shouldBe('regex583.exec(input0);', 'results');
+
+var regex584 = /([[.]+)/;
+var input0 = "a.[b].";
+var results = [".[", ".["];
+shouldBe('regex584.exec(input0);', 'results');
+
+var regex588 = /a$/;
+var input0 = "aaab";
+var results = null;
+shouldBe('regex588.exec(input0);', 'results');
+var input1 = "a\nb\n";
+var results = null;
+shouldBe('regex588.exec(input1);', 'results');
+
+var regex589 = /b$/;
+var input0 = "a\nb";
+var results = ["b"];
+shouldBe('regex589.exec(input0);', 'results');
+// Failers
+var input1 = "a\nb\n";
+var results = null;
+shouldBe('regex589.exec(input1);', 'results');
+
+var regex590 = /b$/m;
+var input0 = "a\nb";
+var results = ["b"];
+shouldBe('regex590.exec(input0);', 'results');
+var input1 = "a\nb\n";
+var results = ["b"];
+shouldBe('regex590.exec(input1);', 'results');
+
+var regex600 = /<a[\s]+href[\s]*=[\s]*([\"\'])?(?:(.*?)\1|([^\s]+))/i;
+var input0 = "<a href=abcd xyz";
+var results = ["<a href=", undefined, "", undefined];
+shouldBe('regex600.exec(input0);', 'results');
+var input1 = "<a href=\"abcd xyz pqr\" cats";
+var results = ["<a href=\"abcd xyz pqr\"", "\"", "abcd xyz pqr", undefined];
+shouldBe('regex600.exec(input1);', 'results');
+var input2 = "<a href=\'abcd xyz pqr\' cats";
+var results = ["<a href=\'abcd xyz pqr\'", "\'", "abcd xyz pqr", undefined];
+shouldBe('regex600.exec(input2);', 'results');
+
+var regex601 = /<a\s+href\s*=\s*(["'])?(?:(.*?)\1|(\S+))/i;
+var input0 = "<a href=abcd xyz";
+var results = ["<a href=", undefined, "", undefined];
+shouldBe('regex601.exec(input0);', 'results');
+var input1 = "<a href=\"abcd xyz pqr\" cats";
+var results = ["<a href=\"abcd xyz pqr\"", "\"", "abcd xyz pqr", undefined];
+shouldBe('regex601.exec(input1);', 'results');
+var input2 = "<a href = \'abcd xyz pqr\' cats";
+var results = ["<a href = \'abcd xyz pqr\'", "\'", "abcd xyz pqr", undefined];
+shouldBe('regex601.exec(input2);', 'results');
+
+var regex603 = /((Z)+|A)*/;
+var input0 = "ZABCDEFG";
+var results = ["ZA", "A", undefined];
+shouldBe('regex603.exec(input0);', 'results');
+
+var regex604 = /(Z()|A)*/;
+var input0 = "ZABCDEFG";
+var results = ["ZA", "A", undefined];
+shouldBe('regex604.exec(input0);', 'results');
+
+var regex605 = /(Z(())|A)*/;
+var input0 = "ZABCDEFG";
+var results = ["ZA", "A", undefined, undefined];
+shouldBe('regex605.exec(input0);', 'results');
+
+var regex608 = "/^[a-\\d]/";
+shouldNotCompile("regex608");
+
+var regex609 = "/^[\\d-a]/";
+shouldNotCompile("regex609");
+
+var regex610 = /[\s]+/;
+var input0 = "> \x09\x0a\x0c\x0d\x0b<";
+var results = [" \x09\x0a\x0c\x0d\x0b"];
+shouldBe('regex610.exec(input0);', 'results');
+
+var regex611 = /[ ]+/;
+var input0 = "> \x09\x0a\x0c\x0d\x0b<";
+var results = [" "];
+shouldBe('regex611.exec(input0);', 'results');
+
+// FIXME: Per inclusion of BOM as a WS character in the ECMA 5 spec, this too should pass.
+// https://bugs.webkit.org/show_bug.cgi?id=50297
+var regex612 = /[\s]+/;
+var input0 = "> \x09\x0a\x0b\x0c\x0d\x20\xA0\u2028\u2029\uFEFF<";
+var results = [" \x09\x0a\x0b\x0c\x0d\x20\xA0\u2028\u2029"];
+shouldBe('regex612.exec(input0);', 'results');
+
+// FIXME: Per inclusion of BOM as a WS character in the ECMA 5 spec, this too should pass.
+// https://bugs.webkit.org/show_bug.cgi?id=50297
+var regex613 = /\s+/;
+var input0 = "> \x09\x0a\x0b\x0c\x0d\x20\xA0\u2028\u2029\uFEFF<";
+var results = [" \x09\x0a\x0b\x0c\x0d\x20\xA0\u2028\u2029"];
+shouldBe('regex613.exec(input0);', 'results');
+
+var regex614 = /ab/;
+var input0 = "ab";
+var results = ["ab"];
+shouldBe('regex614.exec(input0);', 'results');
+
+var regex616 = /(?!^)x/m;
+var input0 = "a\nxb\n";
+var results = null;
+shouldBe('regex616.exec(input0);', 'results');
+
+var regex621 = /^abc/;
+var input0 = "abc";
+var results = ["abc"];
+shouldBe('regex621.exec(input0);', 'results');
+// Failers
+var input1 = "xyzabc";
+var results = null;
+shouldBe('regex621.exec(input1);', 'results');
+
+var regex622 = /a(?:bc)d/;
+var input0 = "XabcdY";
+var results = ["abcd"];
+shouldBe('regex622.exec(input0);', 'results');
+// Failers
+var input1 = "Xa b c d Y";
+var results = null;
+shouldBe('regex622.exec(input1);', 'results');
+
+var regex623 = /(xyz|abc)/;
+var input0 = "XabcY";
+var results = ["abc", "abc"];
+shouldBe('regex623.exec(input0);', 'results');
+var input1 = "AxyzB";
+var results = ["xyz", "xyz"];
+shouldBe('regex623.exec(input1);', 'results');
+
+var regex624 = /ABC/i;
+var input0 = "XabCY";
+var results = ["abC"];
+shouldBe('regex624.exec(input0);', 'results');
+
+var regex625 = /([aA][bB]C|D)E/;
+var input0 = "abCE";
+var results = ["abCE", "abC"];
+shouldBe('regex625.exec(input0);', 'results');
+var input1 = "DE";
+var results = ["DE", "D"];
+shouldBe('regex625.exec(input1);', 'results');
+// Failers
+var input2 = "abcE";
+var results = null;
+shouldBe('regex625.exec(input2);', 'results');
+var input3 = "abCe";
+var results = null;
+shouldBe('regex625.exec(input3);', 'results');
+var input4 = "dE";
+var results = null;
+shouldBe('regex625.exec(input4);', 'results');
+var input5 = "De";
+var results = null;
+shouldBe('regex625.exec(input5);', 'results');
+
+var regex626 = /(.*)\d+\1/;
+var input0 = "abc123abc";
+var results = ["abc123abc", "abc"];
+shouldBe('regex626.exec(input0);', 'results');
+var input1 = "abc123bc";
+var results = ["bc123bc", "bc"];
+shouldBe('regex626.exec(input1);', 'results');
+
+var regex627 = /(.*)\d+\1/;
+var input0 = "abc123abc";
+var results = ["abc123abc", "abc"];
+shouldBe('regex627.exec(input0);', 'results');
+var input1 = "abc123bc";
+var results = ["bc123bc", "bc"];
+shouldBe('regex627.exec(input1);', 'results');
+
+var regex628 = /((.*))\d+\1/;
+var input0 = "abc123abc";
+var results = ["abc123abc", "abc", "abc"];
+shouldBe('regex628.exec(input0);', 'results');
+var input1 = "abc123bc";
+var results = ["bc123bc", "bc", "bc"];
+shouldBe('regex628.exec(input1);', 'results');
+
+var regex630 = /[\z\C]/;
+var input0 = "z";
+var results = ["z"];
+shouldBe('regex630.exec(input0);', 'results');
+var input1 = "C";
+var results = ["C"];
+shouldBe('regex630.exec(input1);', 'results');
+
+var regex631 = /\M/;
+var input0 = "M";
+var results = ["M"];
+shouldBe('regex631.exec(input0);', 'results');
+
+var regex632 = /(a+)*b/;
+var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex632.exec(input0);', 'results');
+
+var regex633 = /reg(?:ul(?:[a\xc3\xa4]|ae)r|ex)/i;
+var input0 = "REGular";
+var results = ["REGular"];
+shouldBe('regex633.exec(input0);', 'results');
+var input1 = "regulaer";
+var results = ["regulaer"];
+shouldBe('regex633.exec(input1);', 'results');
+var input2 = "Regex";
+var results = ["Regex"];
+shouldBe('regex633.exec(input2);', 'results');
+var input3 = "regul\xa4r";
+var results = ["regul\xa4r"];
+shouldBe('regex633.exec(input3);', 'results');
+// Failers
+var input4 = "regul\xc3\xa4r";
+var results = null;
+shouldBe('regex633.exec(input4);', 'results');
+
+var regex634 = /\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4[\xc3\xa0-\xc3\xbf\xc3\x80-\xc3\x9f]+/;
+var input0 = "\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3";
+var results = ["\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3"];
+shouldBe('regex634.exec(input0);', 'results');
+var input1 = "\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\xbf";
+var results = ["\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\xbf"];
+shouldBe('regex634.exec(input1);', 'results');
+var input2 = "\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\x80";
+var results = ["\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\x80"];
+shouldBe('regex634.exec(input2);', 'results');
+var input3 = "\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\x9f";
+var results = ["\xc3\x85\xc3\xa6\xc3\xa5\xc3\xa4\xc3\x9f"];
+shouldBe('regex634.exec(input3);', 'results');
+
+var regex636 = /ab cd defg/;
+var input0 = "ab cd defg";
+var results = ["ab cd defg"];
+shouldBe('regex636.exec(input0);', 'results');
+
+var regex637 = /ab cddefg/;
+var input0 = "ab cddefg";
+var results = ["ab cddefg"];
+shouldBe('regex637.exec(input0);', 'results');
+// Failers
+var input1 = "abcddefg";
+var results = null;
+shouldBe('regex637.exec(input1);', 'results');
+
+var regex641 = /(?:(?:a|b)(X))+/;
+var input0 = "bXaX";
+var results = ["bXaX", "X"];
+shouldBe('regex641.exec(input0);', 'results');
+
+var regex642 = /(?:(?:\1a|b)(X|Y))+/;
+var input0 = "bXXaYYaY";
+var results = ["bX", "X"];
+shouldBe('regex642.exec(input0);', 'results');
+var input1 = "bXYaXXaX";
+var results = ["bX", "X"];
+shouldBe('regex642.exec(input1);', 'results');
+
+// FIXME: this regex trips an ASSERT in JSC.
+// https://bugs.webkit.org/show_bug.cgi?id=50298
+//var regex643 = /()()()()()()()()()(?:(\10a|b)(X|Y))+/;
+//var input0 = "bXXaYYaY";
+//var results = ["bX", "", "", "", "", "", "", "", "", "", "X"];
+//shouldBe('regex643.exec(input0);', 'results');
+
+var regex644 = /[[,abc,]+]/;
+var input0 = "abc]";
+var results = ["abc]"];
+shouldBe('regex644.exec(input0);', 'results');
+var input1 = "a,b]";
+var results = ["a,b]"];
+shouldBe('regex644.exec(input1);', 'results');
+var input2 = "[a,b,c]";
+var results = ["[a,b,c]"];
+shouldBe('regex644.exec(input2);', 'results');
+
+var regex645 = /a*b*\w/;
+var input0 = "aaabbbb";
+var results = ["aaabbbb"];
+shouldBe('regex645.exec(input0);', 'results');
+var input1 = "aaaa";
+var results = ["aaaa"];
+shouldBe('regex645.exec(input1);', 'results');
+var input2 = "a";
+var results = ["a"];
+shouldBe('regex645.exec(input2);', 'results');
+
+var regex646 = /a*b?\w/;
+var input0 = "aaabbbb";
+var results = ["aaabb"];
+shouldBe('regex646.exec(input0);', 'results');
+var input1 = "aaaa";
+var results = ["aaaa"];
+shouldBe('regex646.exec(input1);', 'results');
+var input2 = "a";
+var results = ["a"];
+shouldBe('regex646.exec(input2);', 'results');
+
+var regex647 = /a*b{0,4}\w/;
+var input0 = "aaabbbb";
+var results = ["aaabbbb"];
+shouldBe('regex647.exec(input0);', 'results');
+var input1 = "aaaa";
+var results = ["aaaa"];
+shouldBe('regex647.exec(input1);', 'results');
+var input2 = "a";
+var results = ["a"];
+shouldBe('regex647.exec(input2);', 'results');
+
+var regex648 = /a*b{0,}\w/;
+var input0 = "aaabbbb";
+var results = ["aaabbbb"];
+shouldBe('regex648.exec(input0);', 'results');
+var input1 = "aaaa";
+var results = ["aaaa"];
+shouldBe('regex648.exec(input1);', 'results');
+var input2 = "a";
+var results = ["a"];
+shouldBe('regex648.exec(input2);', 'results');
+
+var regex649 = /a*\d*\w/;
+var input0 = "0a";
+var results = ["0a"];
+shouldBe('regex649.exec(input0);', 'results');
+var input1 = "a";
+var results = ["a"];
+shouldBe('regex649.exec(input1);', 'results');
+
+var regex650 = /^\w+=.*(\\\n.*)+/;
+var input0 = "abc=xyz\\\npqr";
+var results = ["abc=xyz\\\npqr", "\\\npqr"];
+shouldBe('regex650.exec(input0);', 'results');
+
+var regex651 = /(?=(\w+))\1:/;
+var input0 = "abcd:";
+var results = ["abcd:", "abcd"];
+shouldBe('regex651.exec(input0);', 'results');
+
+var regex652 = /^(?=(\w+))\1:/;
+var input0 = "abcd:";
+var results = ["abcd:", "abcd"];
+shouldBe('regex652.exec(input0);', 'results');
+
+var regex660 = /^(a()*)*/;
+var input0 = "aaaa";
+var results = ["aaaa", "a", undefined];
+shouldBe('regex660.exec(input0);', 'results');
+
+var regex661 = /^(?:a(?:(?:))*)*/;
+var input0 = "aaaa";
+var results = ["aaaa"];
+shouldBe('regex661.exec(input0);', 'results');
+
+var regex662 = /^(a()+)+/;
+var input0 = "aaaa";
+var results = ["aaaa", "a", ""];
+shouldBe('regex662.exec(input0);', 'results');
+
+var regex663 = /^(?:a(?:(?:))+)+/;
+var input0 = "aaaa";
+var results = ["aaaa"];
+shouldBe('regex663.exec(input0);', 'results');
+
+var regex664 = /(a){0,3}(?:b|(c|))*D/;
+var input0 = "abbD";
+var results = ["abbD", "a", undefined];
+shouldBe('regex664.exec(input0);', 'results');
+var input1 = "ccccD";
+var results = ["ccccD", undefined, "c"];
+shouldBe('regex664.exec(input1);', 'results');
+var input2 = "D";
+var results = ["D", undefined, undefined];
+shouldBe('regex664.exec(input2);', 'results');
+
+var regex665 = /(a|)*\d/;
+var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex665.exec(input0);', 'results');
+var input1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4";
+var results = ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4", "a"];
+shouldBe('regex665.exec(input1);', 'results');
+
+var regex667 = /(?:a|)*\d/;
+var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+var results = null;
+shouldBe('regex667.exec(input0);', 'results');
+var input1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4";
+var results = ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"];
+shouldBe('regex667.exec(input1);', 'results');
+
+var regex669 = /^(?![^\n]*\n$)/;
+var input0 = "abc";
+var results = [""];
+shouldBe('regex669.exec(input0);', 'results');
+var input1 = "abc\n";
+var results = null;
+shouldBe('regex669.exec(input1);', 'results');
+
+var regex671 = /(.*(.)?)*/;
+var input0 = "abcd";
+var results = ["abcd", "abcd", undefined];
+shouldBe('regex671.exec(input0);', 'results');
+
+var regex672 = /[[:abcd:xyz]]/;
+var input0 = "a]";
+var results = ["a]"];
+shouldBe('regex672.exec(input0);', 'results');
+var input1 = ":]";
+var results = [":]"];
+shouldBe('regex672.exec(input1);', 'results');
+
+var regex673 = /[abc[:x\]pqr]/;
+var input0 = "a";
+var results = ["a"];
+shouldBe('regex673.exec(input0);', 'results');
+var input1 = "[";
+var results = ["["];
+shouldBe('regex673.exec(input1);', 'results');
+var input2 = ":";
+var results = [":"];
+shouldBe('regex673.exec(input2);', 'results');
+var input3 = "]";
+var results = ["]"];
+shouldBe('regex673.exec(input3);', 'results');
+var input4 = "p";
+var results = ["p"];
+shouldBe('regex673.exec(input4);', 'results');
+
+// Global matches.
+
+var regexGlobal0 = RegExp("", "g");
+var input0 = "abc";
+var results = [ "", "", "", "" ];
+shouldBe('input0.match(regexGlobal0);', 'results');
+
+var regexGlobal1 = /a*/g;
+var input0 = "abbab";
+var results = [ "a", "", "", "a", "", "" ];
+shouldBe('input0.match(regexGlobal1);', 'results');
+
+var regexGlobal2 = /\babc./g;
+var input0 = "abc:abc;xyzabc.";
+var results = [ "abc:", "abc;" ];
+shouldBe('input0.match(regexGlobal2);', 'results');
+
+var regexGlobal3 = /abc./g;
+var input0 = "abc:abc;xyzabc.";
+var results = [ "abc:", "abc;", "abc." ];
+shouldBe('input0.match(regexGlobal3);', 'results');
+
+var regexGlobal4 = /$/g;
+var input0 = "abc\n";
+var results = [ "" ];
+shouldBe('input0.match(regexGlobal4);', 'results');
+
+var regexGlobal5 = /$/gm;
+var input0 = "abc\n";
+var results = [ "", "" ];
+shouldBe('input0.match(regexGlobal5);', 'results');
+
+var regexGlobal6 = /^/g;
+var input0 = "a\nb\nc\n";
+var results = [ "" ];
+shouldBe('input0.match(regexGlobal6);', 'results');
+var input1 = "\\";
+var results = [ "" ];
+shouldBe('input1.match(regexGlobal6);', 'results');
+
+var regexGlobal7 = /^/gm;
+var input0 = "a\nb\nc\n";
+var results = [ "", "", "", "" ];
+shouldBe('input0.match(regexGlobal7);', 'results');
+var input1 = "\\";
+var results = [ "" ];
+shouldBe('input1.match(regexGlobal7);', 'results');
+
+var regexGlobal8 = /^(?=C)/g;
+// Failers
+var input0 = "A\nC\nC\nE\n";
+var results = null;
+shouldBe('input0.match(regexGlobal8);', 'results');
+
+var regexGlobal9 = /^(?=C)/gm;
+var input0 = "A\nC\nC\nE\n";
+var results = [ "", "" ];
+shouldBe('input0.match(regexGlobal9);', 'results');
+
+// DISABLED:
+// These tests use (?<) or (?>) constructs. These are not currently valid in ECMAScript,
+// but these tests may be useful if similar constructs are introduced in the future.
+
+//var regex217 = /(?<!bar)foo/;
+//var input0 = "foo";
+//var results = ["foo"];
+//shouldBe('regex217.exec(input0);', 'results');
+//var input1 = "catfood";
+//var results = ["foo"];
+//shouldBe('regex217.exec(input1);', 'results');
+//var input2 = "arfootle";
+//var results = ["foo"];
+//shouldBe('regex217.exec(input2);', 'results');
+//var input3 = "rfoosh";
+//var results = ["foo"];
+//shouldBe('regex217.exec(input3);', 'results');
+//// Failers
+//var input4 = "barfoo";
+//var results = null;
+//shouldBe('regex217.exec(input4);', 'results');
+//var input5 = "towbarfoo";
+//var results = null;
+//shouldBe('regex217.exec(input5);', 'results');
+//
+//var regex218 = /\w{3}(?<!bar)foo/;
+//var input0 = "catfood";
+//var results = ["catfoo"];
+//shouldBe('regex218.exec(input0);', 'results');
+//// Failers
+//var input1 = "foo";
+//var results = null;
+//shouldBe('regex218.exec(input1);', 'results');
+//var input2 = "barfoo";
+//var results = null;
+//shouldBe('regex218.exec(input2);', 'results');
+//var input3 = "towbarfoo";
+//var results = null;
+//shouldBe('regex218.exec(input3);', 'results');
+//
+//var regex219 = /(?<=(foo)a)bar/;
+//var input0 = "fooabar";
+//var results = ["bar", "foo"];
+//shouldBe('regex219.exec(input0);', 'results');
+//// Failers
+//var input1 = "bar";
+//var results = null;
+//shouldBe('regex219.exec(input1);', 'results');
+//var input2 = "foobbar";
+//var results = null;
+//shouldBe('regex219.exec(input2);', 'results');
+//
+//var regex221 = /(?>.*\/)foo/;
+//var input0 = "/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/";
+//var results = null;
+//shouldBe('regex221.exec(input0);', 'results');
+//
+//var regex222 = /(?>.*\/)foo/;
+//var input0 = "/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo";
+//var results = ["/this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo"];
+//shouldBe('regex222.exec(input0);', 'results');
+//
+//var regex223 = /(?>(\.\d\d[1-9]?))\d+/;
+//var input0 = "1.230003938";
+//var results = [".230003938", ".23"];
+//shouldBe('regex223.exec(input0);', 'results');
+//var input1 = "1.875000282";
+//var results = [".875000282", ".875"];
+//shouldBe('regex223.exec(input1);', 'results');
+//// Failers
+//var input2 = "1.235";
+//var results = null;
+//shouldBe('regex223.exec(input2);', 'results');
+//
+//var regex224 = /^((?>\w+)|(?>\s+))*$/;
+//var input0 = "now is the time for all good men to come to the aid of the party";
+//var results = ["now is the time for all good men to come to the aid of the party", "party"];
+//shouldBe('regex224.exec(input0);', 'results');
+//// Failers
+//var input1 = "this is not a line with only words and spaces!";
+//var results = null;
+//shouldBe('regex224.exec(input1);', 'results');
+//
+//var regex226 = /((?>\d+))(\w)/;
+//var input0 = "12345a";
+//var results = ["12345a", "12345", "a"];
+//shouldBe('regex226.exec(input0);', 'results');
+//// Failers
+//var input1 = "12345+";
+//var results = null;
+//shouldBe('regex226.exec(input1);', 'results');
+//
+//var regex227 = /(?>a+)b/;
+//var input0 = "aaab";
+//var results = ["aaab"];
+//shouldBe('regex227.exec(input0);', 'results');
+//
+//var regex228 = /((?>a+)b)/;
+//var input0 = "aaab";
+//var results = ["aaab", "aaab"];
+//shouldBe('regex228.exec(input0);', 'results');
+//
+//var regex229 = /(?>(a+))b/;
+//var input0 = "aaab";
+//var results = ["aaab", "aaa"];
+//shouldBe('regex229.exec(input0);', 'results');
+//
+//var regex230 = /(?>b)+/;
+//var input0 = "aaabbbccc";
+//var results = ["bbb"];
+//shouldBe('regex230.exec(input0);', 'results');
+//
+//var regex231 = /(?>a+|b+|c+)*c/;
+//var input0 = "aaabbbbccccd";
+//var results = ["aaabbbbc"];
+//shouldBe('regex231.exec(input0);', 'results');
+//
+//var regex232 = /((?>[^()]+)|\([^()]*\))+/;
+//var input0 = "((abc(ade)ufh()()x";
+//var results = ["abc(ade)ufh()()x", "x"];
+//shouldBe('regex232.exec(input0);', 'results');
+//
+//var regex233 = /\(((?>[^()]+)|\([^()]+\))+\)/ ;
+//var input0 = "(abc)";
+//var results = ["(abc)", "abc"];
+//shouldBe('regex233.exec(input0);', 'results');
+//var input1 = "(abc(def)xyz)";
+//var results = ["(abc(def)xyz)", "xyz"];
+//shouldBe('regex233.exec(input1);', 'results');
+//// Failers
+//var input2 = "((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+//var results = null;
+//shouldBe('regex233.exec(input2);', 'results');
+//
+//var regex245 = /(?<=ab)(\w\w)c/;
+//var input0 = "abxxc";
+//var results = ["xxc", "xx"];
+//shouldBe('regex245.exec(input0);', 'results');
+//var input1 = "aBxxc";
+//var results = ["xxc", "xx"];
+//shouldBe('regex245.exec(input1);', 'results');
+//// Failers
+//var input2 = "Abxxc";
+//var results = null;
+//shouldBe('regex245.exec(input2);', 'results');
+//var input3 = "ABxxc";
+//var results = null;
+//shouldBe('regex245.exec(input3);', 'results');
+//var input4 = "abxxC";
+//var results = null;
+//shouldBe('regex245.exec(input4);', 'results');
+//
+//var regex250 = /(?(?<=foo)bar|cat)/;
+//var input0 = "foobar";
+//var results = ["bar"];
+//shouldBe('regex250.exec(input0);', 'results');
+//var input1 = "cat";
+//var results = ["cat"];
+//shouldBe('regex250.exec(input1);', 'results');
+//var input2 = "fcat";
+//var results = ["cat"];
+//shouldBe('regex250.exec(input2);', 'results');
+//var input3 = "focat";
+//var results = ["cat"];
+//shouldBe('regex250.exec(input3);', 'results');
+//// Failers
+//var input4 = "foocat";
+//var results = null;
+//shouldBe('regex250.exec(input4);', 'results');
+//
+//var regex251 = /(?(?<!foo)cat|bar)/;
+//var input0 = "foobar";
+//var results = ["bar"];
+//shouldBe('regex251.exec(input0);', 'results');
+//var input1 = "cat";
+//var results = ["cat"];
+//shouldBe('regex251.exec(input1);', 'results');
+//var input2 = "fcat";
+//var results = ["cat"];
+//shouldBe('regex251.exec(input2);', 'results');
+//var input3 = "focat";
+//var results = ["cat"];
+//shouldBe('regex251.exec(input3);', 'results');
+//// Failers
+//var input4 = "foocat";
+//var results = null;
+//shouldBe('regex251.exec(input4);', 'results');
+//
+//var regex256 = /(?>a*)*/;
+//var input0 = "a";
+//var results = ["a"];
+//shouldBe('regex256.exec(input0);', 'results');
+//var input1 = "aa";
+//var results = ["aa"];
+//shouldBe('regex256.exec(input1);', 'results');
+//var input2 = "aaaa";
+//var results = ["aaaa"];
+//shouldBe('regex256.exec(input2);', 'results');
+//
+//var regex266 = /(?>a*)*/;
+//var input0 = "a";
+//var results = ["a"];
+//shouldBe('regex266.exec(input0);', 'results');
+//var input1 = "aaabcde";
+//var results = ["aaa"];
+//shouldBe('regex266.exec(input1);', 'results');
+//
+//var regex267 = /((?>a*))*/;
+//var input0 = "aaaaa";
+//var results = ["aaaaa", ""];
+//shouldBe('regex267.exec(input0);', 'results');
+//var input1 = "aabbaa";
+//var results = ["aa", ""];
+//shouldBe('regex267.exec(input1);', 'results');
+//
+//var regex268 = /((?>a*?))*/;
+//var input0 = "aaaaa";
+//var results = ["", ""];
+//shouldBe('regex268.exec(input0);', 'results');
+//var input1 = "aabbaa";
+//var results = ["", ""];
+//shouldBe('regex268.exec(input1);', 'results');
+//
+//var regex270 = /(?<=(foo))bar\1/;
+//var input0 = "foobarfoo";
+//var results = ["barfoo", "foo"];
+//shouldBe('regex270.exec(input0);', 'results');
+//var input1 = "foobarfootling";
+//var results = ["barfoo", "foo"];
+//shouldBe('regex270.exec(input1);', 'results');
+//// Failers
+//var input2 = "foobar";
+//var results = null;
+//shouldBe('regex270.exec(input2);', 'results');
+//var input3 = "barfoo";
+//var results = null;
+//shouldBe('regex270.exec(input3);', 'results');
+//
+//var regex275 = /(?<=foo\n)^bar/m;
+//var input0 = "foo\nbar";
+//var results = ["bar"];
+//shouldBe('regex275.exec(input0);', 'results');
+//// Failers
+//var input1 = "bar";
+//var results = null;
+//shouldBe('regex275.exec(input1);', 'results');
+//var input2 = "baz\nbar";
+//var results = null;
+//shouldBe('regex275.exec(input2);', 'results');
+//
+//var regex276 = /(?<=(?<!foo)bar)baz/;
+//var input0 = "barbaz";
+//var results = ["baz"];
+//shouldBe('regex276.exec(input0);', 'results');
+//var input1 = "barbarbaz";
+//var results = ["baz"];
+//shouldBe('regex276.exec(input1);', 'results');
+//var input2 = "koobarbaz";
+//var results = ["baz"];
+//shouldBe('regex276.exec(input2);', 'results');
+//// Failers
+//var input3 = "baz";
+//var results = null;
+//shouldBe('regex276.exec(input3);', 'results');
+//var input4 = "foobarbaz";
+//var results = null;
+//shouldBe('regex276.exec(input4);', 'results');
+//
+//var regex501 = /(?<=a)b/;
+//var input0 = "ab";
+//var results = ["b"];
+//shouldBe('regex501.exec(input0);', 'results');
+//// Failers
+//var input1 = "cb";
+//var results = null;
+//shouldBe('regex501.exec(input1);', 'results');
+//var input2 = "b";
+//var results = null;
+//shouldBe('regex501.exec(input2);', 'results');
+//
+//var regex502 = /(?<!c)b/;
+//var input0 = "ab";
+//var results = ["b"];
+//shouldBe('regex502.exec(input0);', 'results');
+//var input1 = "b";
+//var results = ["b"];
+//shouldBe('regex502.exec(input1);', 'results');
+//var input2 = "b";
+//var results = ["b"];
+//shouldBe('regex502.exec(input2);', 'results');
+//
+//var regex546 = /(?<![cd])b/;
+//// Failers
+//var input0 = "B\nB";
+//var results = null;
+//shouldBe('regex546.exec(input0);', 'results');
+//var input1 = "dbcb";
+//var results = null;
+//shouldBe('regex546.exec(input1);', 'results');
+//
+//var regex547 = /(?<![cd])[ab]/;
+//var input0 = "dbaacb";
+//var results = ["a"];
+//shouldBe('regex547.exec(input0);', 'results');
+//
+//var regex548 = /(?<!(c|d))[ab]/;
+//var input0 = "dbaacb";
+//var results = ["a"];
+//shouldBe('regex548.exec(input0);', 'results');
+//
+//var regex549 = /(?<!cd)[ab]/;
+//var input0 = "cdaccb";
+//var results = ["b"];
+//shouldBe('regex549.exec(input0);', 'results');
+//
+//var regex573 = /$(?<=^(a))/;
+//var input0 = "a";
+//var results = ["", "a"];
+//shouldBe('regex573.exec(input0);', 'results');
+//
+//var regex581 = /(?>a+)b/;
+//var input0 = "aaab";
+//var results = ["aaab"];
+//shouldBe('regex581.exec(input0);', 'results');
+//
+//var regex585 = /((?>a+)b)/;
+//var input0 = "aaab";
+//var results = ["aaab", "aaab"];
+//shouldBe('regex585.exec(input0);', 'results');
+//
+//var regex586 = /(?>(a+))b/;
+//var input0 = "aaab";
+//var results = ["aaab", "aaa"];
+//shouldBe('regex586.exec(input0);', 'results');
+//
+//var regex587 = /((?>[^()]+)|\([^()]*\))+/;
+//var input0 = "((abc(ade)ufh()()x";
+//var results = ["abc(ade)ufh()()x", "x"];
+//shouldBe('regex587.exec(input0);', 'results');
+//
+//var regex592 = /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/;
+//var input0 = "a";
+//var results = ["a", ""];
+//shouldBe('regex592.exec(input0);', 'results');
+//var input1 = "abc";
+//var results = ["abc", ""];
+//shouldBe('regex592.exec(input1);', 'results');
+//var input2 = "a-b";
+//var results = ["a-b", ""];
+//shouldBe('regex592.exec(input2);', 'results');
+//var input3 = "0-9";
+//var results = ["0-9", ""];
+//shouldBe('regex592.exec(input3);', 'results');
+//var input4 = "a.b";
+//var results = ["a.b", ""];
+//shouldBe('regex592.exec(input4);', 'results');
+//var input5 = "5.6.7";
+//var results = ["5.6.7", ""];
+//shouldBe('regex592.exec(input5);', 'results');
+//var input6 = "the.quick.brown.fox";
+//var results = ["the.quick.brown.fox", ""];
+//shouldBe('regex592.exec(input6);', 'results');
+//var input7 = "a100.b200.300c";
+//var results = ["a100.b200.300c", ""];
+//shouldBe('regex592.exec(input7);', 'results');
+//var input8 = "12-ab.1245";
+//var results = ["12-ab.1245", ""];
+//shouldBe('regex592.exec(input8);', 'results');
+//// Failers
+//var input9 = "\";
+//var results = null;
+//shouldBe('regex592.exec(input9);', 'results');
+//var input10 = ".a";
+//var results = null;
+//shouldBe('regex592.exec(input10);', 'results');
+//var input11 = "-a";
+//var results = null;
+//shouldBe('regex592.exec(input11);', 'results');
+//var input12 = "a-";
+//var results = null;
+//shouldBe('regex592.exec(input12);', 'results');
+//var input13 = "a.";
+//var results = null;
+//shouldBe('regex592.exec(input13);', 'results');
+//var input14 = "a_b";
+//var results = null;
+//shouldBe('regex592.exec(input14);', 'results');
+//var input15 = "a.-";
+//var results = null;
+//shouldBe('regex592.exec(input15);', 'results');
+//var input16 = "a..";
+//var results = null;
+//shouldBe('regex592.exec(input16);', 'results');
+//var input17 = "ab..bc";
+//var results = null;
+//shouldBe('regex592.exec(input17);', 'results');
+//var input18 = "the.quick.brown.fox-";
+//var results = null;
+//shouldBe('regex592.exec(input18);', 'results');
+//var input19 = "the.quick.brown.fox.";
+//var results = null;
+//shouldBe('regex592.exec(input19);', 'results');
+//var input20 = "the.quick.brown.fox_";
+//var results = null;
+//shouldBe('regex592.exec(input20);', 'results');
+//var input21 = "the.quick.brown.fox+";
+//var results = null;
+//shouldBe('regex592.exec(input21);', 'results');
+//
+//var regex593 = /(?>.*)(?<=(abcd|wxyz))/;
+//var input0 = "alphabetabcd";
+//var results = ["alphabetabcd", "abcd"];
+//shouldBe('regex593.exec(input0);', 'results');
+//var input1 = "endingwxyz";
+//var results = ["endingwxyz", "wxyz"];
+//shouldBe('regex593.exec(input1);', 'results');
+//// Failers
+//var input2 = "a rather long string that doesn't end with one of them";
+//var results = null;
+//shouldBe('regex593.exec(input2);', 'results');
+//
+//var regex594 = /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/;
+//var input0 = "word cat dog elephant mussel cow horse canary baboon snake shark otherword";
+//var results = ["word cat dog elephant mussel cow horse canary baboon snake shark otherword"];
+//shouldBe('regex594.exec(input0);', 'results');
+//var input1 = "word cat dog elephant mussel cow horse canary baboon snake shark";
+//var results = null;
+//shouldBe('regex594.exec(input1);', 'results');
+//
+//var regex595 = /word (?>[a-zA-Z0-9]+ ){0,30}otherword/;
+//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";
+//var results = null;
+//shouldBe('regex595.exec(input0);', 'results');
+//
+//var regex596 = /(?<=\d{3}(?!999))foo/;
+//var input0 = "999foo";
+//var results = ["foo"];
+//shouldBe('regex596.exec(input0);', 'results');
+//var input1 = "123999foo";
+//var results = ["foo"];
+//shouldBe('regex596.exec(input1);', 'results');
+//// Failers
+//var input2 = "123abcfoo";
+//var results = null;
+//shouldBe('regex596.exec(input2);', 'results');
+//
+//var regex597 = /(?<=(?!...999)\d{3})foo/;
+//var input0 = "999foo";
+//var results = ["foo"];
+//shouldBe('regex597.exec(input0);', 'results');
+//var input1 = "123999foo";
+//var results = ["foo"];
+//shouldBe('regex597.exec(input1);', 'results');
+//// Failers
+//var input2 = "123abcfoo";
+//var results = null;
+//shouldBe('regex597.exec(input2);', 'results');
+//
+//var regex598 = /(?<=\d{3}(?!999)...)foo/;
+//var input0 = "123abcfoo";
+//var results = ["foo"];
+//shouldBe('regex598.exec(input0);', 'results');
+//var input1 = "123456foo";
+//var results = ["foo"];
+//shouldBe('regex598.exec(input1);', 'results');
+//// Failers
+//var input2 = "123999foo";
+//var results = null;
+//shouldBe('regex598.exec(input2);', 'results');
+//
+//var regex599 = /(?<=\d{3}...)(?<!999)foo/;
+//var input0 = "123abcfoo";
+//var results = ["foo"];
+//shouldBe('regex599.exec(input0);', 'results');
+//var input1 = "123456foo";
+//var results = ["foo"];
+//shouldBe('regex599.exec(input1);', 'results');
+//// Failers
+//var input2 = "123999foo";
+//var results = null;
+//shouldBe('regex599.exec(input2);', 'results');
+//
+//var regex602 = /<a\s+href(?>\s*)=(?>\s*)(["'])?(?(1) (.*?)\1 | (\S+))/i;
+//var input0 = "<a href=abcd xyz";
+//var results = ["<a href=abcd", undefined, undefined, "abcd"];
+//shouldBe('regex602.exec(input0);', 'results');
+//var input1 = "<a href=\"abcd xyz pqr\" cats";
+//var results = ["<a href=\"abcd xyz pqr\"", "\"", "abcd xyz pqr"];
+//shouldBe('regex602.exec(input1);', 'results');
+//var input2 = "<a href = \'abcd xyz pqr\' cats";
+//var results = ["<a href = \'abcd xyz pqr\'", "\'", "abcd xyz pqr"];
+//shouldBe('regex602.exec(input2);', 'results');
+//
+//var regex606 = /((?>Z)+|A)*/;
+//var input0 = "ZABCDEFG";
+//var results = ["ZA", "A"];
+//shouldBe('regex606.exec(input0);', 'results');
+//
+//var regex607 = /((?>)+|A)*/;
+//var input0 = "ZABCDEFG";
+//var results = ["", ""];
+//shouldBe('regex607.exec(input0);', 'results');
+//
+//var regex635 = /(?<=Z)X./;
+//var input0 = "\x84XAZXB";
+//var results = ["XB"];
+//shouldBe('regex635.exec(input0);', 'results');
+//
+//var regex638 = /(?<![^f]oo)(bar)/;
+//var input0 = "foobarX";
+//var results = ["bar", "bar"];
+//shouldBe('regex638.exec(input0);', 'results');
+//// Failers
+//var input1 = "boobarX";
+//var results = null;
+//shouldBe('regex638.exec(input1);', 'results');
+//
+//var regex639 = /(?<![^f])X/;
+//var input0 = "offX";
+//var results = ["X"];
+//shouldBe('regex639.exec(input0);', 'results');
+//// Failers
+//var input1 = "onyX";
+//var results = null;
+//shouldBe('regex639.exec(input1);', 'results');
+//
+//var regex640 = /(?<=[^f])X/;
+//var input0 = "onyX";
+//var results = ["X"];
+//shouldBe('regex640.exec(input0);', 'results');
+//// Failers
+//var input1 = "offX";
+//var results = null;
+//shouldBe('regex640.exec(input1);', 'results');
+//
+//var regex666 = /(?>a|)*\d/;
+//var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+//var results = null;
+//shouldBe('regex666.exec(input0);', 'results');
+//var input1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4";
+//var results = ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4"];
+//shouldBe('regex666.exec(input1);', 'results');
+//
+//var regex668 = /^(?>.*)(?<!\n)/;
+//var input0 = "abc";
+//var results = ["abc"];
+//shouldBe('regex668.exec(input0);', 'results');
+//var input1 = "abc\n";
+//var results = null;
+//shouldBe('regex668.exec(input1);', 'results');
+//
+//var regex670 = /\z(?<!\n)/;
+//var input0 = "abc";
+//var results = [""];
+//shouldBe('regex670.exec(input0);', 'results');
+//var input1 = "abc\n";
+//var results = null;
+//shouldBe('regex670.exec(input1);', 'results');
+
+// DISABLED:
+// These tests use \Q and \E tokens. These are not currently valid in ECMAScript,
+// but these tests may be useful if similar constructs are introduced in the future.
+
+//var regex617 = /abc\Qabc\Eabc/;
+//var input0 = "abcabcabc";
+//var results = ["abcabcabc"];
+//shouldBe('regex617.exec(input0);', 'results');
+//
+//var regex618 = /abc\Q(*+|\Eabc/;
+//var input0 = "abc(*+|abc";
+//var results = ["abc(*+|abc"];
+//shouldBe('regex618.exec(input0);', 'results');
+//
+//var regex619 = /\Qabc\$xyz\E/;
+//var input0 = "abc\\\$xyz";
+//var results = ["abc\\$xyz"];
+//shouldBe('regex619.exec(input0);', 'results');
+//
+//var regex620 = /\Qabc\E\$\Qxyz\E/;
+//var input0 = "abc\$xyz";
+//var results = ["abc$xyz"];
+//shouldBe('regex620.exec(input0);', 'results');
+//
+//var regex629 = /[z\Qa-d]\E]/;
+//var input0 = "z";
+//var results = ["z"];
+//shouldBe('regex629.exec(input0);', 'results');
+//var input1 = "a";
+//var results = ["a"];
+//shouldBe('regex629.exec(input1);', 'results');
+//var input2 = "-";
+//var results = ["-"];
+//shouldBe('regex629.exec(input2);', 'results');
+//var input3 = "d";
+//var results = ["d"];
+//shouldBe('regex629.exec(input3);', 'results');
+//var input4 = "]";
+//var results = ["]"];
+//shouldBe('regex629.exec(input4);', 'results');
+//// Failers
+//var input5 = "b";
+//var results = null;
+//shouldBe('regex629.exec(input5);', 'results');
+//
+//var regex653 = /^\Eabc/;
+//var input0 = "abc";
+//var results = ["abc"];
+//shouldBe('regex653.exec(input0);', 'results');
+//
+//var regex654 = /^[\Eabc]/;
+//var input0 = "a";
+//var results = ["a"];
+//shouldBe('regex654.exec(input0);', 'results');
+//// Failers
+//var input1 = "E";
+//var results = null;
+//shouldBe('regex654.exec(input1);', 'results');
+//
+//var regex655 = /^[a-\Ec]/;
+//var input0 = "b";
+//var results = ["b"];
+//shouldBe('regex655.exec(input0);', 'results');
+//// Failers
+//var input1 = "-";
+//var results = null;
+//shouldBe('regex655.exec(input1);', 'results');
+//var input2 = "E";
+//var results = null;
+//shouldBe('regex655.exec(input2);', 'results');
+//
+//var regex656 = /^[a\E\E-\Ec]/;
+//var input0 = "b";
+//var results = ["b"];
+//shouldBe('regex656.exec(input0);', 'results');
+//// Failers
+//var input1 = "-";
+//var results = null;
+//shouldBe('regex656.exec(input1);', 'results');
+//var input2 = "E";
+//var results = null;
+//shouldBe('regex656.exec(input2);', 'results');
+//
+//var regex657 = /^[\E\Qa\E-\Qz\E]+/;
+//var input0 = "b";
+//var results = ["b"];
+//shouldBe('regex657.exec(input0);', 'results');
+//// Failers
+//var input1 = "-";
+//var results = null;
+//shouldBe('regex657.exec(input1);', 'results');
+//
+//var regex658 = /^[a\Q]bc\E]/;
+//var input0 = "a";
+//var results = ["a"];
+//shouldBe('regex658.exec(input0);', 'results');
+//var input1 = "]";
+//var results = ["]"];
+//shouldBe('regex658.exec(input1);', 'results');
+//var input2 = "c";
+//var results = ["c"];
+//shouldBe('regex658.exec(input2);', 'results');
+//
+//var regex659 = /^[a-\Q\E]/;
+//var input0 = "a";
+//var results = ["a"];
+//shouldBe('regex659.exec(input0);', 'results');
+//var input1 = "-";
+//var results = ["-"];
+//shouldBe('regex659.exec(input1);', 'results');
+
+// DISABLED:
+// These tests use \A and \z tokens. These are not currently valid in ECMAScript,
+// but these tests may be useful if similar constructs are introduced in the future.
+
+//var regex591 = /b\z/;
+//var input0 = "a\nb";
+//var results = ["b"];
+//shouldBe('regex591.exec(input0);', 'results');
+//
+//var regex615 = /(?!\A)x/m;
+//var input0 = "a\nxb\n";
+//var results = ["x"];
+//shouldBe('regex615.exec(input0);', 'results');
+
+var successfullyParsed = true;
\ No newline at end of file
diff --git a/LayoutTests/fast/regex/script-tests/pcre-test-4.js b/LayoutTests/fast/regex/script-tests/pcre-test-4.js
new file mode 100644
index 0000000..da2daa6
--- /dev/null
+++ b/LayoutTests/fast/regex/script-tests/pcre-test-4.js
@@ -0,0 +1,1148 @@
+description(
+"A chunk of our port of PCRE's test suite, adapted to be more applicable to JavaScript."
+);
+
+var regex0 = /a.b/;
+var input0 = "acb";
+var results = ["acb"];
+shouldBe('regex0.exec(input0);', 'results');
+var input1 = "a\x7fb";
+var results = ["a\u007fb"];
+shouldBe('regex0.exec(input1);', 'results');
+var input2 = "a\u0100b";
+var results = ["a\u0100b"];
+shouldBe('regex0.exec(input2);', 'results');
+// Failers
+var input3 = "a\nb";
+var results = null;
+shouldBe('regex0.exec(input3);', 'results');
+
+var regex1 = /a(.{3})b/;
+var input0 = "a\u4000xyb";
+var results = ["a\u4000xyb", "\u4000xy"];
+shouldBe('regex1.exec(input0);', 'results');
+var input1 = "a\u4000\x7fyb";
+var results = ["a\u4000\u007fyb", "\u4000\u007fy"];
+shouldBe('regex1.exec(input1);', 'results');
+var input2 = "a\u4000\u0100yb";
+var results = ["a\u4000\u0100yb", "\u4000\u0100y"];
+shouldBe('regex1.exec(input2);', 'results');
+// Failers
+var input3 = "a\u4000b";
+var results = null;
+shouldBe('regex1.exec(input3);', 'results');
+var input4 = "ac\ncb";
+var results = null;
+shouldBe('regex1.exec(input4);', 'results');
+
+var regex2 = /a(.*?)(.)/;
+var input0 = "a\xc0\x88b";
+var results = ["a\xc0", "", "\xc0"];
+shouldBe('regex2.exec(input0);', 'results');
+
+var regex3 = /a(.*?)(.)/;
+var input0 = "a\u0100b";
+var results = ["a\u0100", "", "\u0100"];
+shouldBe('regex3.exec(input0);', 'results');
+
+var regex4 = /a(.*)(.)/;
+var input0 = "a\xc0\x88b";
+var results = ["a\xc0\x88b", "\xc0\x88", "b"];
+shouldBe('regex4.exec(input0);', 'results');
+
+var regex5 = /a(.*)(.)/;
+var input0 = "a\u0100b";
+var results = ["a\u0100b", "\u0100", "b"];
+shouldBe('regex5.exec(input0);', 'results');
+
+var regex6 = /a(.)(.)/;
+var input0 = "a\xc0\x92bcd";
+var results = ["a\xc0\x92", "\xc0", "\x92"];
+shouldBe('regex6.exec(input0);', 'results');
+
+var regex7 = /a(.)(.)/;
+var input0 = "a\u0240bcd";
+var results = ["a\u0240b", "\u0240", "b"];
+shouldBe('regex7.exec(input0);', 'results');
+
+var regex8 = /a(.?)(.)/;
+var input0 = "a\xc0\x92bcd";
+var results = ["a\xc0\x92", "\xc0", "\x92"];
+shouldBe('regex8.exec(input0);', 'results');
+
+var regex9 = /a(.?)(.)/;
+var input0 = "a\u0240bcd";
+var results = ["a\u0240b", "\u0240", "b"];
+shouldBe('regex9.exec(input0);', 'results');
+
+var regex10 = /a(.??)(.)/;
+var input0 = "a\xc0\x92bcd";
+var results = ["a\xc0", "", "\xc0"];
+shouldBe('regex10.exec(input0);', 'results');
+
+var regex11 = /a(.??)(.)/;
+var input0 = "a\u0240bcd";
+var results = ["a\u0240", "", "\u0240"];
+shouldBe('regex11.exec(input0);', 'results');
+
+var regex12 = /a(.{3})b/;
+var input0 = "a\u1234xyb";
+var results = ["a\u1234xyb", "\u1234xy"];
+shouldBe('regex12.exec(input0);', 'results');
+var input1 = "a\u1234\u4321yb";
+var results = ["a\u1234\u4321yb", "\u1234\u4321y"];
+shouldBe('regex12.exec(input1);', 'results');
+var input2 = "a\u1234\u4321\u3412b";
+var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"];
+shouldBe('regex12.exec(input2);', 'results');
+// Failers
+var input3 = "a\u1234b";
+var results = null;
+shouldBe('regex12.exec(input3);', 'results');
+var input4 = "ac\ncb";
+var results = null;
+shouldBe('regex12.exec(input4);', 'results');
+
+var regex13 = /a(.{3,})b/;
+var input0 = "a\u1234xyb";
+var results = ["a\u1234xyb", "\u1234xy"];
+shouldBe('regex13.exec(input0);', 'results');
+var input1 = "a\u1234\u4321yb";
+var results = ["a\u1234\u4321yb", "\u1234\u4321y"];
+shouldBe('regex13.exec(input1);', 'results');
+var input2 = "a\u1234\u4321\u3412b";
+var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"];
+shouldBe('regex13.exec(input2);', 'results');
+var input3 = "axxxxbcdefghijb";
+var results = ["axxxxbcdefghijb", "xxxxbcdefghij"];
+shouldBe('regex13.exec(input3);', 'results');
+var input4 = "a\u1234\u4321\u3412\u3421b";
+var results = ["a\u1234\u4321\u3412\u3421b", "\u1234\u4321\u3412\u3421"];
+shouldBe('regex13.exec(input4);', 'results');
+// Failers
+var input5 = "a\u1234b";
+var results = null;
+shouldBe('regex13.exec(input5);', 'results');
+
+var regex14 = /a(.{3,}?)b/;
+var input0 = "a\u1234xyb";
+var results = ["a\u1234xyb", "\u1234xy"];
+shouldBe('regex14.exec(input0);', 'results');
+var input1 = "a\u1234\u4321yb";
+var results = ["a\u1234\u4321yb", "\u1234\u4321y"];
+shouldBe('regex14.exec(input1);', 'results');
+var input2 = "a\u1234\u4321\u3412b";
+var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"];
+shouldBe('regex14.exec(input2);', 'results');
+var input3 = "axxxxbcdefghijb";
+var results = ["axxxxb", "xxxx"];
+shouldBe('regex14.exec(input3);', 'results');
+var input4 = "a\u1234\u4321\u3412\u3421b";
+var results = ["a\u1234\u4321\u3412\u3421b", "\u1234\u4321\u3412\u3421"];
+shouldBe('regex14.exec(input4);', 'results');
+// Failers
+var input5 = "a\u1234b";
+var results = null;
+shouldBe('regex14.exec(input5);', 'results');
+
+var regex15 = /a(.{3,5})b/;
+var input0 = "a\u1234xyb";
+var results = ["a\u1234xyb", "\u1234xy"];
+shouldBe('regex15.exec(input0);', 'results');
+var input1 = "a\u1234\u4321yb";
+var results = ["a\u1234\u4321yb", "\u1234\u4321y"];
+shouldBe('regex15.exec(input1);', 'results');
+var input2 = "a\u1234\u4321\u3412b";
+var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"];
+shouldBe('regex15.exec(input2);', 'results');
+var input3 = "axxxxbcdefghijb";
+var results = ["axxxxb", "xxxx"];
+shouldBe('regex15.exec(input3);', 'results');
+var input4 = "a\u1234\u4321\u3412\u3421b";
+var results = ["a\u1234\u4321\u3412\u3421b", "\u1234\u4321\u3412\u3421"];
+shouldBe('regex15.exec(input4);', 'results');
+var input5 = "axbxxbcdefghijb";
+var results = ["axbxxb", "xbxx"];
+shouldBe('regex15.exec(input5);', 'results');
+var input6 = "axxxxxbcdefghijb";
+var results = ["axxxxxb", "xxxxx"];
+shouldBe('regex15.exec(input6);', 'results');
+// Failers
+var input7 = "a\u1234b";
+var results = null;
+shouldBe('regex15.exec(input7);', 'results');
+var input8 = "axxxxxxbcdefghijb";
+var results = null;
+shouldBe('regex15.exec(input8);', 'results');
+
+var regex16 = /a(.{3,5}?)b/;
+var input0 = "a\u1234xyb";
+var results = ["a\u1234xyb", "\u1234xy"];
+shouldBe('regex16.exec(input0);', 'results');
+var input1 = "a\u1234\u4321yb";
+var results = ["a\u1234\u4321yb", "\u1234\u4321y"];
+shouldBe('regex16.exec(input1);', 'results');
+var input2 = "a\u1234\u4321\u3412b";
+var results = ["a\u1234\u4321\u3412b", "\u1234\u4321\u3412"];
+shouldBe('regex16.exec(input2);', 'results');
+var input3 = "axxxxbcdefghijb";
+var results = ["axxxxb", "xxxx"];
+shouldBe('regex16.exec(input3);', 'results');
+var input4 = "a\u1234\u4321\u3412\u3421b";
+var results = ["a\u1234\u4321\u3412\u3421b", "\u1234\u4321\u3412\u3421"];
+shouldBe('regex16.exec(input4);', 'results');
+var input5 = "axbxxbcdefghijb";
+var results = ["axbxxb", "xbxx"];
+shouldBe('regex16.exec(input5);', 'results');
+var input6 = "axxxxxbcdefghijb";
+var results = ["axxxxxb", "xxxxx"];
+shouldBe('regex16.exec(input6);', 'results');
+// Failers
+var input7 = "a\u1234b";
+var results = null;
+shouldBe('regex16.exec(input7);', 'results');
+var input8 = "axxxxxxbcdefghijb";
+var results = null;
+shouldBe('regex16.exec(input8);', 'results');
+
+var regex17 = /^[a\u00c0]/;
+// Failers
+var input0 = "\u0100";
+var results = null;
+shouldBe('regex17.exec(input0);', 'results');
+
+var regex21 = /(?:\u0100){3}b/;
+var input0 = "\u0100\u0100\u0100b";
+var results = ["\u0100\u0100\u0100b"];
+shouldBe('regex21.exec(input0);', 'results');
+// Failers
+var input1 = "\u0100\u0100b";
+var results = null;
+shouldBe('regex21.exec(input1);', 'results');
+
+var regex22 = /\u00ab/;
+var input0 = "\u00ab";
+var results = ["\u00ab"];
+shouldBe('regex22.exec(input0);', 'results');
+var input1 = "\xc2\xab";
+var results = ["\u00ab"];
+shouldBe('regex22.exec(input1);', 'results');
+// Failers
+var input2 = "\x00{ab}";
+var results = null;
+shouldBe('regex22.exec(input2);', 'results');
+
+var regex30 = /^[^a]{2}/;
+var input0 = "\u0100bc";
+var results = ["\u0100b"];
+shouldBe('regex30.exec(input0);', 'results');
+
+var regex31 = /^[^a]{2,}/;
+var input0 = "\u0100bcAa";
+var results = ["\u0100bcA"];
+shouldBe('regex31.exec(input0);', 'results');
+
+var regex32 = /^[^a]{2,}?/;
+var input0 = "\u0100bca";
+var results = ["\u0100b"];
+shouldBe('regex32.exec(input0);', 'results');
+
+var regex33 = /^[^a]{2}/i;
+var input0 = "\u0100bc";
+var results = ["\u0100b"];
+shouldBe('regex33.exec(input0);', 'results');
+
+var regex34 = /^[^a]{2,}/i;
+var input0 = "\u0100bcAa";
+var results = ["\u0100bc"];
+shouldBe('regex34.exec(input0);', 'results');
+
+var regex35 = /^[^a]{2,}?/i;
+var input0 = "\u0100bca";
+var results = ["\u0100b"];
+shouldBe('regex35.exec(input0);', 'results');
+
+var regex36 = /\u0100{0,0}/;
+var input0 = "abcd";
+var results = [""];
+shouldBe('regex36.exec(input0);', 'results');
+
+var regex37 = /\u0100?/;
+var input0 = "abcd";
+var results = [""];
+shouldBe('regex37.exec(input0);', 'results');
+var input1 = "\u0100\u0100";
+var results = ["\u0100"];
+shouldBe('regex37.exec(input1);', 'results');
+
+var regex38 = /\u0100{0,3}/;
+var input0 = "\u0100\u0100";
+var results = ["\u0100\u0100"];
+shouldBe('regex38.exec(input0);', 'results');
+var input1 = "\u0100\u0100\u0100\u0100";
+var results = ["\u0100\u0100\u0100"];
+shouldBe('regex38.exec(input1);', 'results');
+
+var regex39 = /\u0100*/;
+var input0 = "abce";
+var results = [""];
+shouldBe('regex39.exec(input0);', 'results');
+var input1 = "\u0100\u0100\u0100\u0100";
+var results = ["\u0100\u0100\u0100\u0100"];
+shouldBe('regex39.exec(input1);', 'results');
+
+var regex40 = /\u0100{1,1}/;
+var input0 = "abcd\u0100\u0100\u0100\u0100";
+var results = ["\u0100"];
+shouldBe('regex40.exec(input0);', 'results');
+
+var regex41 = /\u0100{1,3}/;
+var input0 = "abcd\u0100\u0100\u0100\u0100";
+var results = ["\u0100\u0100\u0100"];
+shouldBe('regex41.exec(input0);', 'results');
+
+var regex42 = /\u0100+/;
+var input0 = "abcd\u0100\u0100\u0100\u0100";
+var results = ["\u0100\u0100\u0100\u0100"];
+shouldBe('regex42.exec(input0);', 'results');
+
+var regex43 = /\u0100{3}/;
+var input0 = "abcd\u0100\u0100\u0100XX";
+var results = ["\u0100\u0100\u0100"];
+shouldBe('regex43.exec(input0);', 'results');
+
+var regex44 = /\u0100{3,5}/;
+var input0 = "abcd\u0100\u0100\u0100\u0100\u0100\u0100\u0100XX";
+var results = ["\u0100\u0100\u0100\u0100\u0100"];
+shouldBe('regex44.exec(input0);', 'results');
+
+var regex45 = /\u0100{3,}/;
+var input0 = "abcd\u0100\u0100\u0100\u0100\u0100\u0100\u0100XX";
+var results = ["\u0100\u0100\u0100\u0100\u0100\u0100\u0100"];
+shouldBe('regex45.exec(input0);', 'results');
+
+var regex47 = /\D*/;
+var input0 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+var results = ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"];
+shouldBe('regex47.exec(input0);', 'results');
+
+var regex48 = /\D*/;
+var input0 = "\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100";
+var results = ["\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100\u0100"];
+shouldBe('regex48.exec(input0);', 'results');
+
+var regex49 = /\D/;
+var input0 = "1X2";
+var results = ["X"];
+shouldBe('regex49.exec(input0);', 'results');
+var input1 = "1\u01002";
+var results = ["\u0100"];
+shouldBe('regex49.exec(input1);', 'results');
+
+var regex50 = />\S/;
+var input0 = "> >X Y";
+var results = [">X"];
+shouldBe('regex50.exec(input0);', 'results');
+var input1 = "> >\u0100 Y";
+var results = [">\u0100"];
+shouldBe('regex50.exec(input1);', 'results');
+
+var regex51 = /\d/;
+var input0 = "\u01003";
+var results = ["3"];
+shouldBe('regex51.exec(input0);', 'results');
+
+var regex52 = /\s/;
+var input0 = "\u0100 X";
+var results = [" "];
+shouldBe('regex52.exec(input0);', 'results');
+
+var regex53 = /\D+/;
+var input0 = "12abcd34";
+var results = ["abcd"];
+shouldBe('regex53.exec(input0);', 'results');
+// Failers
+var input1 = "1234";
+var results = null;
+shouldBe('regex53.exec(input1);', 'results');
+
+var regex54 = /\D{2,3}/;
+var input0 = "12abcd34";
+var results = ["abc"];
+shouldBe('regex54.exec(input0);', 'results');
+var input1 = "12ab34";
+var results = ["ab"];
+shouldBe('regex54.exec(input1);', 'results');
+// Failers
+var input2 = "1234";
+var results = null;
+shouldBe('regex54.exec(input2);', 'results');
+var input3 = "12a34";
+var results = null;
+shouldBe('regex54.exec(input3);', 'results');
+
+var regex55 = /\D{2,3}?/;
+var input0 = "12abcd34";
+var results = ["ab"];
+shouldBe('regex55.exec(input0);', 'results');
+var input1 = "12ab34";
+var results = ["ab"];
+shouldBe('regex55.exec(input1);', 'results');
+// Failers
+var input2 = "1234";
+var results = null;
+shouldBe('regex55.exec(input2);', 'results');
+var input3 = "12a34";
+var results = null;
+shouldBe('regex55.exec(input3);', 'results');
+
+var regex56 = /\d+/;
+var input0 = "12abcd34";
+var results = ["12"];
+shouldBe('regex56.exec(input0);', 'results');
+
+var regex57 = /\d{2,3}/;
+var input0 = "12abcd34";
+var results = ["12"];
+shouldBe('regex57.exec(input0);', 'results');
+var input1 = "1234abcd";
+var results = ["123"];
+shouldBe('regex57.exec(input1);', 'results');
+// Failers
+var input2 = "1.4";
+var results = null;
+shouldBe('regex57.exec(input2);', 'results');
+
+var regex58 = /\d{2,3}?/;
+var input0 = "12abcd34";
+var results = ["12"];
+shouldBe('regex58.exec(input0);', 'results');
+var input1 = "1234abcd";
+var results = ["12"];
+shouldBe('regex58.exec(input1);', 'results');
+// Failers
+var input2 = "1.4";
+var results = null;
+shouldBe('regex58.exec(input2);', 'results');
+
+var regex59 = /\S+/;
+var input0 = "12abcd34";
+var results = ["12abcd34"];
+shouldBe('regex59.exec(input0);', 'results');
+// Failers
+var input1 = " ";
+var results = null;
+shouldBe('regex59.exec(input1);', 'results');
+
+var regex60 = /\S{2,3}/;
+var input0 = "12abcd34";
+var results = ["12a"];
+shouldBe('regex60.exec(input0);', 'results');
+var input1 = "1234abcd";
+var results = ["123"];
+shouldBe('regex60.exec(input1);', 'results');
+// Failers
+var input2 = " ";
+var results = null;
+shouldBe('regex60.exec(input2);', 'results');
+
+var regex61 = /\S{2,3}?/;
+var input0 = "12abcd34";
+var results = ["12"];
+shouldBe('regex61.exec(input0);', 'results');
+var input1 = "1234abcd";
+var results = ["12"];
+shouldBe('regex61.exec(input1);', 'results');
+// Failers
+var input2 = " ";
+var results = null;
+shouldBe('regex61.exec(input2);', 'results');
+
+var regex62 = />\s+</;
+var input0 = "12> <34";
+var results = ["> <"];
+shouldBe('regex62.exec(input0);', 'results');
+
+var regex63 = />\s{2,3}</;
+var input0 = "ab> <cd";
+var results = ["> <"];
+shouldBe('regex63.exec(input0);', 'results');
+var input1 = "ab> <ce";
+var results = ["> <"];
+shouldBe('regex63.exec(input1);', 'results');
+// Failers
+var input2 = "ab> <cd";
+var results = null;
+shouldBe('regex63.exec(input2);', 'results');
+
+var regex64 = />\s{2,3}?</;
+var input0 = "ab> <cd";
+var results = ["> <"];
+shouldBe('regex64.exec(input0);', 'results');
+var input1 = "ab> <ce";
+var results = ["> <"];
+shouldBe('regex64.exec(input1);', 'results');
+// Failers
+var input2 = "ab> <cd";
+var results = null;
+shouldBe('regex64.exec(input2);', 'results');
+
+var regex65 = /\w+/;
+var input0 = "12 34";
+var results = ["12"];
+shouldBe('regex65.exec(input0);', 'results');
+// Failers
+var input1 = "+++=*!";
+var results = null;
+shouldBe('regex65.exec(input1);', 'results');
+
+var regex66 = /\w{2,3}/;
+var input0 = "ab cd";
+var results = ["ab"];
+shouldBe('regex66.exec(input0);', 'results');
+var input1 = "abcd ce";
+var results = ["abc"];
+shouldBe('regex66.exec(input1);', 'results');
+// Failers
+var input2 = "a.b.c";
+var results = null;
+shouldBe('regex66.exec(input2);', 'results');
+
+var regex67 = /\w{2,3}?/;
+var input0 = "ab cd";
+var results = ["ab"];
+shouldBe('regex67.exec(input0);', 'results');
+var input1 = "abcd ce";
+var results = ["ab"];
+shouldBe('regex67.exec(input1);', 'results');
+// Failers
+var input2 = "a.b.c";
+var results = null;
+shouldBe('regex67.exec(input2);', 'results');
+
+var regex68 = /\W+/;
+var input0 = "12====34";
+var results = ["===="];
+shouldBe('regex68.exec(input0);', 'results');
+// Failers
+var input1 = "abcd";
+var results = null;
+shouldBe('regex68.exec(input1);', 'results');
+
+var regex69 = /\W{2,3}/;
+var input0 = "ab====cd";
+var results = ["==="];
+shouldBe('regex69.exec(input0);', 'results');
+var input1 = "ab==cd";
+var results = ["=="];
+shouldBe('regex69.exec(input1);', 'results');
+// Failers
+var input2 = "a.b.c";
+var results = null;
+shouldBe('regex69.exec(input2);', 'results');
+
+var regex70 = /\W{2,3}?/;
+var input0 = "ab====cd";
+var results = ["=="];
+shouldBe('regex70.exec(input0);', 'results');
+var input1 = "ab==cd";
+var results = ["=="];
+shouldBe('regex70.exec(input1);', 'results');
+// Failers
+var input2 = "a.b.c";
+var results = null;
+shouldBe('regex70.exec(input2);', 'results');
+
+var regex71 = /[\u0100]/;
+var input0 = "\u0100";
+var results = ["\u0100"];
+shouldBe('regex71.exec(input0);', 'results');
+var input1 = "Z\u0100";
+var results = ["\u0100"];
+shouldBe('regex71.exec(input1);', 'results');
+var input2 = "\u0100Z";
+var results = ["\u0100"];
+shouldBe('regex71.exec(input2);', 'results');
+
+var regex72 = /[Z\u0100]/;
+var input0 = "Z\u0100";
+var results = ["Z"];
+shouldBe('regex72.exec(input0);', 'results');
+var input1 = "\u0100";
+var results = ["\u0100"];
+shouldBe('regex72.exec(input1);', 'results');
+var input2 = "\u0100Z";
+var results = ["\u0100"];
+shouldBe('regex72.exec(input2);', 'results');
+
+var regex73 = /[\u0100\u0200]/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex73.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex73.exec(input1);', 'results');
+
+var regex74 = /[\u0100-\u0200]/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex74.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex74.exec(input1);', 'results');
+var input2 = "ab\u0111cd";
+var results = ["\u0111"];
+shouldBe('regex74.exec(input2);', 'results');
+
+var regex75 = /[z-\u0200]/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex75.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex75.exec(input1);', 'results');
+var input2 = "ab\u0111cd";
+var results = ["\u0111"];
+shouldBe('regex75.exec(input2);', 'results');
+var input3 = "abzcd";
+var results = ["z"];
+shouldBe('regex75.exec(input3);', 'results');
+var input4 = "ab|cd";
+var results = ["|"];
+shouldBe('regex75.exec(input4);', 'results');
+
+var regex76 = /[Q\u0100\u0200]/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex76.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex76.exec(input1);', 'results');
+var input2 = "Q?";
+var results = ["Q"];
+shouldBe('regex76.exec(input2);', 'results');
+
+var regex77 = /[Q\u0100-\u0200]/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex77.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex77.exec(input1);', 'results');
+var input2 = "ab\u0111cd";
+var results = ["\u0111"];
+shouldBe('regex77.exec(input2);', 'results');
+var input3 = "Q?";
+var results = ["Q"];
+shouldBe('regex77.exec(input3);', 'results');
+
+var regex78 = /[Qz-\u0200]/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex78.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex78.exec(input1);', 'results');
+var input2 = "ab\u0111cd";
+var results = ["\u0111"];
+shouldBe('regex78.exec(input2);', 'results');
+var input3 = "abzcd";
+var results = ["z"];
+shouldBe('regex78.exec(input3);', 'results');
+var input4 = "ab|cd";
+var results = ["|"];
+shouldBe('regex78.exec(input4);', 'results');
+var input5 = "Q?";
+var results = ["Q"];
+shouldBe('regex78.exec(input5);', 'results');
+
+var regex79 = /[\u0100\u0200]{1,3}/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex79.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex79.exec(input1);', 'results');
+var input2 = "ab\u0200\u0100\u0200\u0100cd";
+var results = ["\u0200\u0100\u0200"];
+shouldBe('regex79.exec(input2);', 'results');
+
+var regex80 = /[\u0100\u0200]{1,3}?/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex80.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex80.exec(input1);', 'results');
+var input2 = "ab\u0200\u0100\u0200\u0100cd";
+var results = ["\u0200"];
+shouldBe('regex80.exec(input2);', 'results');
+
+var regex81 = /[Q\u0100\u0200]{1,3}/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex81.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex81.exec(input1);', 'results');
+var input2 = "ab\u0200\u0100\u0200\u0100cd";
+var results = ["\u0200\u0100\u0200"];
+shouldBe('regex81.exec(input2);', 'results');
+
+var regex82 = /[Q\u0100\u0200]{1,3}?/;
+var input0 = "ab\u0100cd";
+var results = ["\u0100"];
+shouldBe('regex82.exec(input0);', 'results');
+var input1 = "ab\u0200cd";
+var results = ["\u0200"];
+shouldBe('regex82.exec(input1);', 'results');
+var input2 = "ab\u0200\u0100\u0200\u0100cd";
+var results = ["\u0200"];
+shouldBe('regex82.exec(input2);', 'results');
+
+var regex86 = /[^\u0100\u0200]X/;
+var input0 = "AX";
+var results = ["AX"];
+shouldBe('regex86.exec(input0);', 'results');
+var input1 = "\u0150X";
+var results = ["\u0150X"];
+shouldBe('regex86.exec(input1);', 'results');
+var input2 = "\u0500X";
+var results = ["\u0500X"];
+shouldBe('regex86.exec(input2);', 'results');
+// Failers
+var input3 = "\u0100X";
+var results = null;
+shouldBe('regex86.exec(input3);', 'results');
+var input4 = "\u0200X";
+var results = null;
+shouldBe('regex86.exec(input4);', 'results');
+
+var regex87 = /[^Q\u0100\u0200]X/;
+var input0 = "AX";
+var results = ["AX"];
+shouldBe('regex87.exec(input0);', 'results');
+var input1 = "\u0150X";
+var results = ["\u0150X"];
+shouldBe('regex87.exec(input1);', 'results');
+var input2 = "\u0500X";
+var results = ["\u0500X"];
+shouldBe('regex87.exec(input2);', 'results');
+// Failers
+var input3 = "\u0100X";
+var results = null;
+shouldBe('regex87.exec(input3);', 'results');
+var input4 = "\u0200X";
+var results = null;
+shouldBe('regex87.exec(input4);', 'results');
+var input5 = "QX";
+var results = null;
+shouldBe('regex87.exec(input5);', 'results');
+
+var regex88 = /[^\u0100-\u0200]X/;
+var input0 = "AX";
+var results = ["AX"];
+shouldBe('regex88.exec(input0);', 'results');
+var input1 = "\u0500X";
+var results = ["\u0500X"];
+shouldBe('regex88.exec(input1);', 'results');
+// Failers
+var input2 = "\u0100X";
+var results = null;
+shouldBe('regex88.exec(input2);', 'results');
+var input3 = "\u0150X";
+var results = null;
+shouldBe('regex88.exec(input3);', 'results');
+var input4 = "\u0200X";
+var results = null;
+shouldBe('regex88.exec(input4);', 'results');
+
+var regex91 = /[z-\u0100]/i;
+var input0 = "z";
+var results = ["z"];
+shouldBe('regex91.exec(input0);', 'results');
+var input1 = "Z";
+var results = ["Z"];
+shouldBe('regex91.exec(input1);', 'results');
+var input2 = "\u0100";
+var results = ["\u0100"];
+shouldBe('regex91.exec(input2);', 'results');
+// Failers
+var input3 = "\u0102";
+var results = null;
+shouldBe('regex91.exec(input3);', 'results');
+var input4 = "y";
+var results = null;
+shouldBe('regex91.exec(input4);', 'results');
+
+var regex92 = /[\xFF]/;
+var input0 = ">\xff<";
+var results = ["\xff"];
+shouldBe('regex92.exec(input0);', 'results');
+
+var regex93 = /[\xff]/;
+var input0 = ">\u00ff<";
+var results = ["\u00ff"];
+shouldBe('regex93.exec(input0);', 'results');
+
+var regex94 = /[^\xFF]/;
+var input0 = "XYZ";
+var results = ["X"];
+shouldBe('regex94.exec(input0);', 'results');
+
+var regex95 = /[^\xff]/;
+var input0 = "XYZ";
+var results = ["X"];
+shouldBe('regex95.exec(input0);', 'results');
+var input1 = "\u0123";
+var results = ["\u0123"];
+shouldBe('regex95.exec(input1);', 'results');
+
+var regex96 = /^[ac]*b/;
+var input0 = "xb";
+var results = null;
+shouldBe('regex96.exec(input0);', 'results');
+
+var regex97 = /^[ac\u0100]*b/;
+var input0 = "xb";
+var results = null;
+shouldBe('regex97.exec(input0);', 'results');
+
+var regex98 = /^[^x]*b/i;
+var input0 = "xb";
+var results = null;
+shouldBe('regex98.exec(input0);', 'results');
+
+var regex99 = /^[^x]*b/;
+var input0 = "xb";
+var results = null;
+shouldBe('regex99.exec(input0);', 'results');
+
+var regex100 = /^\d*b/;
+var input0 = "xb";
+var results = null;
+shouldBe('regex100.exec(input0);', 'results');
+
+var regex102 = /^\u0085$/i;
+var input0 = "\u0085";
+var results = ["\u0085"];
+shouldBe('regex102.exec(input0);', 'results');
+
+var regex103 = /^\xe1\x88\xb4/;
+var input0 = "\xe1\x88\xb4";
+var results = ["\xe1\x88\xb4"];
+shouldBe('regex103.exec(input0);', 'results');
+
+var regex104 = /^\xe1\x88\xb4/;
+var input0 = "\xe1\x88\xb4";
+var results = ["\xe1\x88\xb4"];
+shouldBe('regex104.exec(input0);', 'results');
+
+var regex105 = /(.{1,5})/;
+var input0 = "abcdefg";
+var results = ["abcde", "abcde"];
+shouldBe('regex105.exec(input0);', 'results');
+var input1 = "ab";
+var results = ["ab", "ab"];
+shouldBe('regex105.exec(input1);', 'results');
+
+var regex106 = /a*\u0100*\w/;
+var input0 = "a";
+var results = ["a"];
+shouldBe('regex106.exec(input0);', 'results');
+
+var regex107 = /[\S\s]*/;
+var input0 = "abc\n\r\u0442\u0435\u0441\u0442xyz";
+var results = ["abc\u000a\u000d\u0442\u0435\u0441\u0442xyz"];
+shouldBe('regex107.exec(input0);', 'results');
+
+var regexGlobal0 = /[^a]+/g;
+var input0 = "bcd";
+var results = ["bcd"];
+shouldBe('input0.match(regexGlobal0);', 'results');
+var input1 = "\u0100aY\u0256Z";
+var results = ["\u0100", "Y\u0256Z"];
+shouldBe('input1.match(regexGlobal0);', 'results');
+
+var regexGlobal1 = /\S\S/g;
+var input0 = "A\u00a3BC";
+var results = ["A\u00a3", "BC"];
+shouldBe('input0.match(regexGlobal1);', 'results');
+
+var regexGlobal2 = /\S{2}/g;
+var input0 = "A\u00a3BC";
+var results = ["A\u00a3", "BC"];
+shouldBe('input0.match(regexGlobal2);', 'results');
+
+var regexGlobal3 = /\W\W/g;
+var input0 = "+\u00a3==";
+var results = ["+\u00a3", "=="];
+shouldBe('input0.match(regexGlobal3);', 'results');
+
+var regexGlobal4 = /\W{2}/g;
+var input0 = "+\u00a3==";
+var results = ["+\u00a3", "=="];
+shouldBe('input0.match(regexGlobal4);', 'results');
+
+var regexGlobal5 = /\S/g;
+var input0 = "\u0442\u0435\u0441\u0442";
+var results = ["\u0442", "\u0435", "\u0441", "\u0442"];
+shouldBe('input0.match(regexGlobal5);', 'results');
+
+var regexGlobal6 = /[\S]/g;
+var input0 = "\u0442\u0435\u0441\u0442";
+var results = ["\u0442", "\u0435", "\u0441", "\u0442"];
+shouldBe('input0.match(regexGlobal6);', 'results');
+
+var regexGlobal7 = /\D/g;
+var input0 = "\u0442\u0435\u0441\u0442";
+var results = ["\u0442", "\u0435", "\u0441", "\u0442"];
+shouldBe('input0.match(regexGlobal7);', 'results');
+
+var regexGlobal8 = /[\D]/g;
+var input0 = "\u0442\u0435\u0441\u0442";
+var results = ["\u0442", "\u0435", "\u0441", "\u0442"];
+shouldBe('input0.match(regexGlobal8);', 'results');
+
+var regexGlobal9 = /\W/g;
+var input0 = "\u2442\u2435\u2441\u2442";
+var results = ["\u2442", "\u2435", "\u2441", "\u2442"];
+shouldBe('input0.match(regexGlobal9);', 'results');
+
+var regexGlobal10 = /[\W]/g;
+var input0 = "\u2442\u2435\u2441\u2442";
+var results = ["\u2442", "\u2435", "\u2441", "\u2442"];
+shouldBe('input0.match(regexGlobal10);', 'results');
+
+var regexGlobal11 = /[\u041f\S]/g;
+var input0 = "\u0442\u0435\u0441\u0442";
+var results = ["\u0442", "\u0435", "\u0441", "\u0442"];
+shouldBe('input0.match(regexGlobal11);', 'results');
+
+var regexGlobal12 = /.[^\S]./g;
+var input0 = "abc def\u0442\u0443xyz\npqr";
+var results = ["c d", "z\u000ap"];
+shouldBe('input0.match(regexGlobal12);', 'results');
+
+var regexGlobal13 = /.[^\S\n]./g;
+var input0 = "abc def\u0442\u0443xyz\npqr";
+var results = ["c d"];
+shouldBe('input0.match(regexGlobal13);', 'results');
+
+var regexGlobal14 = /[\W]/g;
+var input0 = "+\u2442";
+var results = ["+", "\u2442"];
+shouldBe('input0.match(regexGlobal14);', 'results');
+
+var regexGlobal15 = /[^a-zA-Z]/g;
+var input0 = "+\u2442";
+var results = ["+", "\u2442"];
+shouldBe('input0.match(regexGlobal15);', 'results');
+
+var regexGlobal16 = /[^a-zA-Z]/g;
+var input0 = "A\u0442";
+var results = ["\u0442"];
+shouldBe('input0.match(regexGlobal16);', 'results');
+
+var regexGlobal17 = /[\S]/g;
+var input0 = "A\u0442";
+var results = ["A", "\u0442"];
+shouldBe('input0.match(regexGlobal17);', 'results');
+
+var regexGlobal19 = /[\D]/g;
+var input0 = "A\u0442";
+var results = ["A", "\u0442"];
+shouldBe('input0.match(regexGlobal19);', 'results');
+
+var regexGlobal21 = /[^a-z]/g;
+var input0 = "A\u0422";
+var results = ["A", "\u0422"];
+shouldBe('input0.match(regexGlobal21);', 'results');
+
+var regexGlobal24 = /[\S]/g;
+var input0 = "A\u0442";
+var results = ["A", "\u0442"];
+shouldBe('input0.match(regexGlobal24);', 'results');
+
+var regexGlobal25 = /[^A-Z]/g;
+var input0 = "a\u0442";
+var results = ["a", "\u0442"];
+shouldBe('input0.match(regexGlobal25);', 'results');
+
+var regexGlobal26 = /[\W]/g;
+var input0 = "+\u2442";
+var results = ["+", "\u2442"];
+shouldBe('input0.match(regexGlobal26);', 'results');
+
+var regexGlobal27 = /[\D]/g;
+var input0 = "M\u0442";
+var results = ["M", "\u0442"];
+shouldBe('input0.match(regexGlobal27);', 'results');
+
+var regexGlobal28 = /[^a]+/ig;
+var input0 = "bcd";
+var results = ["bcd"];
+shouldBe('input0.match(regexGlobal28);', 'results');
+var input1 = "\u0100aY\u0256Z";
+var results = ["\u0100", "Y\u0256Z"];
+shouldBe('input1.match(regexGlobal28);', 'results');
+
+var regexGlobal29 = /(a|)/g;
+var input0 = "catac";
+var results = ["", "a", "", "a", "", ""];
+shouldBe('input0.match(regexGlobal29);', 'results');
+var input1 = "a\u0256a";
+var results = ["a", "", "a", ""];
+shouldBe('input1.match(regexGlobal29);', 'results');
+
+// DISABLED:
+// These tests use (?<) or (?>) constructs. These are not currently valid in ECMAScript,
+// but these tests may be useful if similar constructs are introduced in the future.
+
+//var regex18 = /(?<=aXb)cd/;
+//var input0 = "aXbcd";
+//var results = ["cd"];
+//shouldBe('regex18.exec(input0);', 'results');
+//
+//var regex19 = /(?<=a\u0100b)cd/;
+//var input0 = "a\u0100bcd";
+//var results = ["cd"];
+//shouldBe('regex19.exec(input0);', 'results');
+//
+//var regex20 = /(?<=a\u100000b)cd/;
+//var input0 = "a\u100000bcd";
+//var results = ["cd"];
+//shouldBe('regex20.exec(input0);', 'results');
+//
+//var regex23 = /(?<=(.))X/;
+//var input0 = "WXYZ";
+//var results = ["X", "W"];
+//shouldBe('regex23.exec(input0);', 'results');
+//var input1 = "\u0256XYZ";
+//var results = ["X", "\u0256"];
+//shouldBe('regex23.exec(input1);', 'results');
+//// Failers
+//var input2 = "XYZ";
+//var results = null;
+//shouldBe('regex23.exec(input2);', 'results');
+//
+//var regex46 = /(?<=a\u0100{2}b)X/;
+//var input0 = "Xyyya\u0100\u0100bXzzz";
+//var results = ["X"];
+//shouldBe('regex46.exec(input0);', 'results');
+//
+//var regex83 = /(?<=[\u0100\u0200])X/;
+//var input0 = "abc\u0200X";
+//var results = ["X"];
+//shouldBe('regex83.exec(input0);', 'results');
+//var input1 = "abc\u0100X";
+//var results = ["X"];
+//shouldBe('regex83.exec(input1);', 'results');
+//// Failers
+//var input2 = "X";
+//var results = null;
+//shouldBe('regex83.exec(input2);', 'results');
+//
+//var regex84 = /(?<=[Q\u0100\u0200])X/;
+//var input0 = "abc\u0200X";
+//var results = ["X"];
+//shouldBe('regex84.exec(input0);', 'results');
+//var input1 = "abc\u0100X";
+//var results = ["X"];
+//shouldBe('regex84.exec(input1);', 'results');
+//var input2 = "abQX";
+//var results = ["X"];
+//shouldBe('regex84.exec(input2);', 'results');
+//// Failers
+//var input3 = "X";
+//var results = null;
+//shouldBe('regex84.exec(input3);', 'results');
+//
+//var regex85 = /(?<=[\u0100\u0200]{3})X/;
+//var input0 = "abc\u0100\u0200\u0100X";
+//var results = ["X"];
+//shouldBe('regex85.exec(input0);', 'results');
+//// Failers
+//var input1 = "abc\u0200X";
+//var results = null;
+//shouldBe('regex85.exec(input1);', 'results');
+//var input2 = "X";
+//var results = null;
+//shouldBe('regex85.exec(input2);', 'results');
+
+// DISABLED:
+// These tests use PCRE's \C token. This is not currently valid in ECMAScript,
+// but these tests may be useful if similar constructs are introduced in the future.
+
+//var regex24 = /X(\C{3})/;
+//var input0 = "X\u1234";
+//var results = ["X\u1234", "\u1234"];
+//shouldBe('regex24.exec(input0);', 'results');
+//
+//var regex25 = /X(\C{4})/;
+//var input0 = "X\u1234YZ";
+//var results = ["X\u1234Y", "\u1234Y"];
+//shouldBe('regex25.exec(input0);', 'results');
+//
+//var regex26 = /X\C*/;
+//var input0 = "XYZabcdce";
+//var results = ["XYZabcdce"];
+//shouldBe('regex26.exec(input0);', 'results');
+//
+//var regex27 = /X\C*?/;
+//var input0 = "XYZabcde";
+//var results = ["X"];
+//shouldBe('regex27.exec(input0);', 'results');
+//
+//var regex28 = /X\C{3,5}/;
+//var input0 = "Xabcdefg";
+//var results = ["Xabcde"];
+//shouldBe('regex28.exec(input0);', 'results');
+//var input1 = "X\u1234";
+//var results = ["X\u1234"];
+//shouldBe('regex28.exec(input1);', 'results');
+//var input2 = "X\u1234YZ";
+//var results = ["X\u1234YZ"];
+//shouldBe('regex28.exec(input2);', 'results');
+//var input3 = "X\u1234\u0512";
+//var results = ["X\u1234\u0512"];
+//shouldBe('regex28.exec(input3);', 'results');
+//var input4 = "X\u1234\u0512YZ";
+//var results = ["X\u1234\u0512"];
+//shouldBe('regex28.exec(input4);', 'results');
+//
+//var regex29 = /X\C{3,5}?/;
+//var input0 = "Xabcdefg";
+//var results = ["Xabc"];
+//shouldBe('regex29.exec(input0);', 'results');
+//var input1 = "X\u1234";
+//var results = ["X\u1234"];
+//shouldBe('regex29.exec(input1);', 'results');
+//var input2 = "X\u1234YZ";
+//var results = ["X\u1234"];
+//shouldBe('regex29.exec(input2);', 'results');
+//var input3 = "X\u1234\u0512";
+//var results = ["X\u1234"];
+//shouldBe('regex29.exec(input3);', 'results');
+//
+//var regex89 = /a\Cb/;
+//var input0 = "aXb";
+//var results = ["aXb"];
+//shouldBe('regex89.exec(input0);', 'results');
+//var input1 = "a\nb";
+//var results = ["a\x0ab"];
+//shouldBe('regex89.exec(input1);', 'results');
+//
+//var regex90 = /a\Cb/;
+//var input0 = "aXb";
+//var results = ["aXb"];
+//shouldBe('regex90.exec(input0);', 'results');
+//var input1 = "a\nb";
+//var results = ["a\u000ab"];
+//shouldBe('regex90.exec(input1);', 'results');
+//// Failers
+//var input2 = "a\u0100b";
+//var results = null;
+//shouldBe('regex90.exec(input2);', 'results');
+
+var successfullyParsed = true;
diff --git a/LayoutTests/fast/regex/test1-expected.txt b/LayoutTests/fast/regex/test1-expected.txt
deleted file mode 100644
index 88cd1d1..0000000
--- a/LayoutTests/fast/regex/test1-expected.txt
+++ /dev/null
@@ -1,2935 +0,0 @@
-Test 1: main functionality.
-
-/the quick brown fox/
- the quick brown fox: PASS
- The quick brown FOX: PASS
- What do you know about the quick brown fox?: PASS
- What do you know about THE QUICK BROWN FOX?: PASS
-
-/The quick brown fox/i
- the quick brown fox: PASS
- The quick brown FOX: PASS
- What do you know about the quick brown fox?: PASS
- What do you know about THE QUICK BROWN FOX?: PASS
-
-/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
- abcd\t\n\r\f\a\e9;\$\\?caxyz: FAIL. Actual results: "null"
-
-/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
- abxyzpqrrrabbxyyyypqAzz: PASS
- abxyzpqrrrabbxyyyypqAzz: PASS
- aabxyzpqrrrabbxyyyypqAzz: PASS
- aaabxyzpqrrrabbxyyyypqAzz: PASS
- aaaabxyzpqrrrabbxyyyypqAzz: PASS
- abcxyzpqrrrabbxyyyypqAzz: PASS
- aabcxyzpqrrrabbxyyyypqAzz: PASS
- aaabcxyzpqrrrabbxyyyypAzz: PASS
- aaabcxyzpqrrrabbxyyyypqAzz: PASS
- aaabcxyzpqrrrabbxyyyypqqAzz: PASS
- aaabcxyzpqrrrabbxyyyypqqqAzz: PASS
- aaabcxyzpqrrrabbxyyyypqqqqAzz: PASS
- aaabcxyzpqrrrabbxyyyypqqqqqAzz: PASS
- aaabcxyzpqrrrabbxyyyypqqqqqqAzz: PASS
- aaaabcxyzpqrrrabbxyyyypqAzz: PASS
- abxyzzpqrrrabbxyyyypqAzz: PASS
- aabxyzzzpqrrrabbxyyyypqAzz: PASS
- aaabxyzzzzpqrrrabbxyyyypqAzz: PASS
- aaaabxyzzzzpqrrrabbxyyyypqAzz: PASS
- abcxyzzpqrrrabbxyyyypqAzz: PASS
- aabcxyzzzpqrrrabbxyyyypqAzz: PASS
- aaabcxyzzzzpqrrrabbxyyyypqAzz: PASS
- aaaabcxyzzzzpqrrrabbxyyyypqAzz: PASS
- aaaabcxyzzzzpqrrrabbbxyyyypqAzz: PASS
- aaaabcxyzzzzpqrrrabbbxyyyyypqAzz: PASS
- aaabcxyzpqrrrabbxyyyypABzz: PASS
- aaabcxyzpqrrrabbxyyyypABBzz: PASS
- >>>aaabxyzpqrrrabbxyyyypqAzz: PASS
- >aaaabxyzpqrrrabbxyyyypqAzz: PASS
- >>>>abcxyzpqrrrabbxyyyypqAzz: PASS
- *** Failers
- abxyzpqrrabbxyyyypqAzz: PASS
- abxyzpqrrrrabbxyyyypqAzz: PASS
- abxyzpqrrrabxyyyypqAzz: PASS
- aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz: PASS
- aaaabcxyzzzzpqrrrabbbxyyypqAzz: PASS
- aaabcxyzpqrrrabbxyyyypqqqqqqqAzz: PASS
-
-/^(abc){1,2}zz/
- abczz: PASS
- abcabczz: PASS
- *** Failers
- zz: PASS
- abcabcabczz: PASS
- >>abczz: PASS
-
-/^(b+?|a){1,2}?c/
- bc: PASS
- bbc: PASS
- bbbc: PASS
- bac: PASS
- bbac: PASS
- aac: PASS
- abbbbbbbbbbbc: PASS
- bbbbbbbbbbbac: PASS
- *** Failers
- aaac: PASS
- abbbbbbbbbbbac: PASS
-
-/^(b+|a){1,2}c/
- bc: PASS
- bbc: PASS
- bbbc: PASS
- bac: PASS
- bbac: PASS
- aac: PASS
- abbbbbbbbbbbc: PASS
- bbbbbbbbbbbac: PASS
- *** Failers
- aaac: PASS
- abbbbbbbbbbbac: PASS
-
-/^(b+|a){1,2}?bc/
- bbc: PASS
-
-/^(b*|ba){1,2}?bc/
- babc: PASS
- bbabc: PASS
- bababc: PASS
- *** Failers
- bababbc: PASS
- babababc: PASS
-
-/^(ba|b*){1,2}?bc/
- babc: PASS
- bbabc: PASS
- bababc: PASS
- *** Failers
- bababbc: PASS
- babababc: PASS
-
-/^\ca\cA\c[\c{\c:/
-FAILED TO COMPILE
-
-/^[ab\]cde]/
- athing: PASS
- bthing: PASS
- ]thing: PASS
- cthing: PASS
- dthing: PASS
- ething: PASS
- *** Failers
- fthing: PASS
- [thing: PASS
- \\thing: PASS
-
-/^[]cde]/
- ]thing: FAIL. Actual results: "null"
- cthing: FAIL. Actual results: "null"
- dthing: FAIL. Actual results: "null"
- ething: FAIL. Actual results: "null"
- *** Failers
- athing: PASS
- fthing: PASS
-
-/^[^ab\]cde]/
- fthing: PASS
- [thing: PASS
- \\thing: PASS
- *** Failers
- athing: PASS
- bthing: PASS
- ]thing: PASS
- cthing: PASS
- dthing: PASS
- ething: PASS
-
-/^[^]cde]/
- athing: FAIL. Actual results: "null"
- fthing: FAIL. Actual results: "null"
- *** Failers: FAIL. Actual results: "null"
- ]thing: PASS
- cthing: PASS
- dthing: PASS
- ething: PASS
-
-/^\/
- : PASS
-
-/^ÿ/
- ÿ: PASS
-
-/^[0-9]+$/
- 0: PASS
- 1: PASS
- 2: PASS
- 3: PASS
- 4: PASS
- 5: PASS
- 6: PASS
- 7: PASS
- 8: PASS
- 9: PASS
- 10: PASS
- 100: PASS
- *** Failers
- abc: PASS
-
-/^.*nter/
- enter: PASS
- inter: PASS
- uponter: PASS
-
-/^xxx[0-9]+$/
- xxx0: PASS
- xxx1234: PASS
- *** Failers
- xxx: PASS
-
-/^.+[0-9][0-9][0-9]$/
- x123: PASS
- xx123: PASS
- 123456: PASS
- *** Failers
- 123: PASS
- x1234: PASS
-
-/^.+?[0-9][0-9][0-9]$/
- x123: PASS
- xx123: PASS
- 123456: PASS
- *** Failers
- 123: PASS
- x1234: PASS
-
-/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
- abc!pqr=apquxz.ixr.zzz.ac.uk: PASS
- *** Failers
- !pqr=apquxz.ixr.zzz.ac.uk: PASS
- abc!=apquxz.ixr.zzz.ac.uk: PASS
- abc!pqr=apquxz:ixr.zzz.ac.uk: PASS
- abc!pqr=apquxz.ixr.zzz.ac.ukk: PASS
-
-/:/
- Well, we need a colon: somewhere: PASS
- *** Fail if we don't: PASS
-
-/([\da-f:]+)$/i
- 0abc: PASS
- abc: PASS
- fed: PASS
- E: PASS
- ::: PASS
- 5f03:12C0::932e: PASS
- fed def: PASS
- Any old stuff: PASS
- *** Failers
- 0zzz: PASS
- gzzz: PASS
- fed : PASS
- Any old rubbish: PASS
-
-/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
- .1.2.3: PASS
- A.12.123.0: PASS
- *** Failers
- .1.2.3333: PASS
- 1.2.3: PASS
- 1234.2.3: PASS
-
-/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
- 1 IN SOA non-sp1 non-sp2(: PASS
- 1 IN SOA non-sp1 non-sp2 (: PASS
- *** Failers
- 1IN SOA non-sp1 non-sp2(: PASS
-
-/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
- a.: FAIL. Actual results: "a.,"
- Z.: FAIL. Actual results: "Z.,"
- 2.: FAIL. Actual results: "2.,"
- ab-c.pq-r.: PASS
- sxk.zzz.ac.uk.: PASS
- x-.y-.: PASS
- *** Failers
- -abc.peq.: PASS
-
-/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
- *.a: FAIL. Actual results: "*.a,,,"
- *.b0-a: FAIL. Actual results: "*.b0-a,0-a,,"
- *.c3-b.c: FAIL. Actual results: "*.c3-b.c,3-b,.c,"
- *.c-a.b-c: PASS
- *** Failers
- *.0: PASS
- *.a-: PASS
- *.a-b.c-: PASS
- *.c-a.0-c: PASS
-
-/^(?=ab(de))(abd)(e)/
- abde: PASS
-
-/^(?!(ab)de|x)(abd)(f)/
- abdf: PASS
-
-/^(?=(ab(cd)))(ab)/
- abcd: PASS
-
-/^[\da-f](\.[\da-f])*$/i
- a.b.c.d: PASS
- A.B.C.D: PASS
- a.b.c.1.2.3.C: PASS
-
-/^\".*\"\s*(;.*)?$/
- \"1234\": FAIL. Actual results: "null"
- \"abcd\" ;: FAIL. Actual results: "null"
- \"\" ; rhubarb: FAIL. Actual results: "null"
- *** Failers
- \"1234\" : things: PASS
-
-/^$/
- \: FAIL. Actual results: "null"
- *** Failers
-
-/ ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
-Unsupported modifiers: x
-
-/(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
-FAILED TO COMPILE
-
-/^ a\ b[c ]d $/x
-Unsupported modifiers: x
-
-/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
- abcdefhijklm: PASS
-
-/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
- abcdefhijklm: PASS
-
-/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
- a+ Z0+\n
: FAIL. Actual results: "null"
-
-/^[.^$|()*+?{,}]+/
- .^\$(*+)|{?,?}: FAIL. Actual results: ".^"
-
-/^a*\w/
- z: PASS
- az: PASS
- aaaz: PASS
- a: PASS
- aa: PASS
- aaaa: PASS
- a+: PASS
- aa+: PASS
-
-/^a*?\w/
- z: PASS
- az: PASS
- aaaz: PASS
- a: PASS
- aa: PASS
- aaaa: PASS
- a+: PASS
- aa+: PASS
-
-/^a+\w/
- az: PASS
- aaaz: PASS
- aa: PASS
- aaaa: PASS
- aa+: PASS
-
-/^a+?\w/
- az: PASS
- aaaz: PASS
- aa: PASS
- aaaa: PASS
- aa+: PASS
-
-/^\d{8}\w{2,}/
- 1234567890: PASS
- 12345678ab: PASS
- 12345678__: PASS
- *** Failers
- 1234567: PASS
-
-/^[aeiou\d]{4,5}$/
- uoie: PASS
- 1234: PASS
- 12345: PASS
- aaaaa: PASS
- *** Failers
- 123456: PASS
-
-/^[aeiou\d]{4,5}?/
- uoie: PASS
- 1234: PASS
- 12345: PASS
- aaaaa: PASS
- 123456: PASS
-
-/\A(abc|def)=(\1){2,3}\Z/
- abc=abcabc: FAIL. Actual results: "null"
- def=defdefdef: FAIL. Actual results: "null"
- *** Failers
- abc=defdef: PASS
-
-/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
-FAILED TO COMPILE
-
-/(cat(a(ract|tonic)|erpillar)) \1()2(3)/
- cataract cataract23: PASS
- catatonic catatonic23: PASS
- caterpillar caterpillar23: PASS
-
-
-FAILED TO COMPILE
-
-/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
- From abcd Mon Sep 01 12:33:02 1997: PASS
- From abcd Mon Sep 1 12:33:02 1997: PASS
- *** Failers
- From abcd Sep 01 12:33:02 1997: PASS
-
-/^12.34/s
- 12\n34: FAIL. Actual results: "null"
- 12\r34: FAIL. Actual results: "null"
-
-/\w+(?=\t)/
- the quick brown\t fox: FAIL. Actual results: "null"
-
-/foo(?!bar)(.*)/
- foobar is foolish see?: PASS
-
-/(?:(?!foo)...|^.{0,2})bar(.*)/
- foobar crowbar etc: PASS
- barrel: PASS
- 2barrel: PASS
- A barrel: PASS
-
-/^(\D*)(?=\d)(?!123)/
- abc456: PASS
- *** Failers
- abc123: PASS
-
-/^1234(?# test newlines
- inside)/
-FAILED TO COMPILE
-
-/^1234 #comment in extended re
- /x
-FAILED TO COMPILE
-
-/#rhubarb
- abcd/x
-FAILED TO COMPILE
-
-/^abcd#rhubarb/x
-Unsupported modifiers: x
-
-/^(a)\1{2,3}(.)/
- aaab: PASS
- aaaab: PASS
- aaaaab: PASS
- aaaaaab: PASS
-
-/(?!^)abc/
- the abc: PASS
- *** Failers
- abc: PASS
-
-/(?=^)abc/
- abc: PASS
- *** Failers
- the abc: PASS
-
-/^[ab]{1,3}(ab*|b)/
- aabbbbb: PASS
-
-/^[ab]{1,3}?(ab*|b)/
- aabbbbb: PASS
-
-/^[ab]{1,3}?(ab*?|b)/
- aabbbbb: PASS
-
-/^[ab]{1,3}(ab*?|b)/
- aabbbbb: PASS
-
-/abc\0def\00pqr\000xyz\0000AB/
- abc f qr xyz 0AB: FAIL. Actual results: "abc f qr xyz 0AB"
- abc456 abc f qr xyz 0ABCDE: FAIL. Actual results: "abc f qr xyz 0AB"
-
-/abc\x0def\x00pqr\x000xyz\x0000AB/
-FAILED TO COMPILE
-
-/^[\000-\037]/
- : PASS
- : PASS
- C: PASS
-
-/\0*/
-FAILED TO COMPILE
-
-/A\x0{2,3}Z/
- The A x0Z: FAIL. Actual results: "null"
- An A 0 : FAIL. Actual results: "null"
- *** Failers
- A : PASS
- A 0 0Z: PASS
-
-/^(cow|)\1(bell)/
- cowcowbell: PASS
- bell: PASS
- *** Failers
- cowbell: PASS
-
-/^\s/
- abc: PASS
- abc: PASS
- \nabc: FAIL. Actual results: "null"
- \rabc: FAIL. Actual results: "null"
- \tabc: FAIL. Actual results: "null"
- *** Failers
- abc: PASS
-
-/^a b
- c/x
-FAILED TO COMPILE
-
-/^(a|)\1*b/
- ab: PASS
- aaaab: PASS
- b: PASS
- *** Failers
- acb: PASS
-
-/^(a|)\1+b/
- aab: PASS
- aaaab: PASS
- b: PASS
- *** Failers
- ab: PASS
-
-/^(a|)\1?b/
- ab: PASS
- aab: PASS
- b: PASS
- *** Failers
- acb: PASS
-
-/^(a|)\1{2}b/
- aaab: PASS
- b: PASS
- *** Failers
- ab: PASS
- aab: PASS
- aaaab: PASS
-
-/^(a|)\1{2,3}b/
- aaab: PASS
- aaaab: PASS
- b: PASS
- *** Failers
- ab: PASS
- aab: PASS
- aaaaab: PASS
-
-/ab{1,3}bc/
- abbbbc: PASS
- abbbc: PASS
- abbc: PASS
- *** Failers
- abc: PASS
- abbbbbc: PASS
-
-/([^.]*)\.([^:]*):[T ]+(.*)/
- track1.title:TBlah blah blah: PASS
-
-/([^.]*)\.([^:]*):[T ]+(.*)/i
- track1.title:TBlah blah blah: PASS
-
-/([^.]*)\.([^:]*):[t ]+(.*)/i
- track1.title:TBlah blah blah: PASS
-
-/^[W-c]+$/
- WXY_^abc: PASS
- *** Failers
- wxy: PASS
-
-/^[W-c]+$/i
- WXY_^abc: PASS
- wxy_^ABC: PASS
-
-/^[\x3f-\x5F]+$/i
- WXY_^abc: PASS
- wxy_^ABC: PASS
-
-/^abc$/m
- abc: PASS
- qqq\nabc: FAIL. Actual results: "null"
- abc\nzzz: FAIL. Actual results: "null"
- qqq\nabc\nzzz: FAIL. Actual results: "null"
-
-/^abc$/
- abc: PASS
- *** Failers
- qqq\nabc: PASS
- abc\nzzz: PASS
- qqq\nabc\nzzz: PASS
-
-/\Aabc\Z/m
- abc: FAIL. Actual results: "null"
- abc\n: FAIL. Actual results: "null"
- *** Failers
- qqq\nabc: PASS
- abc\nzzz: PASS
- qqq\nabc\nzzz: PASS
-
-/\A(.)*\Z/s
- abc\ndef: FAIL. Actual results: "null"
-
-/\A(.)*\Z/m
- *** Failers: FAIL. Actual results: "null"
- abc\ndef: PASS
-
-/(?:b)|(?::+)/
- b::c: PASS
- c::b: PASS
-
-/[-az]+/
- az-: PASS
- *** Failers
- b: PASS
-
-/[az-]+/
- za-: PASS
- *** Failers
- b: PASS
-
-/[a\-z]+/
- a-z: PASS
- *** Failers
- b: PASS
-
-/[a-z]+/
- abcdxyz: PASS
-
-/[\d-]+/
- 12-34: PASS
- *** Failers
- aaa: PASS
-
-/[\d-z]+/
-FAILED TO COMPILE
-
-/\x5c/
-FAILED TO COMPILE
-
-/\x20Z/
- the Zoo: PASS
- *** Failers
- Zulu: PASS
-
-/(abc)\1/i
- abcabc: PASS
- ABCabc: PASS
- abcABC: PASS
-
-/ab{3cd/
- ab{3cd: PASS
-
-/ab{3,cd/
- ab{3,cd: PASS
-
-/ab{3,4a}cd/
- ab{3,4a}cd: PASS
-
-/{4,5a}bc/
- {4,5a}bc: PASS
-
-/abc$/
- abc: PASS
- abc\n: FAIL. Actual results: "null"
- *** Failers
- abc\ndef: PASS
-
-/(abc)\123/
- abcS: PASS
-
-/(abc)\223/
- abc: PASS
-
-/(abc)\323/
- abcÓ: PASS
-
-/(abc)\100/
- abc@: PASS
- abc\100: FAIL. Actual results: "null"
-
-/(abc)\1000/
- abc at 0: PASS
- abc at 0: PASS
- abc\1000: FAIL. Actual results: "null"
- abc\1000: FAIL. Actual results: "null"
- abc\1000: FAIL. Actual results: "null"
- abc\100\60: FAIL. Actual results: "null"
-
-/abc\81/
- abc : FAIL. Actual results: "null"
- abc 381: FAIL. Actual results: "null"
-
-/abc\91/
- abc : FAIL. Actual results: "null"
- abc 391: FAIL. Actual results: "null"
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
- abcdefghijkllS: PASS
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
- abcdefghijk\12S: FAIL. Actual results: "null"
-
-/ab\idef/
- abidef: PASS
-
-/a{0}bc/
- bc: PASS
-
-/(a|(bc)){0,0}?xyz/
- xyz: FAIL. Actual results: "xyz,,"
-
-/abc[\10]de/
- abcde: PASS
-
-/abc[\1]de/
- abc\1de: FAIL. Actual results: "null"
-
-/(abc)[\1]de/
- abc\1de: FAIL. Actual results: "null"
-
-/(?s)a.b/
-FAILED TO COMPILE
-
-/^([^a])([^\b])([^c]*)([^d]{3,4})/
- baNOTccccd: PASS
- baNOTcccd: PASS
- baNOTccd: PASS
- bacccd: PASS
- *** Failers
- anything: PASS
- b\bc: PASS
- baccd: PASS
-
-/[^a]/
- Abc: PASS
-
-/[^a]/i
- Abc: PASS
-
-/[^a]+/
- AAAaAbc: PASS
-
-/[^a]+/i
- AAAaAbc: PASS
-
-/[^a]+/
- bbb\nccc: FAIL. Actual results: "bbb\nccc"
-
-/[^k]$/
- abc: PASS
- *** Failers
- abk: PASS
-
-/[^k]{2,3}$/
- abc: PASS
- kbc: PASS
- kabc: PASS
- *** Failers
- abk: PASS
- akb: PASS
- akk: PASS
-
-/^\d{8,}\@.+[^k]$/
- 12345678\@a.b.c.d: FAIL. Actual results: "null"
- 123456789\@x.y.z: FAIL. Actual results: "null"
- *** Failers
- 12345678\@x.y.uk: PASS
- 1234567\@a.b.c.d: PASS
-
-/(a)\1{8,}/
- aaaaaaaaa: PASS
- aaaaaaaaaa: PASS
- *** Failers
- aaaaaaa: PASS
-
-/[^a]/
- aaaabcd: PASS
- aaAabcd: PASS
-
-/[^a]/i
- aaaabcd: PASS
- aaAabcd: PASS
-
-/[^az]/
- aaaabcd: PASS
- aaAabcd: PASS
-
-/[^az]/i
- aaaabcd: PASS
- aaAabcd: PASS
-
-/\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/
-FAILED TO COMPILE
-
-/P[^*]TAIRE[^*]{1,6}?LL/
- xxxxxxxxxxxPSTAIREISLLxxxxxxxxx: PASS
-
-/P[^*]TAIRE[^*]{1,}?LL/
- xxxxxxxxxxxPSTAIREISLLxxxxxxxxx: PASS
-
-/(\.\d\d[1-9]?)\d+/
- 1.230003938: PASS
- 1.875000282: PASS
- 1.235: PASS
-
-/(\.\d\d((?=0)|\d(?=\d)))/
- 1.230003938: PASS
- 1.875000282: PASS
- *** Failers
- 1.235: PASS
-
-/a(?)b/
-FAILED TO COMPILE
-
-/\b(foo)\s+(\w+)/i
- Food is on the foo table: PASS
-
-/foo(.*)bar/
- The food is under the bar in the barn.: PASS
-
-/foo(.*?)bar/
- The food is under the bar in the barn.: PASS
-
-/(.*)(\d*)/
- I have 2 numbers: 53147: PASS
-
-/(.*)(\d+)/
- I have 2 numbers: 53147: PASS
-
-/(.*?)(\d*)/
- I have 2 numbers: 53147: PASS
-
-/(.*?)(\d+)/
- I have 2 numbers: 53147: PASS
-
-/(.*)(\d+)$/
- I have 2 numbers: 53147: PASS
-
-/(.*?)(\d+)$/
- I have 2 numbers: 53147: PASS
-
-/(.*)\b(\d+)$/
- I have 2 numbers: 53147: PASS
-
-/(.*\D)(\d+)$/
- I have 2 numbers: 53147: PASS
-
-/^\D*(?!123)/
- ABC123: PASS
-
-/^(\D*)(?=\d)(?!123)/
- ABC445: PASS
- *** Failers
- ABC123: PASS
-
-/^[W-]46]/
- W46]789: PASS
- -46]789: PASS
- *** Failers
- Wall: PASS
- Zebra: PASS
- 42: PASS
- [abcd]: PASS
- ]abcd[: PASS
-
-/^[W-\]46]/
- W46]789: PASS
- Wall: PASS
- Zebra: PASS
- Xylophone: PASS
- 42: PASS
- [abcd]: PASS
- ]abcd[: PASS
- \\backslash: PASS
- *** Failers
- -46]789: PASS
- well: PASS
-
-/\d\d\/\d\d\/\d\d\d\d/
- 01/01/2000: PASS
-
-/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
- word cat dog elephant mussel cow horse canary baboon snake shark otherword: PASS
- word cat dog elephant mussel cow horse canary baboon snake shark: PASS
-
-/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
- 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: PASS
-
-/^(a){0,0}/
- bcd: FAIL. Actual results: ","
- abc: FAIL. Actual results: ","
- aab: FAIL. Actual results: ","
-
-/^(a){0,1}/
- bcd: FAIL. Actual results: ","
- abc: PASS
- aab: PASS
-
-/^(a){0,2}/
- bcd: FAIL. Actual results: ","
- abc: PASS
- aab: PASS
-
-/^(a){0,3}/
- bcd: FAIL. Actual results: ","
- abc: PASS
- aab: PASS
- aaa: PASS
-
-/^(a){0,}/
- bcd: FAIL. Actual results: ","
- abc: PASS
- aab: PASS
- aaa: PASS
- aaaaaaaa: PASS
-
-/^(a){1,1}/
- bcd: PASS
- abc: PASS
- aab: PASS
-
-/^(a){1,2}/
- bcd: PASS
- abc: PASS
- aab: PASS
-
-/^(a){1,3}/
- bcd: PASS
- abc: PASS
- aab: PASS
- aaa: PASS
-
-/^(a){1,}/
- bcd: PASS
- abc: PASS
- aab: PASS
- aaa: PASS
- aaaaaaaa: PASS
-
-/.*\.gif/
- borfle\nbib.gif\nno: FAIL. Actual results: "borfle\nbib.gif"
-
-/.{0,}\.gif/
- borfle\nbib.gif\nno: FAIL. Actual results: "borfle\nbib.gif"
-
-/.*\.gif/m
- borfle\nbib.gif\nno: FAIL. Actual results: "borfle\nbib.gif"
-
-/.*\.gif/s
- borfle\nbib.gif\nno: FAIL. Actual results: "borfle\nbib.gif"
-
-/.*\.gif/ms
- borfle\nbib.gif\nno: FAIL. Actual results: "borfle\nbib.gif"
-
-/.*$/
- borfle\nbib.gif\nno: FAIL. Actual results: "borfle\nbib.gif\nno"
-
-/.*$/m
- borfle\nbib.gif\nno: FAIL. Actual results: "borfle\nbib.gif\nno"
-
-/.*$/s
- borfle\nbib.gif\nno: FAIL. Actual results: "borfle\nbib.gif\nno"
-
-/.*$/ms
- borfle\nbib.gif\nno: FAIL. Actual results: "borfle\nbib.gif\nno"
-
-/.*$/
- borfle\nbib.gif\nno\n: FAIL. Actual results: "borfle\nbib.gif\nno\n"
-
-/.*$/m
- borfle\nbib.gif\nno\n: FAIL. Actual results: "borfle\nbib.gif\nno\n"
-
-/.*$/s
- borfle\nbib.gif\nno\n: FAIL. Actual results: "borfle\nbib.gif\nno\n"
-
-/.*$/ms
- borfle\nbib.gif\nno\n: FAIL. Actual results: "borfle\nbib.gif\nno\n"
-
-/(.*X|^B)/
- abcde\n1234Xyz: FAIL. Actual results: "abcde\n1234X,abcde\n1234X"
- BarFoo: PASS
- *** Failers
- abcde\nBar: PASS
-
-/(.*X|^B)/m
- abcde\n1234Xyz: FAIL. Actual results: "abcde\n1234X,abcde\n1234X"
- BarFoo: PASS
- abcde\nBar: FAIL. Actual results: "null"
-
-/(.*X|^B)/s
- abcde\n1234Xyz: FAIL. Actual results: "abcde\n1234X,abcde\n1234X"
- BarFoo: PASS
- *** Failers
- abcde\nBar: PASS
-
-/(.*X|^B)/ms
- abcde\n1234Xyz: FAIL. Actual results: "abcde\n1234X,abcde\n1234X"
- BarFoo: PASS
- abcde\nBar: FAIL. Actual results: "null"
-
-/(?s)(.*X|^B)/
-FAILED TO COMPILE
-
-/(?s:.*X|^B)/
-FAILED TO COMPILE
-
-/^.*B/
- **** Failers
- abc\nB: FAIL. Actual results: "abc\nB"
-
-/(?s)^.*B/
-FAILED TO COMPILE
-
-/(?m)^.*B/
-FAILED TO COMPILE
-
-/(?ms)^.*B/
-FAILED TO COMPILE
-
-/(?ms)^B/
-FAILED TO COMPILE
-
-/(?s)B$/
-FAILED TO COMPILE
-
-/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
- 123456654321: PASS
-
-/^\d\d\d\d\d\d\d\d\d\d\d\d/
- 123456654321: PASS
-
-/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
- 123456654321: PASS
-
-/^[abc]{12}/
- abcabcabcabc: PASS
-
-/^[a-c]{12}/
- abcabcabcabc: PASS
-
-/^(a|b|c){12}/
- abcabcabcabc: PASS
-
-/^[abcdefghijklmnopqrstuvwxy0123456789]/
- n: PASS
- *** Failers
- z: PASS
-
-/abcde{0,0}/
- abcd: PASS
- *** Failers
- abce: PASS
-
-/ab[cd]{0,0}e/
- abe: PASS
- *** Failers
- abcde: PASS
-
-/ab(c){0,0}d/
- abd: FAIL. Actual results: "abd,"
- *** Failers
- abcd: PASS
-
-/a(b*)/
- a: PASS
- ab: PASS
- abbbb: PASS
- *** Failers
- bbbbb: PASS
-
-/ab\d{0}e/
- abe: PASS
- *** Failers
- ab1e: PASS
-
-/"([^\\"]+|\\.)*"/
- the \"quick\" brown fox: FAIL. Actual results: "null"
- \"the \\\"quick\\\" brown fox\": FAIL. Actual results: "null"
-
-/.*?/g+
-Unsupported modifiers: g+
-
-/\b/g+
-Unsupported modifiers: g+
-
-/\b/+g
-Unsupported modifiers: +g
-
-//g
- abc: PASS
- abc: PASS
- abc: PASS
- abc: PASS
-
-/<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>/is
- <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>: PASS
-
-/a[^a]b/
- acb: PASS
- a\nb: FAIL. Actual results: "null"
-
-/a.b/
- acb: PASS
- *** Failers
- a\nb: PASS
-
-/a[^a]b/s
- acb: PASS
- a\nb: FAIL. Actual results: "null"
-
-/a.b/s
- acb: PASS
- a\nb: FAIL. Actual results: "null"
-
-/^(b+?|a){1,2}?c/
- bac: PASS
- bbac: PASS
- bbbac: PASS
- bbbbac: PASS
- bbbbbac: PASS
-
-/^(b+|a){1,2}?c/
- bac: PASS
- bbac: PASS
- bbbac: PASS
- bbbbac: PASS
- bbbbbac: PASS
-
-/(?!\A)x/m
- x\nb\n: FAIL. Actual results: "x"
- a\bx\n: PASS
-
-/\x0{ab}/
- b}: FAIL. Actual results: "null"
-
-/(A|B)*?CD/
- CD: FAIL. Actual results: "CD,"
-
-/(A|B)*CD/
- CD: FAIL. Actual results: "CD,"
-
-/(AB)*?\1/
- ABABAB: FAIL. Actual results: ","
-
-/(AB)*\1/
- ABABAB: PASS
-
-/(?<!bar)foo/
-FAILED TO COMPILE
-
-/\w{3}(?<!bar)foo/
-FAILED TO COMPILE
-
-/(?<=(foo)a)bar/
-FAILED TO COMPILE
-
-/\Aabc\z/m
- abc: FAIL. Actual results: "null"
- *** Failers
- abc\n: PASS
- qqq\nabc: PASS
- abc\nzzz: PASS
- qqq\nabc\nzzz: PASS
-
-"(?>.*/)foo"
-FAILED TO COMPILE
-
-"(?>.*/)foo"
-FAILED TO COMPILE
-
-/(?>(\.\d\d[1-9]?))\d+/
-FAILED TO COMPILE
-
-/^((?>\w+)|(?>\s+))*$/
-FAILED TO COMPILE
-
-/(\d+)(\w)/
- 12345a: PASS
- 12345+: PASS
-
-/((?>\d+))(\w)/
-FAILED TO COMPILE
-
-/(?>a+)b/
-FAILED TO COMPILE
-
-/((?>a+)b)/
-FAILED TO COMPILE
-
-/(?>(a+))b/
-FAILED TO COMPILE
-
-/(?>b)+/
-FAILED TO COMPILE
-
-/(?>a+|b+|c+)*c/
-FAILED TO COMPILE
-
-/((?>[^()]+)|\([^()]*\))+/
-FAILED TO COMPILE
-
-/\(((?>[^()]+)|\([^()]+\))+\)/
-FAILED TO COMPILE
-
-/a(?-i)b/i
-FAILED TO COMPILE
-
-/(a (?x)b c)d e/
-FAILED TO COMPILE
-
-/(a b(?x)c d (?-x)e f)/
-FAILED TO COMPILE
-
-/(a(?i)b)c/
-FAILED TO COMPILE
-
-/a(?i:b)c/
-FAILED TO COMPILE
-
-/a(?i:b)*c/
-FAILED TO COMPILE
-
-/a(?=b(?i)c)\w\wd/
-FAILED TO COMPILE
-
-/(?s-i:more.*than).*million/i
-FAILED TO COMPILE
-
-/(?:(?s-i)more.*than).*million/i
-FAILED TO COMPILE
-
-/(?>a(?i)b+)+c/
-FAILED TO COMPILE
-
-/(?=a(?i)b)\w\wc/
-FAILED TO COMPILE
-
-/(?<=a(?i)b)(\w\w)c/
-FAILED TO COMPILE
-
-/(?:(a)|b)(?(1)A|B)/
-FAILED TO COMPILE
-
-/^(a)?(?(1)a|b)+$/
-FAILED TO COMPILE
-
-/^(?(?=abc)\w{3}:|\d\d)$/
-FAILED TO COMPILE
-
-/^(?(?!abc)\d\d|\w{3}:)$/
-FAILED TO COMPILE
-
-/(?(?<=foo)bar|cat)/
-FAILED TO COMPILE
-
-/(?(?<!foo)cat|bar)/
-FAILED TO COMPILE
-
-/( \( )? [^()]+ (?(1) \) |) /x
-Unsupported modifiers: x
-
-/( \( )? [^()]+ (?(1) \) ) /x
-Unsupported modifiers: x
-
-/^(?(2)a|(1)(2))+$/
-FAILED TO COMPILE
-
-/((?i)blah)\s+\1/
-FAILED TO COMPILE
-
-/((?i)blah)\s+(?i:\1)/
-FAILED TO COMPILE
-
-/(?>a*)*/
-FAILED TO COMPILE
-
-/(abc|)+/
- abc: PASS
- abcabc: PASS
- abcabcabc: PASS
- xyz: PASS
-
-/([a]*)*/
- a: PASS
- aaaaa: PASS
-
-/([ab]*)*/
- a: PASS
- b: PASS
- ababab: PASS
- aaaabcde: PASS
- bbbb: PASS
-
-/([^a]*)*/
- b: PASS
- bbbb: PASS
- aaa: PASS
-
-/([^ab]*)*/
- cccc: PASS
- abab: PASS
-
-/([a]*?)*/
- a: PASS
- aaaa: PASS
-
-/([ab]*?)*/
- a: PASS
- b: PASS
- abab: PASS
- baba: PASS
-
-/([^a]*?)*/
- b: PASS
- bbbb: PASS
- aaa: PASS
-
-/([^ab]*?)*/
- c: PASS
- cccc: PASS
- baba: PASS
-
-/(?>a*)*/
-FAILED TO COMPILE
-
-/((?>a*))*/
-FAILED TO COMPILE
-
-/((?>a*?))*/
-FAILED TO COMPILE
-
-/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
-Unsupported modifiers: x
-
-/(?<=(foo))bar\1/
-FAILED TO COMPILE
-
-/(?i:saturday|sunday)/
-FAILED TO COMPILE
-
-/(a(?i)bc|BB)x/
-FAILED TO COMPILE
-
-/^([ab](?i)[cd]|[ef])/
-FAILED TO COMPILE
-
-/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
-FAILED TO COMPILE
-
-/(?<=foo\n)^bar/m
-FAILED TO COMPILE
-
-/(?<=(?<!foo)bar)baz/
-FAILED TO COMPILE
-
-/The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
-/it wrong; it sets $1 to aaa rather than aa. Compare the following test,/: PASS
-/where it does set $1 to aa when matching aaaaaa./: PASS
-
-/^(a\1?){4}$/
- a: PASS
- aa: PASS
- aaa: PASS
- aaaa: PASS
- aaaaa: PASS
- aaaaaaa: PASS
- aaaaaaaa: PASS
- aaaaaaaaa: PASS
- aaaaaaaaaa: PASS
- aaaaaaaaaaa: PASS
- aaaaaaaaaaaa: PASS
- aaaaaaaaaaaaa: PASS
- aaaaaaaaaaaaaa: PASS
- aaaaaaaaaaaaaaa: PASS
- aaaaaaaaaaaaaaaa: PASS
-
-/^(a\1?)(a\1?)(a\2?)(a\3?)$/
- a: PASS
- aa: PASS
- aaa: PASS
- aaaa: PASS
- aaaaa: PASS
- aaaaaa: PASS
- aaaaaaa: PASS
- aaaaaaaa: PASS
- aaaaaaaaa: PASS
- aaaaaaaaaa: PASS
- aaaaaaaaaaa: PASS
- aaaaaaaaaaaa: PASS
- aaaaaaaaaaaaa: PASS
- aaaaaaaaaaaaaa: PASS
- aaaaaaaaaaaaaaa: PASS
- aaaaaaaaaaaaaaaa: PASS
-
-/The following tests are taken from the Perl 5.005 test suite; some of them/
-/are compatible with 5.004, but I'd rather not have to sort them out./: PASS
-
-/abc/
- abc: PASS
- xabcy: PASS
- ababc: PASS
- *** Failers
- xbc: PASS
- axc: PASS
- abx: PASS
-
-/ab*c/
- abc: PASS
-
-/ab*bc/
- abc: PASS
- abbc: PASS
- abbbbc: PASS
-
-/.{1}/
- abbbbc: PASS
-
-/.{3,4}/
- abbbbc: PASS
-
-/ab{0,}bc/
- abbbbc: PASS
-
-/ab+bc/
- abbc: PASS
- *** Failers
- abc: PASS
- abq: PASS
-
-/ab{1,}bc/
-
-/ab+bc/
- abbbbc: PASS
-
-/ab{1,}bc/
- abbbbc: PASS
-
-/ab{1,3}bc/
- abbbbc: PASS
-
-/ab{3,4}bc/
- abbbbc: PASS
-
-/ab{4,5}bc/
- *** Failers
- abq: PASS
- abbbbc: PASS
-
-/ab?bc/
- abbc: PASS
- abc: PASS
-
-/ab{0,1}bc/
- abc: PASS
-
-/ab?bc/
-
-/ab?c/
- abc: PASS
-
-/ab{0,1}c/
- abc: PASS
-
-/^abc$/
- abc: PASS
- *** Failers
- abbbbc: PASS
- abcc: PASS
-
-/^abc/
- abcc: PASS
-
-/^abc$/
-
-/abc$/
- aabc: PASS
- *** Failers
- aabc: PASS
- aabcd: PASS
-
-/^/
- abc: PASS
-
-/$/
- abc: PASS
-
-/a.c/
- abc: PASS
- axc: PASS
-
-/a.*c/
- axyzc: PASS
-
-/a[bc]d/
- abd: PASS
- *** Failers
- axyzd: PASS
- abc: PASS
-
-/a[b-d]e/
- ace: PASS
-
-/a[b-d]/
- aac: PASS
-
-/a[-b]/
- a-: PASS
-
-/a[b-]/
- a-: PASS
-
-/a]/
- a]: PASS
-
-/a[]]b/
- a]b: FAIL. Actual results: "null"
-
-/a[^bc]d/
- aed: PASS
- *** Failers
- abd: PASS
- abd: PASS
-
-/a[^-b]c/
- adc: PASS
-
-/a[^]b]c/
- adc: FAIL. Actual results: "null"
- *** Failers
- a-c: FAIL. Actual results: "null"
- a]c: PASS
-
-/\ba\b/
- a-: PASS
- -a: PASS
- -a-: PASS
-
-/\by\b/
- *** Failers
- xy: PASS
- yz: PASS
- xyz: PASS
-
-/\Ba\B/
- *** Failers
- a-: PASS
- -a: PASS
- -a-: PASS
-
-/\By\b/
- xy: PASS
-
-/\by\B/
- yz: PASS
-
-/\By\B/
- xyz: PASS
-
-/\w/
- a: PASS
-
-/\W/
- -: PASS
- *** Failers
- -: PASS
- a: PASS
-
-/a\sb/
- a b: PASS
-
-/a\Sb/
- a-b: PASS
- *** Failers
- a-b: PASS
- a b: PASS
-
-/\d/
- 1: PASS
-
-/\D/
- -: PASS
- *** Failers
- -: PASS
- 1: PASS
-
-/[\w]/
- a: PASS
-
-/[\W]/
- -: PASS
- *** Failers
- -: PASS
- a: PASS
-
-/a[\s]b/
- a b: PASS
-
-/a[\S]b/
- a-b: PASS
- *** Failers
- a-b: PASS
- a b: PASS
-
-/[\d]/
- 1: PASS
-
-/[\D]/
- -: PASS
- *** Failers
- -: PASS
- 1: PASS
-
-/ab|cd/
- abc: PASS
- abcd: PASS
-
-/()ef/
- def: PASS
-
-/$b/
-
-/a\(b/
- a(b: PASS
-
-/a\(*b/
- ab: PASS
- a((b: PASS
-
-/a\\b/
- a\b: FAIL. Actual results: "a\b"
-
-/((a))/
- abc: PASS
-
-/(a)b(c)/
- abc: PASS
-
-/a+b+c/
- aabbabc: PASS
-
-/a{1,}b{1,}c/
- aabbabc: PASS
-
-/a.+?c/
- abcabc: PASS
-
-/(a+|b)*/
- ab: PASS
-
-/(a+|b){0,}/
- ab: PASS
-
-/(a+|b)+/
- ab: PASS
-
-/(a+|b){1,}/
- ab: PASS
-
-/(a+|b)?/
- ab: PASS
-
-/(a+|b){0,1}/
- ab: PASS
-
-/[^ab]*/
- cde: PASS
-
-/abc/
- *** Failers
- b: PASS
-
-
-FAILED TO COMPILE
-
-
-FAILED TO COMPILE
-
-/([abc])*bcd/
- abcd: PASS
-
-/a|b|c|d|e/
- e: PASS
-
-/(a|b|c|d|e)f/
- ef: PASS
-
-/abcd*efg/
- abcdefg: PASS
-
-/ab*/
- xabyabbbz: PASS
- xayabbbz: PASS
-
-/(ab|cd)e/
- abcde: PASS
-
-/[abhgefdc]ij/
- hij: PASS
-
-/^(ab|cd)e/
-
-/(abc|)ef/
- abcdef: PASS
-
-/(a|b)c*d/
- abcd: PASS
-
-/(ab|ab*)bc/
- abc: PASS
-
-/a([bc]*)c*/
- abc: PASS
-
-/a([bc]*)(c*d)/
- abcd: PASS
-
-/a([bc]+)(c*d)/
- abcd: PASS
-
-/a([bc]*)(c+d)/
- abcd: PASS
-
-/a[bcd]*dcdcde/
- adcdcde: PASS
-
-/a[bcd]+dcdcde/
- *** Failers
- abcde: PASS
- adcdcde: PASS
-
-/(ab|a)b*c/
- abc: PASS
-
-/((a)(b)c)(d)/
- abcd: PASS
-
-/[a-zA-Z_][a-zA-Z0-9_]*/
- alpha: PASS
-
-/^a(bc+|b[eh])g|.h$/
- abh: FAIL. Actual results: "bh,"
-
-/(bc+d$|ef*g.|h?i(j|k))/
- effgz: FAIL. Actual results: "effgz,effgz,"
- ij: PASS
- reffgz: FAIL. Actual results: "effgz,effgz,"
- *** Failers
- effg: PASS
- bcdd: PASS
-
-/((((((((((a))))))))))/
- a: PASS
-
-/((((((((((a))))))))))\10/
- aa: PASS
-
-/(((((((((a)))))))))/
- a: PASS
-
-/multiple words of text/
- *** Failers
- aa: PASS
- uh-uh: PASS
-
-/multiple words/
- multiple words, yeah: PASS
-
-/(.*)c(.*)/
- abcde: PASS
-
-/\((.*), (.*)\)/
- (a, b): PASS
-
-/[k]/
-
-/abcd/
- abcd: PASS
-
-/a(bc)d/
- abcd: PASS
-
-/a[-]?c/
- ac: PASS
-
-/(abc)\1/
- abcabc: PASS
-
-/([a-c]*)\1/
- abcabc: PASS
-
-/(a)|\1/
- a: PASS
- *** Failers: FAIL. Actual results: ","
- ab: PASS
- x: FAIL. Actual results: ","
-
-/(([a-c])b*?\2)*/
- ababbbcbc: PASS
-
-/(([a-c])b*?\2){3}/
- ababbbcbc: PASS
-
-/((\3|b)\2(a)x)+/
- aaaxabaxbaaxbbax: FAIL. Actual results: "ax,ax,,a"
-
-/((\3|b)\2(a)){2,}/
- bbaababbabaaaaabbaaaabba: PASS
-
-/abc/i
- ABC: PASS
- XABCY: PASS
- ABABC: PASS
- *** Failers
- aaxabxbaxbbx: PASS
- XBC: PASS
- AXC: PASS
- ABX: PASS
-
-/ab*c/i
- ABC: PASS
-
-/ab*bc/i
- ABC: PASS
- ABBC: PASS
-
-/ab*?bc/i
- ABBBBC: PASS
-
-/ab{0,}?bc/i
- ABBBBC: PASS
-
-/ab+?bc/i
- ABBC: PASS
-
-/ab+bc/i
- *** Failers
- ABC: PASS
- ABQ: PASS
-
-/ab{1,}bc/i
-
-/ab+bc/i
- ABBBBC: PASS
-
-/ab{1,}?bc/i
- ABBBBC: PASS
-
-/ab{1,3}?bc/i
- ABBBBC: PASS
-
-/ab{3,4}?bc/i
- ABBBBC: PASS
-
-/ab{4,5}?bc/i
- *** Failers
- ABQ: PASS
- ABBBBC: PASS
-
-/ab??bc/i
- ABBC: PASS
- ABC: PASS
-
-/ab{0,1}?bc/i
- ABC: PASS
-
-/ab??bc/i
-
-/ab??c/i
- ABC: PASS
-
-/ab{0,1}?c/i
- ABC: PASS
-
-/^abc$/i
- ABC: PASS
- *** Failers
- ABBBBC: PASS
- ABCC: PASS
-
-/^abc/i
- ABCC: PASS
-
-/^abc$/i
-
-/abc$/i
- AABC: PASS
-
-/^/i
- ABC: PASS
-
-/$/i
- ABC: PASS
-
-/a.c/i
- ABC: PASS
- AXC: PASS
-
-/a.*?c/i
- AXYZC: PASS
-
-/a.*c/i
- *** Failers
- AABC: PASS
- AXYZD: PASS
-
-/a[bc]d/i
- ABD: PASS
-
-/a[b-d]e/i
- ACE: PASS
- *** Failers
- ABC: PASS
- ABD: PASS
-
-/a[b-d]/i
- AAC: PASS
-
-/a[-b]/i
- A-: PASS
-
-/a[b-]/i
- A-: PASS
-
-/a]/i
- A]: PASS
-
-/a[]]b/i
- A]B: FAIL. Actual results: "null"
-
-/a[^bc]d/i
- AED: PASS
-
-/a[^-b]c/i
- ADC: PASS
- *** Failers
- ABD: PASS
- A-C: PASS
-
-/a[^]b]c/i
- ADC: FAIL. Actual results: "null"
-
-/ab|cd/i
- ABC: PASS
- ABCD: PASS
-
-/()ef/i
- DEF: PASS
-
-/$b/i
- *** Failers
- A]C: PASS
- B: PASS
-
-/a\(b/i
- A(B: PASS
-
-/a\(*b/i
- AB: PASS
- A((B: PASS
-
-/a\\b/i
- A\B: FAIL. Actual results: "A\B"
-
-/((a))/i
- ABC: PASS
-
-/(a)b(c)/i
- ABC: PASS
-
-/a+b+c/i
- AABBABC: PASS
-
-/a{1,}b{1,}c/i
- AABBABC: PASS
-
-/a.+?c/i
- ABCABC: PASS
-
-/a.*?c/i
- ABCABC: PASS
-
-/a.{0,5}?c/i
- ABCABC: PASS
-
-/(a+|b)*/i
- AB: PASS
-
-/(a+|b){0,}/i
- AB: PASS
-
-/(a+|b)+/i
- AB: PASS
-
-/(a+|b){1,}/i
- AB: PASS
-
-/(a+|b)?/i
- AB: PASS
-
-/(a+|b){0,1}/i
- AB: PASS
-
-/(a+|b){0,1}?/i
- AB: FAIL. Actual results: ","
-
-/[^ab]*/i
- CDE: PASS
-
-/abc/i
-
-/a*/i
-
-
-FAILED TO COMPILE
-
-/([abc])*bcd/i
- ABCD: PASS
-
-/a|b|c|d|e/i
- E: PASS
-
-/(a|b|c|d|e)f/i
- EF: PASS
-
-/abcd*efg/i
- ABCDEFG: PASS
-
-/ab*/i
- XABYABBBZ: PASS
- XAYABBBZ: PASS
-
-/(ab|cd)e/i
- ABCDE: PASS
-
-/[abhgefdc]ij/i
- HIJ: PASS
-
-/^(ab|cd)e/i
- ABCDE: PASS
-
-/(abc|)ef/i
- ABCDEF: PASS
-
-/(a|b)c*d/i
- ABCD: PASS
-
-/(ab|ab*)bc/i
- ABC: PASS
-
-/a([bc]*)c*/i
- ABC: PASS
-
-/a([bc]*)(c*d)/i
- ABCD: PASS
-
-/a([bc]+)(c*d)/i
- ABCD: PASS
-
-/a([bc]*)(c+d)/i
- ABCD: PASS
-
-/a[bcd]*dcdcde/i
- ADCDCDE: PASS
-
-/a[bcd]+dcdcde/i
-
-/(ab|a)b*c/i
- ABC: PASS
-
-/((a)(b)c)(d)/i
- ABCD: PASS
-
-/[a-zA-Z_][a-zA-Z0-9_]*/i
- ALPHA: PASS
-
-/^a(bc+|b[eh])g|.h$/i
- ABH: FAIL. Actual results: "BH,"
-
-/(bc+d$|ef*g.|h?i(j|k))/i
- EFFGZ: FAIL. Actual results: "EFFGZ,EFFGZ,"
- IJ: PASS
- REFFGZ: FAIL. Actual results: "EFFGZ,EFFGZ,"
- *** Failers
- ADCDCDE: PASS
- EFFG: PASS
- BCDD: PASS
-
-/((((((((((a))))))))))/i
- A: PASS
-
-/((((((((((a))))))))))\10/i
- AA: PASS
-
-/(((((((((a)))))))))/i
- A: PASS
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
- A: PASS
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
- C: PASS
-
-/multiple words of text/i
- *** Failers
- AA: PASS
- UH-UH: PASS
-
-/multiple words/i
- MULTIPLE WORDS, YEAH: PASS
-
-/(.*)c(.*)/i
- ABCDE: PASS
-
-/\((.*), (.*)\)/i
- (A, B): PASS
-
-/[k]/i
-
-/abcd/i
- ABCD: PASS
-
-/a(bc)d/i
- ABCD: PASS
-
-/a[-]?c/i
- AC: PASS
-
-/(abc)\1/i
- ABCABC: PASS
-
-/([a-c]*)\1/i
- ABCABC: PASS
-
-/a(?!b)./
- abad: PASS
-
-/a(?=d)./
- abad: PASS
-
-/a(?=c|d)./
- abad: PASS
-
-/a(?:b|c|d)(.)/
- ace: PASS
-
-/a(?:b|c|d)*(.)/
- ace: PASS
-
-/a(?:b|c|d)+?(.)/
- ace: PASS
- acdbcdbe: PASS
-
-/a(?:b|c|d)+(.)/
- acdbcdbe: PASS
-
-/a(?:b|c|d){2}(.)/
- acdbcdbe: PASS
-
-/a(?:b|c|d){4,5}(.)/
- acdbcdbe: PASS
-
-/a(?:b|c|d){4,5}?(.)/
- acdbcdbe: PASS
-
-/((foo)|(bar))*/
- foobar: PASS
-
-/a(?:b|c|d){6,7}(.)/
- acdbcdbe: PASS
-
-/a(?:b|c|d){6,7}?(.)/
- acdbcdbe: PASS
-
-/a(?:b|c|d){5,6}(.)/
- acdbcdbe: PASS
-
-/a(?:b|c|d){5,6}?(.)/
- acdbcdbe: PASS
-
-/a(?:b|c|d){5,7}(.)/
- acdbcdbe: PASS
-
-/a(?:b|c|d){5,7}?(.)/
- acdbcdbe: PASS
-
-/a(?:b|(c|e){1,2}?|d)+?(.)/
- ace: PASS
-
-/^(.+)?B/
- AB: PASS
-
-/^([^a-z])|(\^)$/
- .: FAIL. Actual results: ".,.,"
-
-/^[<>]&/
- <&OUT: PASS
-
-/^(a\1?){4}$/
- aaaaaaaaaa: PASS
- *** Failers
- AB: PASS
- aaaaaaaaa: PASS
- aaaaaaaaaaa: PASS
-
-/^(a(?(1)\1)){4}$/
-FAILED TO COMPILE
-
-/(?:(f)(o)(o)|(b)(a)(r))*/
- foobar: PASS
-
-/(?<=a)b/
-FAILED TO COMPILE
-
-/(?<!c)b/
-FAILED TO COMPILE
-
-/(?:..)*a/
- aba: PASS
-
-/(?:..)*?a/
- aba: PASS
-
-/^(?:b|a(?=(.)))*\1/
- abc: PASS
-
-/^(){3,5}/
- abc: PASS
-
-/^(a+)*ax/
- aax: PASS
-
-/^((a|b)+)*ax/
- aax: PASS
-
-/^((a|bc)+)*ax/
- aax: PASS
-
-/(a|x)*ab/
- cab: FAIL. Actual results: "ab,"
-
-/(a)*ab/
- cab: FAIL. Actual results: "ab,"
-
-/(?:(?i)a)b/
-FAILED TO COMPILE
-
-/((?i)a)b/
-FAILED TO COMPILE
-
-/(?:(?i)a)b/
-FAILED TO COMPILE
-
-/((?i)a)b/
-FAILED TO COMPILE
-
-/(?:(?i)a)b/
-FAILED TO COMPILE
-
-/((?i)a)b/
-FAILED TO COMPILE
-
-/(?i:a)b/
-FAILED TO COMPILE
-
-/((?i:a))b/
-FAILED TO COMPILE
-
-/(?i:a)b/
-FAILED TO COMPILE
-
-/((?i:a))b/
-FAILED TO COMPILE
-
-/(?i:a)b/
-FAILED TO COMPILE
-
-/((?i:a))b/
-FAILED TO COMPILE
-
-/(?:(?-i)a)b/i
-FAILED TO COMPILE
-
-/((?-i)a)b/i
-FAILED TO COMPILE
-
-/(?:(?-i)a)b/i
-FAILED TO COMPILE
-
-/((?-i)a)b/i
-FAILED TO COMPILE
-
-/(?:(?-i)a)b/i
-FAILED TO COMPILE
-
-/((?-i)a)b/i
-FAILED TO COMPILE
-
-/(?:(?-i)a)b/i
-FAILED TO COMPILE
-
-/((?-i)a)b/i
-FAILED TO COMPILE
-
-/(?:(?-i)a)b/i
-FAILED TO COMPILE
-
-/((?-i)a)b/i
-FAILED TO COMPILE
-
-/(?-i:a)b/i
-FAILED TO COMPILE
-
-/((?-i:a))b/i
-FAILED TO COMPILE
-
-/(?-i:a)b/i
-FAILED TO COMPILE
-
-/((?-i:a))b/i
-FAILED TO COMPILE
-
-/(?-i:a)b/i
-FAILED TO COMPILE
-
-/((?-i:a))b/i
-FAILED TO COMPILE
-
-/(?-i:a)b/i
-FAILED TO COMPILE
-
-/((?-i:a))b/i
-FAILED TO COMPILE
-
-/(?-i:a)b/i
-FAILED TO COMPILE
-
-/((?-i:a))b/i
-FAILED TO COMPILE
-
-/((?-i:a.))b/i
-FAILED TO COMPILE
-
-/((?s-i:a.))b/i
-FAILED TO COMPILE
-
-/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
- cabbbb: PASS
-
-/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
- caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb: PASS
-
-/(ab)\d\1/i
- Ab4ab: PASS
- ab4Ab: PASS
-
-/foo\w*\d{4}baz/
- foobar1234baz: PASS
-
-/x(~~)*(?:(?:F)?)?/
- x~~: PASS
-
-/^a(?#xxx){3}c/
-FAILED TO COMPILE
-
-/^a (?#xxx) (?#yyy) {3}c/x
-Unsupported modifiers: x
-
-/(?<![cd])b/
-FAILED TO COMPILE
-
-/(?<![cd])[ab]/
-FAILED TO COMPILE
-
-/(?<!(c|d))b/
-FAILED TO COMPILE
-
-/(?<!(c|d))[ab]/
-FAILED TO COMPILE
-
-/(?<!cd)[ab]/
-FAILED TO COMPILE
-
-/^(?:a?b?)*$/
- \: FAIL. Actual results: "null"
- a: PASS
- ab: PASS
- aaa: PASS
- *** Failers
- dbcb: PASS
- a--: PASS
- aa--: PASS
-
-/((?s)^a(.))((?m)^b$)/
-FAILED TO COMPILE
-
-/((?m)^b$)/
-FAILED TO COMPILE
-
-/(?m)^b/
-FAILED TO COMPILE
-
-/(?m)^(b)/
-FAILED TO COMPILE
-
-/((?m)^b)/
-FAILED TO COMPILE
-
-/\n((?m)^b)/
-FAILED TO COMPILE
-
-/((?s).)c(?!.)/
-FAILED TO COMPILE
-
-/((?s)b.)c(?!.)/
-FAILED TO COMPILE
-
-/^b/
-
-/()^b/
- *** Failers
- a\nb\nc\n: PASS
- a\nb\nc\n: PASS
-
-/((?m)^b)/
-FAILED TO COMPILE
-
-/(?(1)a|b)/
-FAILED TO COMPILE
-
-/(?(1)b|a)/
-FAILED TO COMPILE
-
-/(x)?(?(1)a|b)/
-FAILED TO COMPILE
-
-/(x)?(?(1)b|a)/
-FAILED TO COMPILE
-
-/()?(?(1)b|a)/
-FAILED TO COMPILE
-
-/()(?(1)b|a)/
-FAILED TO COMPILE
-
-/()?(?(1)a|b)/
-FAILED TO COMPILE
-
-/^(\()?blah(?(1)(\)))$/
-FAILED TO COMPILE
-
-/^(\(+)?blah(?(1)(\)))$/
-FAILED TO COMPILE
-
-/(?(?!a)a|b)/
-FAILED TO COMPILE
-
-/(?(?!a)b|a)/
-FAILED TO COMPILE
-
-/(?(?=a)b|a)/
-FAILED TO COMPILE
-
-/(?(?=a)a|b)/
-FAILED TO COMPILE
-
-/(?=(a+?))(\1ab)/
- aaab: PASS
-
-/^(?=(a+?))\1ab/
-
-/(\w+:)+/
- one:: PASS
-
-/$(?<=^(a))/
-FAILED TO COMPILE
-
-/(?=(a+?))(\1ab)/
- aaab: PASS
-
-/^(?=(a+?))\1ab/
- *** Failers
- aaab: PASS
- aaab: PASS
-
-/([\w:]+::)?(\w+)$/
- abcd: PASS
- xy:z:::abcd: PASS
-
-/^[^bcd]*(c+)/
- aexycd: PASS
-
-/(a*)b+/
- caab: PASS
-
-/([\w:]+::)?(\w+)$/
- abcd: PASS
- xy:z:::abcd: PASS
- *** Failers
- abcd:: PASS
- abcd:: PASS
-
-/^[^bcd]*(c+)/
- aexycd: PASS
-
-/(>a+)ab/
-
-/(?>a+)b/
-FAILED TO COMPILE
-
-/([[:]+)/
- a:[b]:: PASS
-
-/([[=]+)/
- a=[b]=: PASS
-
-/([[.]+)/
- a.[b].: PASS
-
-/((?>a+)b)/
-FAILED TO COMPILE
-
-/(?>(a+))b/
-FAILED TO COMPILE
-
-/((?>[^()]+)|\([^()]*\))+/
-FAILED TO COMPILE
-
-/a\Z/
- *** Failers
- aaab: PASS
- a\nb\n: PASS
-
-/b\Z/
- a\nb\n: FAIL. Actual results: "null"
-
-/b\z/
-
-/b\Z/
- a\nb: FAIL. Actual results: "null"
-
-/b\z/
- a\nb: FAIL. Actual results: "null"
- *** Failers
-
-/^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
-FAILED TO COMPILE
-
-/(?>.*)(?<=(abcd|wxyz))/
-FAILED TO COMPILE
-
-/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
-FAILED TO COMPILE
-
-/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
-FAILED TO COMPILE
-
-/(?<=\d{3}(?!999))foo/
-FAILED TO COMPILE
-
-/(?<=(?!...999)\d{3})foo/
-FAILED TO COMPILE
-
-/(?<=\d{3}(?!999)...)foo/
-FAILED TO COMPILE
-
-/(?<=\d{3}...)(?<!999)foo/
-FAILED TO COMPILE
-
-/<a[\s]+href[\s]*=[\s]* # find <a href=
- ([\"\'])? # find single or double quote
- (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
- # quote, otherwise match up to next space
-/isx
-FAILED TO COMPILE
-
-/<a\s+href\s*=\s* # find <a href=
- (["'])? # find single or double quote
- (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
- # quote, otherwise match up to next space
-/isx
-FAILED TO COMPILE
-
-/<a\s+href(?>\s*)=(?>\s*) # find <a href=
- (["'])? # find single or double quote
- (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
- # quote, otherwise match up to next space
-/isx
-FAILED TO COMPILE
-
-/((Z)+|A)*/
- ZABCDEFG: PASS
-
-/(Z()|A)*/
- ZABCDEFG: PASS
-
-/(Z(())|A)*/
- ZABCDEFG: PASS
-
-/((?>Z)+|A)*/
-FAILED TO COMPILE
-
-/((?>)+|A)*/
-FAILED TO COMPILE
-
-/a*/g
- abbab: PASS
- abbab: PASS
- abbab: PASS
- abbab: FAIL. Actual results: ""
- abbab: PASS
- abbab: PASS
-
-/^[a-\d]/
-FAILED TO COMPILE
-
-/^[\d-a]/
-FAILED TO COMPILE
-
-/[[:space:]]+/
- >
-
<: FAIL. Actual results: "null"
-
-/[[:blank:]]+/
- >
-
<: FAIL. Actual results: "null"
-
-/[\s]+/
- >
-
<: FAIL. Actual results: "
-
"
-
-/\s+/
- >
-
<: FAIL. Actual results: "
-
"
-
-/ab/x
-Unsupported modifiers: x
-
-/(?!\A)x/m
- a\nxb\n: PASS
-
-/(?!^)x/m
- a\nxb\n: FAIL. Actual results: "x"
-
-/abc\Qabc\Eabc/
- abcabcabc: FAIL. Actual results: "null"
-
-/abc\Q(*+|\Eabc/
-FAILED TO COMPILE
-
-/ abc\Q abc\Eabc/x
-Unsupported modifiers: x
-
-/abc#comment
- \Q#not comment
- literal\E/x
-FAILED TO COMPILE
-
-/abc#comment
- \Q#not comment
- literal/x
-FAILED TO COMPILE
-
-/abc#comment
- \Q#not comment
- literal\E #more comment
- /x
-FAILED TO COMPILE
-
-/abc#comment
- \Q#not comment
- literal\E #more comment/x
-FAILED TO COMPILE
-
-/\Qabc\$xyz\E/
- abc\\\$xyz: FAIL. Actual results: "null"
-
-/\Qabc\E\$\Qxyz\E/
- abc\$xyz: FAIL. Actual results: "null"
-
-/\Gabc/
- abc: FAIL. Actual results: "null"
- *** Failers
- xyzabc: PASS
-
-/\Gabc./g
- abc1abc2xyzabc3: FAIL. Actual results: "null"
- abc1abc2xyzabc3: FAIL. Actual results: "null"
-
-/abc./g
- abc1abc2xyzabc3: PASS
- abc1abc2xyzabc3: PASS
- abc1abc2xyzabc3: PASS
-
-/a(?x: b c )d/
-FAILED TO COMPILE
-
-/((?x)x y z | a b c)/
-FAILED TO COMPILE
-
-/(?i)AB(?-i)C/
-FAILED TO COMPILE
-
-/((?i)AB(?-i)C|D)E/
-FAILED TO COMPILE
-
-/(.*)\d+\1/
- abc123abc: PASS
- abc123bc: PASS
-
-/(.*)\d+\1/s
- abc123abc: PASS
- abc123bc: PASS
-
-/((.*))\d+\1/
- abc123abc: PASS
- abc123bc: PASS
-
-/-- This tests for an IPv6 address in the form where it can have up to --/
-/-- eight components, one and only one of which is empty. This must be --/: PASS
-/-- an internal component. --/: PASS
-
-/^(?!:) # colon disallowed at start
- (?: # start of item
- (?: [0-9a-f]{1,4} | # 1-4 hex digits or
- (?(1)0 | () ) ) # if null previously matched, fail; else null
- : # followed by colon
- ){1,7} # end item; 1-7 of them required
- [0-9a-f]{1,4} $ # final hex number at end of string
- (?(1)|.) # check that there was an empty component
- /xi
-FAILED TO COMPILE
-
-/[z\Qa-d]\E]/
- z: FAIL. Actual results: "null"
- a: FAIL. Actual results: "null"
- -: FAIL. Actual results: "null"
- d: FAIL. Actual results: "null"
- ]: FAIL. Actual results: "null"
- *** Failers: FAIL. Actual results: "null"
- b: PASS
-
-/[\z\C]/
- z: PASS
- C: PASS
-
-/\M/
- M: PASS
-
-/(a+)*b/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: PASS
-
-/(?i)reg(?:ul(?:[aä]|ae)r|ex)/
-FAILED TO COMPILE
-
-/Åæåä[à-ÿÀ-ß]+/
- Åæåäà: PASS
- Åæåäÿ: PASS
- ÅæåäÀ: PASS
- Åæåäß: PASS
-
-/(?<=Z)X./
-FAILED TO COMPILE
-
-/ab cd (?x) de fg/
-FAILED TO COMPILE
-
-/ab cd(?x) de fg/
-FAILED TO COMPILE
-
-/(?<![^f]oo)(bar)/
-FAILED TO COMPILE
-
-/(?<![^f])X/
-FAILED TO COMPILE
-
-/(?<=[^f])X/
-FAILED TO COMPILE
-
-/^/mg
- a\nb\nc\n: PASS
- a\nb\nc\n: PASS
- a\nb\nc\n: PASS
- \: PASS
-
-/(?<=C\n)^/mg
-FAILED TO COMPILE
-
-/(?:(?(1)a|b)(X))+/
-FAILED TO COMPILE
-
-/(?:(?(1)\1a|b)(X|Y))+/
-FAILED TO COMPILE
-
-/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
-FAILED TO COMPILE
-
-/[[,abc,]+]/
- abc]: PASS
- a,b]: PASS
- [a,b,c]: PASS
-
-/(?-x: )/x
-Unsupported modifiers: x
-
-"(?x)(?-x: \s*#\s*)"
-FAILED TO COMPILE
-
-"(?x-is)(?:(?-ixs) \s*#\s*) include"
-FAILED TO COMPILE
-
-/a*b*\w/
- aaabbbb: PASS
- aaaa: PASS
- a: PASS
-
-/a*b?\w/
- aaabbbb: PASS
- aaaa: PASS
- a: PASS
-
-/a*b{0,4}\w/
- aaabbbb: PASS
- aaaa: PASS
- a: PASS
-
-/a*b{0,}\w/
- aaabbbb: PASS
- aaaa: PASS
- a: PASS
-
-/a*\d*\w/
- 0a: PASS
- a: PASS
-
-/a*b *\w/x
-Unsupported modifiers: x
-
-/a*b#comment
- *\w/x
-FAILED TO COMPILE
-
-/a* b *\w/x
-Unsupported modifiers: x
-
-/^\w+=.*(\\\n.*)*/
- abc=xyz\\\npqr: FAIL. Actual results: "abc=xyz\\\npqr,"
-
-/(?=(\w+))\1:/
- abcd:: PASS
-
-/^(?=(\w+))\1:/
- abcd:: PASS
-
-/^\Eabc/
- abc: FAIL. Actual results: "null"
-
-/^[\Eabc]/
- a: PASS
- ** Failers: PASS
- E: FAIL. Actual results: "E"
-
-/^[a-\Ec]/
-FAILED TO COMPILE
-
-/^[a\E\E-\Ec]/
- b: FAIL. Actual results: "null"
- ** Failers: PASS
- -: PASS
- E: FAIL. Actual results: "E"
-
-/^[\E\Qa\E-\Qz\E]+/
- b: FAIL. Actual results: "null"
- ** Failers: PASS
- -: PASS
-
-/^[a\Q]bc\E]/
- a: FAIL. Actual results: "null"
- ]: FAIL. Actual results: "null"
- c: FAIL. Actual results: "null"
-
-/^[a-\Q\E]/
-FAILED TO COMPILE
-
-/^(a()*)*/
- aaaa: PASS
-
-/^(?:a(?:(?:))*)*/
- aaaa: PASS
-
-/^(a()+)+/
- aaaa: PASS
-
-/^(?:a(?:(?:))+)+/
- aaaa: PASS
-
-/(a){0,3}(?(1)b|(c|))*D/
-FAILED TO COMPILE
-
-/(a|)*\d/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: PASS
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4: PASS
-
-/(?>a|)*\d/
-FAILED TO COMPILE
-
-/(?:a|)*\d/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: PASS
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4: PASS
-
-/\Z/g
- abc\n: FAIL. Actual results: "null"
- abc\n: FAIL. Actual results: "null"
-
-/^(?s)(?>.*)(?<!\n)/
-FAILED TO COMPILE
-
-/^(?![^\n]*\n\z)/
- abc: PASS
- abc\n: FAIL. Actual results: ""
-
-/\z(?<!\n)/
-FAILED TO COMPILE
-
-/(.*(.)?)*/
- abcd: PASS
-
-/( (A | (?(1)0|) )* )/x
-Unsupported modifiers: x
-
-/( ( (?(1)0|) )* )/x
-Unsupported modifiers: x
-
-/( (?(1)0|)* )/x
-Unsupported modifiers: x
-
-/[[:abcd:xyz]]/
- a]: PASS
- :]: PASS
-
-/[abc[:x\]pqr]/
- a: PASS
- [: PASS
- :: PASS
- ]: PASS
- p: PASS
-
-DONE
-
diff --git a/LayoutTests/fast/regex/test1.html b/LayoutTests/fast/regex/test1.html
deleted file mode 100644
index 2ed2c55..0000000
--- a/LayoutTests/fast/regex/test1.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<head>
-<script src="pcre-test-runner.js"></script>
-<script>
-function runTest() {
- runPCRETest(1, "Test 1: main functionality.");
-}
-</script>
-</head>
-<body onload = 'runTest()'>
-</body>
diff --git a/LayoutTests/fast/regex/test4-expected.txt b/LayoutTests/fast/regex/test4-expected.txt
deleted file mode 100644
index 2b39479..0000000
Binary files a/LayoutTests/fast/regex/test4-expected.txt and /dev/null differ
diff --git a/LayoutTests/fast/regex/test4.html b/LayoutTests/fast/regex/test4.html
deleted file mode 100644
index d1cccfd..0000000
--- a/LayoutTests/fast/regex/test4.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<head>
-<script src="pcre-test-runner.js"></script>
-<script>
-function runTest() {
- runPCRETest(4, "Test 4: UTF-8 support.");
-}
-</script>
-</head>
-<body onload = 'runTest()'>
-</body>
diff --git a/LayoutTests/fast/regex/testinput1 b/LayoutTests/fast/regex/testinput1
deleted file mode 100644
index 60c41c3..0000000
--- a/LayoutTests/fast/regex/testinput1
+++ /dev/null
@@ -1,3248 +0,0 @@
-/the quick brown fox/
- the quick brown fox
- The quick brown FOX
- What do you know about the quick brown fox?
- What do you know about THE QUICK BROWN FOX?
-
-/The quick brown fox/i
- the quick brown fox
- The quick brown FOX
- What do you know about the quick brown fox?
- What do you know about THE QUICK BROWN FOX?
-
-/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
- abcd\t\n\r\f\a\e9;\$\\?caxyz
-
-/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
- abxyzpqrrrabbxyyyypqAzz
- abxyzpqrrrabbxyyyypqAzz
- aabxyzpqrrrabbxyyyypqAzz
- aaabxyzpqrrrabbxyyyypqAzz
- aaaabxyzpqrrrabbxyyyypqAzz
- abcxyzpqrrrabbxyyyypqAzz
- aabcxyzpqrrrabbxyyyypqAzz
- aaabcxyzpqrrrabbxyyyypAzz
- aaabcxyzpqrrrabbxyyyypqAzz
- aaabcxyzpqrrrabbxyyyypqqAzz
- aaabcxyzpqrrrabbxyyyypqqqAzz
- aaabcxyzpqrrrabbxyyyypqqqqAzz
- aaabcxyzpqrrrabbxyyyypqqqqqAzz
- aaabcxyzpqrrrabbxyyyypqqqqqqAzz
- aaaabcxyzpqrrrabbxyyyypqAzz
- abxyzzpqrrrabbxyyyypqAzz
- aabxyzzzpqrrrabbxyyyypqAzz
- aaabxyzzzzpqrrrabbxyyyypqAzz
- aaaabxyzzzzpqrrrabbxyyyypqAzz
- abcxyzzpqrrrabbxyyyypqAzz
- aabcxyzzzpqrrrabbxyyyypqAzz
- aaabcxyzzzzpqrrrabbxyyyypqAzz
- aaaabcxyzzzzpqrrrabbxyyyypqAzz
- aaaabcxyzzzzpqrrrabbbxyyyypqAzz
- aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
- aaabcxyzpqrrrabbxyyyypABzz
- aaabcxyzpqrrrabbxyyyypABBzz
- >>>aaabxyzpqrrrabbxyyyypqAzz
- >aaaabxyzpqrrrabbxyyyypqAzz
- >>>>abcxyzpqrrrabbxyyyypqAzz
- *** Failers
- abxyzpqrrabbxyyyypqAzz
- abxyzpqrrrrabbxyyyypqAzz
- abxyzpqrrrabxyyyypqAzz
- aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
- aaaabcxyzzzzpqrrrabbbxyyypqAzz
- aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
-
-/^(abc){1,2}zz/
- abczz
- abcabczz
- *** Failers
- zz
- abcabcabczz
- >>abczz
-
-/^(b+?|a){1,2}?c/
- bc
- bbc
- bbbc
- bac
- bbac
- aac
- abbbbbbbbbbbc
- bbbbbbbbbbbac
- *** Failers
- aaac
- abbbbbbbbbbbac
-
-/^(b+|a){1,2}c/
- bc
- bbc
- bbbc
- bac
- bbac
- aac
- abbbbbbbbbbbc
- bbbbbbbbbbbac
- *** Failers
- aaac
- abbbbbbbbbbbac
-
-/^(b+|a){1,2}?bc/
- bbc
-
-/^(b*|ba){1,2}?bc/
- babc
- bbabc
- bababc
- *** Failers
- bababbc
- babababc
-
-/^(ba|b*){1,2}?bc/
- babc
- bbabc
- bababc
- *** Failers
- bababbc
- babababc
-
-/^\ca\cA\c[\c{\c:/
- \x01\x01\e;z
-
-/^[ab\]cde]/
- athing
- bthing
- ]thing
- cthing
- dthing
- ething
- *** Failers
- fthing
- [thing
- \\thing
-
-/^[]cde]/
- ]thing
- cthing
- dthing
- ething
- *** Failers
- athing
- fthing
-
-/^[^ab\]cde]/
- fthing
- [thing
- \\thing
- *** Failers
- athing
- bthing
- ]thing
- cthing
- dthing
- ething
-
-/^[^]cde]/
- athing
- fthing
- *** Failers
- ]thing
- cthing
- dthing
- ething
-
-/^\/
-
-
-/^ÿ/
- ÿ
-
-/^[0-9]+$/
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 100
- *** Failers
- abc
-
-/^.*nter/
- enter
- inter
- uponter
-
-/^xxx[0-9]+$/
- xxx0
- xxx1234
- *** Failers
- xxx
-
-/^.+[0-9][0-9][0-9]$/
- x123
- xx123
- 123456
- *** Failers
- 123
- x1234
-
-/^.+?[0-9][0-9][0-9]$/
- x123
- xx123
- 123456
- *** Failers
- 123
- x1234
-
-/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
- abc!pqr=apquxz.ixr.zzz.ac.uk
- *** Failers
- !pqr=apquxz.ixr.zzz.ac.uk
- abc!=apquxz.ixr.zzz.ac.uk
- abc!pqr=apquxz:ixr.zzz.ac.uk
- abc!pqr=apquxz.ixr.zzz.ac.ukk
-
-/:/
- Well, we need a colon: somewhere
- *** Fail if we don't
-
-/([\da-f:]+)$/i
- 0abc
- abc
- fed
- E
- ::
- 5f03:12C0::932e
- fed def
- Any old stuff
- *** Failers
- 0zzz
- gzzz
- fed\x20
- Any old rubbish
-
-/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
- .1.2.3
- A.12.123.0
- *** Failers
- .1.2.3333
- 1.2.3
- 1234.2.3
-
-/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
- 1 IN SOA non-sp1 non-sp2(
- 1 IN SOA non-sp1 non-sp2 (
- *** Failers
- 1IN SOA non-sp1 non-sp2(
-
-/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
- a.
- Z.
- 2.
- ab-c.pq-r.
- sxk.zzz.ac.uk.
- x-.y-.
- *** Failers
- -abc.peq.
-
-/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
- *.a
- *.b0-a
- *.c3-b.c
- *.c-a.b-c
- *** Failers
- *.0
- *.a-
- *.a-b.c-
- *.c-a.0-c
-
-/^(?=ab(de))(abd)(e)/
- abde
-
-/^(?!(ab)de|x)(abd)(f)/
- abdf
-
-/^(?=(ab(cd)))(ab)/
- abcd
-
-/^[\da-f](\.[\da-f])*$/i
- a.b.c.d
- A.B.C.D
- a.b.c.1.2.3.C
-
-/^\".*\"\s*(;.*)?$/
- \"1234\"
- \"abcd\" ;
- \"\" ; rhubarb
- *** Failers
- \"1234\" : things
-
-/^$/
- \
- *** Failers
-
-/ ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
- ab c
- *** Failers
- abc
- ab cde
-
-/(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
- ab c
- *** Failers
- abc
- ab cde
-
-/^ a\ b[c ]d $/x
- a bcd
- a b d
- *** Failers
- abcd
- ab d
-
-/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
- abcdefhijklm
-
-/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
- abcdefhijklm
-
-/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
- a+ Z0+\x08\n\x1d\x12
-
-/^[.^$|()*+?{,}]+/
- .^\$(*+)|{?,?}
-
-/^a*\w/
- z
- az
- aaaz
- a
- aa
- aaaa
- a+
- aa+
-
-/^a*?\w/
- z
- az
- aaaz
- a
- aa
- aaaa
- a+
- aa+
-
-/^a+\w/
- az
- aaaz
- aa
- aaaa
- aa+
-
-/^a+?\w/
- az
- aaaz
- aa
- aaaa
- aa+
-
-/^\d{8}\w{2,}/
- 1234567890
- 12345678ab
- 12345678__
- *** Failers
- 1234567
-
-/^[aeiou\d]{4,5}$/
- uoie
- 1234
- 12345
- aaaaa
- *** Failers
- 123456
-
-/^[aeiou\d]{4,5}?/
- uoie
- 1234
- 12345
- aaaaa
- 123456
-
-/\A(abc|def)=(\1){2,3}\Z/
- abc=abcabc
- def=defdefdef
- *** Failers
- abc=defdef
-
-/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
- abcdefghijkcda2
- abcdefghijkkkkcda2
-
-/(cat(a(ract|tonic)|erpillar)) \1()2(3)/
- cataract cataract23
- catatonic catatonic23
- caterpillar caterpillar23
-
-
-/^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]/
- From abcd Mon Sep 01 12:33:02 1997
-
-/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
- From abcd Mon Sep 01 12:33:02 1997
- From abcd Mon Sep 1 12:33:02 1997
- *** Failers
- From abcd Sep 01 12:33:02 1997
-
-/^12.34/s
- 12\n34
- 12\r34
-
-/\w+(?=\t)/
- the quick brown\t fox
-
-/foo(?!bar)(.*)/
- foobar is foolish see?
-
-/(?:(?!foo)...|^.{0,2})bar(.*)/
- foobar crowbar etc
- barrel
- 2barrel
- A barrel
-
-/^(\D*)(?=\d)(?!123)/
- abc456
- *** Failers
- abc123
-
-/^1234(?# test newlines
- inside)/
- 1234
-
-/^1234 #comment in extended re
- /x
- 1234
-
-/#rhubarb
- abcd/x
- abcd
-
-/^abcd#rhubarb/x
- abcd
-
-/^(a)\1{2,3}(.)/
- aaab
- aaaab
- aaaaab
- aaaaaab
-
-/(?!^)abc/
- the abc
- *** Failers
- abc
-
-/(?=^)abc/
- abc
- *** Failers
- the abc
-
-/^[ab]{1,3}(ab*|b)/
- aabbbbb
-
-/^[ab]{1,3}?(ab*|b)/
- aabbbbb
-
-/^[ab]{1,3}?(ab*?|b)/
- aabbbbb
-
-/^[ab]{1,3}(ab*?|b)/
- aabbbbb
-
-/abc\0def\00pqr\000xyz\0000AB/
- abc\0def\00pqr\000xyz\0000AB
- abc456 abc\0def\00pqr\000xyz\0000ABCDE
-
-/abc\x0def\x00pqr\x000xyz\x0000AB/
- abc\x0def\x00pqr\x000xyz\x0000AB
- abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
-
-/^[\000-\037]/
- \0A
- \01B
- \037C
-
-/\0*/
- \0\0\0\0
-
-/A\x0{2,3}Z/
- The A\x0\x0Z
- An A\0\x0\0Z
- *** Failers
- A\0Z
- A\0\x0\0\x0Z
-
-/^(cow|)\1(bell)/
- cowcowbell
- bell
- *** Failers
- cowbell
-
-/^\s/
- \040abc
- \x0cabc
- \nabc
- \rabc
- \tabc
- *** Failers
- abc
-
-/^a b
- c/x
- abc
-
-/^(a|)\1*b/
- ab
- aaaab
- b
- *** Failers
- acb
-
-/^(a|)\1+b/
- aab
- aaaab
- b
- *** Failers
- ab
-
-/^(a|)\1?b/
- ab
- aab
- b
- *** Failers
- acb
-
-/^(a|)\1{2}b/
- aaab
- b
- *** Failers
- ab
- aab
- aaaab
-
-/^(a|)\1{2,3}b/
- aaab
- aaaab
- b
- *** Failers
- ab
- aab
- aaaaab
-
-/ab{1,3}bc/
- abbbbc
- abbbc
- abbc
- *** Failers
- abc
- abbbbbc
-
-/([^.]*)\.([^:]*):[T ]+(.*)/
- track1.title:TBlah blah blah
-
-/([^.]*)\.([^:]*):[T ]+(.*)/i
- track1.title:TBlah blah blah
-
-/([^.]*)\.([^:]*):[t ]+(.*)/i
- track1.title:TBlah blah blah
-
-/^[W-c]+$/
- WXY_^abc
- *** Failers
- wxy
-
-/^[W-c]+$/i
- WXY_^abc
- wxy_^ABC
-
-/^[\x3f-\x5F]+$/i
- WXY_^abc
- wxy_^ABC
-
-/^abc$/m
- abc
- qqq\nabc
- abc\nzzz
- qqq\nabc\nzzz
-
-/^abc$/
- abc
- *** Failers
- qqq\nabc
- abc\nzzz
- qqq\nabc\nzzz
-
-/\Aabc\Z/m
- abc
- abc\n
- *** Failers
- qqq\nabc
- abc\nzzz
- qqq\nabc\nzzz
-
-/\A(.)*\Z/s
- abc\ndef
-
-/\A(.)*\Z/m
- *** Failers
- abc\ndef
-
-/(?:b)|(?::+)/
- b::c
- c::b
-
-/[-az]+/
- az-
- *** Failers
- b
-
-/[az-]+/
- za-
- *** Failers
- b
-
-/[a\-z]+/
- a-z
- *** Failers
- b
-
-/[a-z]+/
- abcdxyz
-
-/[\d-]+/
- 12-34
- *** Failers
- aaa
-
-/[\d-z]+/
- 12-34z
- *** Failers
- aaa
-
-/\x5c/
- \\
-
-/\x20Z/
- the Zoo
- *** Failers
- Zulu
-
-/(abc)\1/i
- abcabc
- ABCabc
- abcABC
-
-/ab{3cd/
- ab{3cd
-
-/ab{3,cd/
- ab{3,cd
-
-/ab{3,4a}cd/
- ab{3,4a}cd
-
-/{4,5a}bc/
- {4,5a}bc
-
-/abc$/
- abc
- abc\n
- *** Failers
- abc\ndef
-
-/(abc)\123/
- abc\x53
-
-/(abc)\223/
- abc\x93
-
-/(abc)\323/
- abc\xd3
-
-/(abc)\100/
- abc\x40
- abc\100
-
-/(abc)\1000/
- abc\x400
- abc\x40\x30
- abc\1000
- abc\100\x30
- abc\100\060
- abc\100\60
-
-/abc\81/
- abc\081
- abc\0\x38\x31
-
-/abc\91/
- abc\091
- abc\0\x39\x31
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
- abcdefghijkllS
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
- abcdefghijk\12S
-
-/ab\idef/
- abidef
-
-/a{0}bc/
- bc
-
-/(a|(bc)){0,0}?xyz/
- xyz
-
-/abc[\10]de/
- abc\010de
-
-/abc[\1]de/
- abc\1de
-
-/(abc)[\1]de/
- abc\1de
-
-/(?s)a.b/
- a\nb
-
-/^([^a])([^\b])([^c]*)([^d]{3,4})/
- baNOTccccd
- baNOTcccd
- baNOTccd
- bacccd
- *** Failers
- anything
- b\bc
- baccd
-
-/[^a]/
- Abc
-
-/[^a]/i
- Abc
-
-/[^a]+/
- AAAaAbc
-
-/[^a]+/i
- AAAaAbc
-
-/[^a]+/
- bbb\nccc
-
-/[^k]$/
- abc
- *** Failers
- abk
-
-/[^k]{2,3}$/
- abc
- kbc
- kabc
- *** Failers
- abk
- akb
- akk
-
-/^\d{8,}\@.+[^k]$/
- 12345678\@a.b.c.d
- 123456789\@x.y.z
- *** Failers
- 12345678\@x.y.uk
- 1234567\@a.b.c.d
-
-/(a)\1{8,}/
- aaaaaaaaa
- aaaaaaaaaa
- *** Failers
- aaaaaaa
-
-/[^a]/
- aaaabcd
- aaAabcd
-
-/[^a]/i
- aaaabcd
- aaAabcd
-
-/[^az]/
- aaaabcd
- aaAabcd
-
-/[^az]/i
- aaaabcd
- aaAabcd
-
-/\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/
- \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
-
-/P[^*]TAIRE[^*]{1,6}?LL/
- xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
-
-/P[^*]TAIRE[^*]{1,}?LL/
- xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
-
-/(\.\d\d[1-9]?)\d+/
- 1.230003938
- 1.875000282
- 1.235
-
-/(\.\d\d((?=0)|\d(?=\d)))/
- 1.230003938
- 1.875000282
- *** Failers
- 1.235
-
-/a(?)b/
- ab
-
-/\b(foo)\s+(\w+)/i
- Food is on the foo table
-
-/foo(.*)bar/
- The food is under the bar in the barn.
-
-/foo(.*?)bar/
- The food is under the bar in the barn.
-
-/(.*)(\d*)/
- I have 2 numbers: 53147
-
-/(.*)(\d+)/
- I have 2 numbers: 53147
-
-/(.*?)(\d*)/
- I have 2 numbers: 53147
-
-/(.*?)(\d+)/
- I have 2 numbers: 53147
-
-/(.*)(\d+)$/
- I have 2 numbers: 53147
-
-/(.*?)(\d+)$/
- I have 2 numbers: 53147
-
-/(.*)\b(\d+)$/
- I have 2 numbers: 53147
-
-/(.*\D)(\d+)$/
- I have 2 numbers: 53147
-
-/^\D*(?!123)/
- ABC123
-
-/^(\D*)(?=\d)(?!123)/
- ABC445
- *** Failers
- ABC123
-
-/^[W-]46]/
- W46]789
- -46]789
- *** Failers
- Wall
- Zebra
- 42
- [abcd]
- ]abcd[
-
-/^[W-\]46]/
- W46]789
- Wall
- Zebra
- Xylophone
- 42
- [abcd]
- ]abcd[
- \\backslash
- *** Failers
- -46]789
- well
-
-/\d\d\/\d\d\/\d\d\d\d/
- 01/01/2000
-
-/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
- word cat dog elephant mussel cow horse canary baboon snake shark otherword
- word cat dog elephant mussel cow horse canary baboon snake shark
-
-/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
- 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
-
-/^(a){0,0}/
- bcd
- abc
- aab
-
-/^(a){0,1}/
- bcd
- abc
- aab
-
-/^(a){0,2}/
- bcd
- abc
- aab
-
-/^(a){0,3}/
- bcd
- abc
- aab
- aaa
-
-/^(a){0,}/
- bcd
- abc
- aab
- aaa
- aaaaaaaa
-
-/^(a){1,1}/
- bcd
- abc
- aab
-
-/^(a){1,2}/
- bcd
- abc
- aab
-
-/^(a){1,3}/
- bcd
- abc
- aab
- aaa
-
-/^(a){1,}/
- bcd
- abc
- aab
- aaa
- aaaaaaaa
-
-/.*\.gif/
- borfle\nbib.gif\nno
-
-/.{0,}\.gif/
- borfle\nbib.gif\nno
-
-/.*\.gif/m
- borfle\nbib.gif\nno
-
-/.*\.gif/s
- borfle\nbib.gif\nno
-
-/.*\.gif/ms
- borfle\nbib.gif\nno
-
-/.*$/
- borfle\nbib.gif\nno
-
-/.*$/m
- borfle\nbib.gif\nno
-
-/.*$/s
- borfle\nbib.gif\nno
-
-/.*$/ms
- borfle\nbib.gif\nno
-
-/.*$/
- borfle\nbib.gif\nno\n
-
-/.*$/m
- borfle\nbib.gif\nno\n
-
-/.*$/s
- borfle\nbib.gif\nno\n
-
-/.*$/ms
- borfle\nbib.gif\nno\n
-
-/(.*X|^B)/
- abcde\n1234Xyz
- BarFoo
- *** Failers
- abcde\nBar
-
-/(.*X|^B)/m
- abcde\n1234Xyz
- BarFoo
- abcde\nBar
-
-/(.*X|^B)/s
- abcde\n1234Xyz
- BarFoo
- *** Failers
- abcde\nBar
-
-/(.*X|^B)/ms
- abcde\n1234Xyz
- BarFoo
- abcde\nBar
-
-/(?s)(.*X|^B)/
- abcde\n1234Xyz
- BarFoo
- *** Failers
- abcde\nBar
-
-/(?s:.*X|^B)/
- abcde\n1234Xyz
- BarFoo
- *** Failers
- abcde\nBar
-
-/^.*B/
- **** Failers
- abc\nB
-
-/(?s)^.*B/
- abc\nB
-
-/(?m)^.*B/
- abc\nB
-
-/(?ms)^.*B/
- abc\nB
-
-/(?ms)^B/
- abc\nB
-
-/(?s)B$/
- B\n
-
-/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
- 123456654321
-
-/^\d\d\d\d\d\d\d\d\d\d\d\d/
- 123456654321
-
-/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
- 123456654321
-
-/^[abc]{12}/
- abcabcabcabc
-
-/^[a-c]{12}/
- abcabcabcabc
-
-/^(a|b|c){12}/
- abcabcabcabc
-
-/^[abcdefghijklmnopqrstuvwxy0123456789]/
- n
- *** Failers
- z
-
-/abcde{0,0}/
- abcd
- *** Failers
- abce
-
-/ab[cd]{0,0}e/
- abe
- *** Failers
- abcde
-
-/ab(c){0,0}d/
- abd
- *** Failers
- abcd
-
-/a(b*)/
- a
- ab
- abbbb
- *** Failers
- bbbbb
-
-/ab\d{0}e/
- abe
- *** Failers
- ab1e
-
-/"([^\\"]+|\\.)*"/
- the \"quick\" brown fox
- \"the \\\"quick\\\" brown fox\"
-
-/.*?/g+
- abc
-
-/\b/g+
- abc
-
-/\b/+g
- abc
-
-//g
- abc
-
-/<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>/is
- <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>
-
-/a[^a]b/
- acb
- a\nb
-
-/a.b/
- acb
- *** Failers
- a\nb
-
-/a[^a]b/s
- acb
- a\nb
-
-/a.b/s
- acb
- a\nb
-
-/^(b+?|a){1,2}?c/
- bac
- bbac
- bbbac
- bbbbac
- bbbbbac
-
-/^(b+|a){1,2}?c/
- bac
- bbac
- bbbac
- bbbbac
- bbbbbac
-
-/(?!\A)x/m
- x\nb\n
- a\bx\n
-
-/\x0{ab}/
- \0{ab}
-
-/(A|B)*?CD/
- CD
-
-/(A|B)*CD/
- CD
-
-/(AB)*?\1/
- ABABAB
-
-/(AB)*\1/
- ABABAB
-
-/(?<!bar)foo/
- foo
- catfood
- arfootle
- rfoosh
- *** Failers
- barfoo
- towbarfoo
-
-/\w{3}(?<!bar)foo/
- catfood
- *** Failers
- foo
- barfoo
- towbarfoo
-
-/(?<=(foo)a)bar/
- fooabar
- *** Failers
- bar
- foobbar
-
-/\Aabc\z/m
- abc
- *** Failers
- abc\n
- qqq\nabc
- abc\nzzz
- qqq\nabc\nzzz
-
-"(?>.*/)foo"
- /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
-
-"(?>.*/)foo"
- /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
-
-/(?>(\.\d\d[1-9]?))\d+/
- 1.230003938
- 1.875000282
- *** Failers
- 1.235
-
-/^((?>\w+)|(?>\s+))*$/
- now is the time for all good men to come to the aid of the party
- *** Failers
- this is not a line with only words and spaces!
-
-/(\d+)(\w)/
- 12345a
- 12345+
-
-/((?>\d+))(\w)/
- 12345a
- *** Failers
- 12345+
-
-/(?>a+)b/
- aaab
-
-/((?>a+)b)/
- aaab
-
-/(?>(a+))b/
- aaab
-
-/(?>b)+/
- aaabbbccc
-
-/(?>a+|b+|c+)*c/
- aaabbbbccccd
-
-/((?>[^()]+)|\([^()]*\))+/
- ((abc(ade)ufh()()x
-
-/\(((?>[^()]+)|\([^()]+\))+\)/
- (abc)
- (abc(def)xyz)
- *** Failers
- ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-
-/a(?-i)b/i
- ab
- Ab
- *** Failers
- aB
- AB
-
-/(a (?x)b c)d e/
- a bcd e
- *** Failers
- a b cd e
- abcd e
- a bcde
-
-/(a b(?x)c d (?-x)e f)/
- a bcde f
- *** Failers
- abcdef
-
-/(a(?i)b)c/
- abc
- aBc
- *** Failers
- abC
- aBC
- Abc
- ABc
- ABC
- AbC
-
-/a(?i:b)c/
- abc
- aBc
- *** Failers
- ABC
- abC
- aBC
-
-/a(?i:b)*c/
- aBc
- aBBc
- *** Failers
- aBC
- aBBC
-
-/a(?=b(?i)c)\w\wd/
- abcd
- abCd
- *** Failers
- aBCd
- abcD
-
-/(?s-i:more.*than).*million/i
- more than million
- more than MILLION
- more \n than Million
- *** Failers
- MORE THAN MILLION
- more \n than \n million
-
-/(?:(?s-i)more.*than).*million/i
- more than million
- more than MILLION
- more \n than Million
- *** Failers
- MORE THAN MILLION
- more \n than \n million
-
-/(?>a(?i)b+)+c/
- abc
- aBbc
- aBBc
- *** Failers
- Abc
- abAb
- abbC
-
-/(?=a(?i)b)\w\wc/
- abc
- aBc
- *** Failers
- Ab
- abC
- aBC
-
-/(?<=a(?i)b)(\w\w)c/
- abxxc
- aBxxc
- *** Failers
- Abxxc
- ABxxc
- abxxC
-
-/(?:(a)|b)(?(1)A|B)/
- aA
- bB
- *** Failers
- aB
- bA
-
-/^(a)?(?(1)a|b)+$/
- aa
- b
- bb
- *** Failers
- ab
-
-/^(?(?=abc)\w{3}:|\d\d)$/
- abc:
- 12
- *** Failers
- 123
- xyz
-
-/^(?(?!abc)\d\d|\w{3}:)$/
- abc:
- 12
- *** Failers
- 123
- xyz
-
-/(?(?<=foo)bar|cat)/
- foobar
- cat
- fcat
- focat
- *** Failers
- foocat
-
-/(?(?<!foo)cat|bar)/
- foobar
- cat
- fcat
- focat
- *** Failers
- foocat
-
-/( \( )? [^()]+ (?(1) \) |) /x
- abcd
- (abcd)
- the quick (abcd) fox
- (abcd
-
-/( \( )? [^()]+ (?(1) \) ) /x
- abcd
- (abcd)
- the quick (abcd) fox
- (abcd
-
-/^(?(2)a|(1)(2))+$/
- 12
- 12a
- 12aa
- *** Failers
- 1234
-
-/((?i)blah)\s+\1/
- blah blah
- BLAH BLAH
- Blah Blah
- blaH blaH
- *** Failers
- blah BLAH
- Blah blah
- blaH blah
-
-/((?i)blah)\s+(?i:\1)/
- blah blah
- BLAH BLAH
- Blah Blah
- blaH blaH
- blah BLAH
- Blah blah
- blaH blah
-
-/(?>a*)*/
- a
- aa
- aaaa
-
-/(abc|)+/
- abc
- abcabc
- abcabcabc
- xyz
-
-/([a]*)*/
- a
- aaaaa
-
-/([ab]*)*/
- a
- b
- ababab
- aaaabcde
- bbbb
-
-/([^a]*)*/
- b
- bbbb
- aaa
-
-/([^ab]*)*/
- cccc
- abab
-
-/([a]*?)*/
- a
- aaaa
-
-/([ab]*?)*/
- a
- b
- abab
- baba
-
-/([^a]*?)*/
- b
- bbbb
- aaa
-
-/([^ab]*?)*/
- c
- cccc
- baba
-
-/(?>a*)*/
- a
- aaabcde
-
-/((?>a*))*/
- aaaaa
- aabbaa
-
-/((?>a*?))*/
- aaaaa
- aabbaa
-
-/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
- 12-sep-98
- 12-09-98
- *** Failers
- sep-12-98
-
-/(?<=(foo))bar\1/
- foobarfoo
- foobarfootling
- *** Failers
- foobar
- barfoo
-
-/(?i:saturday|sunday)/
- saturday
- sunday
- Saturday
- Sunday
- SATURDAY
- SUNDAY
- SunDay
-
-/(a(?i)bc|BB)x/
- abcx
- aBCx
- bbx
- BBx
- *** Failers
- abcX
- aBCX
- bbX
- BBX
-
-/^([ab](?i)[cd]|[ef])/
- ac
- aC
- bD
- elephant
- Europe
- frog
- France
- *** Failers
- Africa
-
-/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
- ab
- aBd
- xy
- xY
- zebra
- Zambesi
- *** Failers
- aCD
- XY
-
-/(?<=foo\n)^bar/m
- foo\nbar
- *** Failers
- bar
- baz\nbar
-
-/(?<=(?<!foo)bar)baz/
- barbaz
- barbarbaz
- koobarbaz
- *** Failers
- baz
- foobarbaz
-
-/The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
-/it wrong; it sets $1 to aaa rather than aa. Compare the following test,/
-/where it does set $1 to aa when matching aaaaaa./
-
-/^(a\1?){4}$/
- a
- aa
- aaa
- aaaa
- aaaaa
- aaaaaaa
- aaaaaaaa
- aaaaaaaaa
- aaaaaaaaaa
- aaaaaaaaaaa
- aaaaaaaaaaaa
- aaaaaaaaaaaaa
- aaaaaaaaaaaaaa
- aaaaaaaaaaaaaaa
- aaaaaaaaaaaaaaaa
-
-/^(a\1?)(a\1?)(a\2?)(a\3?)$/
- a
- aa
- aaa
- aaaa
- aaaaa
- aaaaaa
- aaaaaaa
- aaaaaaaa
- aaaaaaaaa
- aaaaaaaaaa
- aaaaaaaaaaa
- aaaaaaaaaaaa
- aaaaaaaaaaaaa
- aaaaaaaaaaaaaa
- aaaaaaaaaaaaaaa
- aaaaaaaaaaaaaaaa
-
-/The following tests are taken from the Perl 5.005 test suite; some of them/
-/are compatible with 5.004, but I'd rather not have to sort them out./
-
-/abc/
- abc
- xabcy
- ababc
- *** Failers
- xbc
- axc
- abx
-
-/ab*c/
- abc
-
-/ab*bc/
- abc
- abbc
- abbbbc
-
-/.{1}/
- abbbbc
-
-/.{3,4}/
- abbbbc
-
-/ab{0,}bc/
- abbbbc
-
-/ab+bc/
- abbc
- *** Failers
- abc
- abq
-
-/ab{1,}bc/
-
-/ab+bc/
- abbbbc
-
-/ab{1,}bc/
- abbbbc
-
-/ab{1,3}bc/
- abbbbc
-
-/ab{3,4}bc/
- abbbbc
-
-/ab{4,5}bc/
- *** Failers
- abq
- abbbbc
-
-/ab?bc/
- abbc
- abc
-
-/ab{0,1}bc/
- abc
-
-/ab?bc/
-
-/ab?c/
- abc
-
-/ab{0,1}c/
- abc
-
-/^abc$/
- abc
- *** Failers
- abbbbc
- abcc
-
-/^abc/
- abcc
-
-/^abc$/
-
-/abc$/
- aabc
- *** Failers
- aabc
- aabcd
-
-/^/
- abc
-
-/$/
- abc
-
-/a.c/
- abc
- axc
-
-/a.*c/
- axyzc
-
-/a[bc]d/
- abd
- *** Failers
- axyzd
- abc
-
-/a[b-d]e/
- ace
-
-/a[b-d]/
- aac
-
-/a[-b]/
- a-
-
-/a[b-]/
- a-
-
-/a]/
- a]
-
-/a[]]b/
- a]b
-
-/a[^bc]d/
- aed
- *** Failers
- abd
- abd
-
-/a[^-b]c/
- adc
-
-/a[^]b]c/
- adc
- *** Failers
- a-c
- a]c
-
-/\ba\b/
- a-
- -a
- -a-
-
-/\by\b/
- *** Failers
- xy
- yz
- xyz
-
-/\Ba\B/
- *** Failers
- a-
- -a
- -a-
-
-/\By\b/
- xy
-
-/\by\B/
- yz
-
-/\By\B/
- xyz
-
-/\w/
- a
-
-/\W/
- -
- *** Failers
- -
- a
-
-/a\sb/
- a b
-
-/a\Sb/
- a-b
- *** Failers
- a-b
- a b
-
-/\d/
- 1
-
-/\D/
- -
- *** Failers
- -
- 1
-
-/[\w]/
- a
-
-/[\W]/
- -
- *** Failers
- -
- a
-
-/a[\s]b/
- a b
-
-/a[\S]b/
- a-b
- *** Failers
- a-b
- a b
-
-/[\d]/
- 1
-
-/[\D]/
- -
- *** Failers
- -
- 1
-
-/ab|cd/
- abc
- abcd
-
-/()ef/
- def
-
-/$b/
-
-/a\(b/
- a(b
-
-/a\(*b/
- ab
- a((b
-
-/a\\b/
- a\b
-
-/((a))/
- abc
-
-/(a)b(c)/
- abc
-
-/a+b+c/
- aabbabc
-
-/a{1,}b{1,}c/
- aabbabc
-
-/a.+?c/
- abcabc
-
-/(a+|b)*/
- ab
-
-/(a+|b){0,}/
- ab
-
-/(a+|b)+/
- ab
-
-/(a+|b){1,}/
- ab
-
-/(a+|b)?/
- ab
-
-/(a+|b){0,1}/
- ab
-
-/[^ab]*/
- cde
-
-/abc/
- *** Failers
- b
-
-
-/a*/
-
-
-/([abc])*d/
- abbbcd
-
-/([abc])*bcd/
- abcd
-
-/a|b|c|d|e/
- e
-
-/(a|b|c|d|e)f/
- ef
-
-/abcd*efg/
- abcdefg
-
-/ab*/
- xabyabbbz
- xayabbbz
-
-/(ab|cd)e/
- abcde
-
-/[abhgefdc]ij/
- hij
-
-/^(ab|cd)e/
-
-/(abc|)ef/
- abcdef
-
-/(a|b)c*d/
- abcd
-
-/(ab|ab*)bc/
- abc
-
-/a([bc]*)c*/
- abc
-
-/a([bc]*)(c*d)/
- abcd
-
-/a([bc]+)(c*d)/
- abcd
-
-/a([bc]*)(c+d)/
- abcd
-
-/a[bcd]*dcdcde/
- adcdcde
-
-/a[bcd]+dcdcde/
- *** Failers
- abcde
- adcdcde
-
-/(ab|a)b*c/
- abc
-
-/((a)(b)c)(d)/
- abcd
-
-/[a-zA-Z_][a-zA-Z0-9_]*/
- alpha
-
-/^a(bc+|b[eh])g|.h$/
- abh
-
-/(bc+d$|ef*g.|h?i(j|k))/
- effgz
- ij
- reffgz
- *** Failers
- effg
- bcdd
-
-/((((((((((a))))))))))/
- a
-
-/((((((((((a))))))))))\10/
- aa
-
-/(((((((((a)))))))))/
- a
-
-/multiple words of text/
- *** Failers
- aa
- uh-uh
-
-/multiple words/
- multiple words, yeah
-
-/(.*)c(.*)/
- abcde
-
-/\((.*), (.*)\)/
- (a, b)
-
-/[k]/
-
-/abcd/
- abcd
-
-/a(bc)d/
- abcd
-
-/a[-]?c/
- ac
-
-/(abc)\1/
- abcabc
-
-/([a-c]*)\1/
- abcabc
-
-/(a)|\1/
- a
- *** Failers
- ab
- x
-
-/(([a-c])b*?\2)*/
- ababbbcbc
-
-/(([a-c])b*?\2){3}/
- ababbbcbc
-
-/((\3|b)\2(a)x)+/
- aaaxabaxbaaxbbax
-
-/((\3|b)\2(a)){2,}/
- bbaababbabaaaaabbaaaabba
-
-/abc/i
- ABC
- XABCY
- ABABC
- *** Failers
- aaxabxbaxbbx
- XBC
- AXC
- ABX
-
-/ab*c/i
- ABC
-
-/ab*bc/i
- ABC
- ABBC
-
-/ab*?bc/i
- ABBBBC
-
-/ab{0,}?bc/i
- ABBBBC
-
-/ab+?bc/i
- ABBC
-
-/ab+bc/i
- *** Failers
- ABC
- ABQ
-
-/ab{1,}bc/i
-
-/ab+bc/i
- ABBBBC
-
-/ab{1,}?bc/i
- ABBBBC
-
-/ab{1,3}?bc/i
- ABBBBC
-
-/ab{3,4}?bc/i
- ABBBBC
-
-/ab{4,5}?bc/i
- *** Failers
- ABQ
- ABBBBC
-
-/ab??bc/i
- ABBC
- ABC
-
-/ab{0,1}?bc/i
- ABC
-
-/ab??bc/i
-
-/ab??c/i
- ABC
-
-/ab{0,1}?c/i
- ABC
-
-/^abc$/i
- ABC
- *** Failers
- ABBBBC
- ABCC
-
-/^abc/i
- ABCC
-
-/^abc$/i
-
-/abc$/i
- AABC
-
-/^/i
- ABC
-
-/$/i
- ABC
-
-/a.c/i
- ABC
- AXC
-
-/a.*?c/i
- AXYZC
-
-/a.*c/i
- *** Failers
- AABC
- AXYZD
-
-/a[bc]d/i
- ABD
-
-/a[b-d]e/i
- ACE
- *** Failers
- ABC
- ABD
-
-/a[b-d]/i
- AAC
-
-/a[-b]/i
- A-
-
-/a[b-]/i
- A-
-
-/a]/i
- A]
-
-/a[]]b/i
- A]B
-
-/a[^bc]d/i
- AED
-
-/a[^-b]c/i
- ADC
- *** Failers
- ABD
- A-C
-
-/a[^]b]c/i
- ADC
-
-/ab|cd/i
- ABC
- ABCD
-
-/()ef/i
- DEF
-
-/$b/i
- *** Failers
- A]C
- B
-
-/a\(b/i
- A(B
-
-/a\(*b/i
- AB
- A((B
-
-/a\\b/i
- A\B
-
-/((a))/i
- ABC
-
-/(a)b(c)/i
- ABC
-
-/a+b+c/i
- AABBABC
-
-/a{1,}b{1,}c/i
- AABBABC
-
-/a.+?c/i
- ABCABC
-
-/a.*?c/i
- ABCABC
-
-/a.{0,5}?c/i
- ABCABC
-
-/(a+|b)*/i
- AB
-
-/(a+|b){0,}/i
- AB
-
-/(a+|b)+/i
- AB
-
-/(a+|b){1,}/i
- AB
-
-/(a+|b)?/i
- AB
-
-/(a+|b){0,1}/i
- AB
-
-/(a+|b){0,1}?/i
- AB
-
-/[^ab]*/i
- CDE
-
-/abc/i
-
-/a*/i
-
-
-/([abc])*d/i
- ABBBCD
-
-/([abc])*bcd/i
- ABCD
-
-/a|b|c|d|e/i
- E
-
-/(a|b|c|d|e)f/i
- EF
-
-/abcd*efg/i
- ABCDEFG
-
-/ab*/i
- XABYABBBZ
- XAYABBBZ
-
-/(ab|cd)e/i
- ABCDE
-
-/[abhgefdc]ij/i
- HIJ
-
-/^(ab|cd)e/i
- ABCDE
-
-/(abc|)ef/i
- ABCDEF
-
-/(a|b)c*d/i
- ABCD
-
-/(ab|ab*)bc/i
- ABC
-
-/a([bc]*)c*/i
- ABC
-
-/a([bc]*)(c*d)/i
- ABCD
-
-/a([bc]+)(c*d)/i
- ABCD
-
-/a([bc]*)(c+d)/i
- ABCD
-
-/a[bcd]*dcdcde/i
- ADCDCDE
-
-/a[bcd]+dcdcde/i
-
-/(ab|a)b*c/i
- ABC
-
-/((a)(b)c)(d)/i
- ABCD
-
-/[a-zA-Z_][a-zA-Z0-9_]*/i
- ALPHA
-
-/^a(bc+|b[eh])g|.h$/i
- ABH
-
-/(bc+d$|ef*g.|h?i(j|k))/i
- EFFGZ
- IJ
- REFFGZ
- *** Failers
- ADCDCDE
- EFFG
- BCDD
-
-/((((((((((a))))))))))/i
- A
-
-/((((((((((a))))))))))\10/i
- AA
-
-/(((((((((a)))))))))/i
- A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
- A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
- C
-
-/multiple words of text/i
- *** Failers
- AA
- UH-UH
-
-/multiple words/i
- MULTIPLE WORDS, YEAH
-
-/(.*)c(.*)/i
- ABCDE
-
-/\((.*), (.*)\)/i
- (A, B)
-
-/[k]/i
-
-/abcd/i
- ABCD
-
-/a(bc)d/i
- ABCD
-
-/a[-]?c/i
- AC
-
-/(abc)\1/i
- ABCABC
-
-/([a-c]*)\1/i
- ABCABC
-
-/a(?!b)./
- abad
-
-/a(?=d)./
- abad
-
-/a(?=c|d)./
- abad
-
-/a(?:b|c|d)(.)/
- ace
-
-/a(?:b|c|d)*(.)/
- ace
-
-/a(?:b|c|d)+?(.)/
- ace
- acdbcdbe
-
-/a(?:b|c|d)+(.)/
- acdbcdbe
-
-/a(?:b|c|d){2}(.)/
- acdbcdbe
-
-/a(?:b|c|d){4,5}(.)/
- acdbcdbe
-
-/a(?:b|c|d){4,5}?(.)/
- acdbcdbe
-
-/((foo)|(bar))*/
- foobar
-
-/a(?:b|c|d){6,7}(.)/
- acdbcdbe
-
-/a(?:b|c|d){6,7}?(.)/
- acdbcdbe
-
-/a(?:b|c|d){5,6}(.)/
- acdbcdbe
-
-/a(?:b|c|d){5,6}?(.)/
- acdbcdbe
-
-/a(?:b|c|d){5,7}(.)/
- acdbcdbe
-
-/a(?:b|c|d){5,7}?(.)/
- acdbcdbe
-
-/a(?:b|(c|e){1,2}?|d)+?(.)/
- ace
-
-/^(.+)?B/
- AB
-
-/^([^a-z])|(\^)$/
- .
-
-/^[<>]&/
- <&OUT
-
-/^(a\1?){4}$/
- aaaaaaaaaa
- *** Failers
- AB
- aaaaaaaaa
- aaaaaaaaaaa
-
-/^(a(?(1)\1)){4}$/
- aaaaaaaaaa
- *** Failers
- aaaaaaaaa
- aaaaaaaaaaa
-
-/(?:(f)(o)(o)|(b)(a)(r))*/
- foobar
-
-/(?<=a)b/
- ab
- *** Failers
- cb
- b
-
-/(?<!c)b/
- ab
- b
- b
-
-/(?:..)*a/
- aba
-
-/(?:..)*?a/
- aba
-
-/^(?:b|a(?=(.)))*\1/
- abc
-
-/^(){3,5}/
- abc
-
-/^(a+)*ax/
- aax
-
-/^((a|b)+)*ax/
- aax
-
-/^((a|bc)+)*ax/
- aax
-
-/(a|x)*ab/
- cab
-
-/(a)*ab/
- cab
-
-/(?:(?i)a)b/
- ab
-
-/((?i)a)b/
- ab
-
-/(?:(?i)a)b/
- Ab
-
-/((?i)a)b/
- Ab
-
-/(?:(?i)a)b/
- *** Failers
- cb
- aB
-
-/((?i)a)b/
-
-/(?i:a)b/
- ab
-
-/((?i:a))b/
- ab
-
-/(?i:a)b/
- Ab
-
-/((?i:a))b/
- Ab
-
-/(?i:a)b/
- *** Failers
- aB
- aB
-
-/((?i:a))b/
-
-/(?:(?-i)a)b/i
- ab
-
-/((?-i)a)b/i
- ab
-
-/(?:(?-i)a)b/i
- aB
-
-/((?-i)a)b/i
- aB
-
-/(?:(?-i)a)b/i
- *** Failers
- aB
- Ab
-
-/((?-i)a)b/i
-
-/(?:(?-i)a)b/i
- aB
-
-/((?-i)a)b/i
- aB
-
-/(?:(?-i)a)b/i
- *** Failers
- Ab
- AB
-
-/((?-i)a)b/i
-
-/(?-i:a)b/i
- ab
-
-/((?-i:a))b/i
- ab
-
-/(?-i:a)b/i
- aB
-
-/((?-i:a))b/i
- aB
-
-/(?-i:a)b/i
- *** Failers
- AB
- Ab
-
-/((?-i:a))b/i
-
-/(?-i:a)b/i
- aB
-
-/((?-i:a))b/i
- aB
-
-/(?-i:a)b/i
- *** Failers
- Ab
- AB
-
-/((?-i:a))b/i
-
-/((?-i:a.))b/i
- *** Failers
- AB
- a\nB
-
-/((?s-i:a.))b/i
- a\nB
-
-/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
- cabbbb
-
-/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
- caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-
-/(ab)\d\1/i
- Ab4ab
- ab4Ab
-
-/foo\w*\d{4}baz/
- foobar1234baz
-
-/x(~~)*(?:(?:F)?)?/
- x~~
-
-/^a(?#xxx){3}c/
- aaac
-
-/^a (?#xxx) (?#yyy) {3}c/x
- aaac
-
-/(?<![cd])b/
- *** Failers
- B\nB
- dbcb
-
-/(?<![cd])[ab]/
- dbaacb
-
-/(?<!(c|d))b/
-
-/(?<!(c|d))[ab]/
- dbaacb
-
-/(?<!cd)[ab]/
- cdaccb
-
-/^(?:a?b?)*$/
- \
- a
- ab
- aaa
- *** Failers
- dbcb
- a--
- aa--
-
-/((?s)^a(.))((?m)^b$)/
- a\nb\nc\n
-
-/((?m)^b$)/
- a\nb\nc\n
-
-/(?m)^b/
- a\nb\n
-
-/(?m)^(b)/
- a\nb\n
-
-/((?m)^b)/
- a\nb\n
-
-/\n((?m)^b)/
- a\nb\n
-
-/((?s).)c(?!.)/
- a\nb\nc\n
- a\nb\nc\n
-
-/((?s)b.)c(?!.)/
- a\nb\nc\n
- a\nb\nc\n
-
-/^b/
-
-/()^b/
- *** Failers
- a\nb\nc\n
- a\nb\nc\n
-
-/((?m)^b)/
- a\nb\nc\n
-
-/(?(1)a|b)/
-
-/(?(1)b|a)/
- a
-
-/(x)?(?(1)a|b)/
- *** Failers
- a
- a
-
-/(x)?(?(1)b|a)/
- a
-
-/()?(?(1)b|a)/
- a
-
-/()(?(1)b|a)/
-
-/()?(?(1)a|b)/
- a
-
-/^(\()?blah(?(1)(\)))$/
- (blah)
- blah
- *** Failers
- a
- blah)
- (blah
-
-/^(\(+)?blah(?(1)(\)))$/
- (blah)
- blah
- *** Failers
- blah)
- (blah
-
-/(?(?!a)a|b)/
-
-/(?(?!a)b|a)/
- a
-
-/(?(?=a)b|a)/
- *** Failers
- a
- a
-
-/(?(?=a)a|b)/
- a
-
-/(?=(a+?))(\1ab)/
- aaab
-
-/^(?=(a+?))\1ab/
-
-/(\w+:)+/
- one:
-
-/$(?<=^(a))/
- a
-
-/(?=(a+?))(\1ab)/
- aaab
-
-/^(?=(a+?))\1ab/
- *** Failers
- aaab
- aaab
-
-/([\w:]+::)?(\w+)$/
- abcd
- xy:z:::abcd
-
-/^[^bcd]*(c+)/
- aexycd
-
-/(a*)b+/
- caab
-
-/([\w:]+::)?(\w+)$/
- abcd
- xy:z:::abcd
- *** Failers
- abcd:
- abcd:
-
-/^[^bcd]*(c+)/
- aexycd
-
-/(>a+)ab/
-
-/(?>a+)b/
- aaab
-
-/([[:]+)/
- a:[b]:
-
-/([[=]+)/
- a=[b]=
-
-/([[.]+)/
- a.[b].
-
-/((?>a+)b)/
- aaab
-
-/(?>(a+))b/
- aaab
-
-/((?>[^()]+)|\([^()]*\))+/
- ((abc(ade)ufh()()x
-
-/a\Z/
- *** Failers
- aaab
- a\nb\n
-
-/b\Z/
- a\nb\n
-
-/b\z/
-
-/b\Z/
- a\nb
-
-/b\z/
- a\nb
- *** Failers
-
-/^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
- a
- abc
- a-b
- 0-9
- a.b
- 5.6.7
- the.quick.brown.fox
- a100.b200.300c
- 12-ab.1245
- *** Failers
- \
- .a
- -a
- a-
- a.
- a_b
- a.-
- a..
- ab..bc
- the.quick.brown.fox-
- the.quick.brown.fox.
- the.quick.brown.fox_
- the.quick.brown.fox+
-
-/(?>.*)(?<=(abcd|wxyz))/
- alphabetabcd
- endingwxyz
- *** Failers
- a rather long string that doesn't end with one of them
-
-/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
- word cat dog elephant mussel cow horse canary baboon snake shark otherword
- word cat dog elephant mussel cow horse canary baboon snake shark
-
-/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
- 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
-
-/(?<=\d{3}(?!999))foo/
- 999foo
- 123999foo
- *** Failers
- 123abcfoo
-
-/(?<=(?!...999)\d{3})foo/
- 999foo
- 123999foo
- *** Failers
- 123abcfoo
-
-/(?<=\d{3}(?!999)...)foo/
- 123abcfoo
- 123456foo
- *** Failers
- 123999foo
-
-/(?<=\d{3}...)(?<!999)foo/
- 123abcfoo
- 123456foo
- *** Failers
- 123999foo
-
-/<a[\s]+href[\s]*=[\s]* # find <a href=
- ([\"\'])? # find single or double quote
- (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
- # quote, otherwise match up to next space
-/isx
- <a href=abcd xyz
- <a href=\"abcd xyz pqr\" cats
- <a href=\'abcd xyz pqr\' cats
-
-/<a\s+href\s*=\s* # find <a href=
- (["'])? # find single or double quote
- (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
- # quote, otherwise match up to next space
-/isx
- <a href=abcd xyz
- <a href=\"abcd xyz pqr\" cats
- <a href = \'abcd xyz pqr\' cats
-
-/<a\s+href(?>\s*)=(?>\s*) # find <a href=
- (["'])? # find single or double quote
- (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
- # quote, otherwise match up to next space
-/isx
- <a href=abcd xyz
- <a href=\"abcd xyz pqr\" cats
- <a href = \'abcd xyz pqr\' cats
-
-/((Z)+|A)*/
- ZABCDEFG
-
-/(Z()|A)*/
- ZABCDEFG
-
-/(Z(())|A)*/
- ZABCDEFG
-
-/((?>Z)+|A)*/
- ZABCDEFG
-
-/((?>)+|A)*/
- ZABCDEFG
-
-/a*/g
- abbab
-
-/^[a-\d]/
- abcde
- -things
- 0digit
- *** Failers
- bcdef
-
-/^[\d-a]/
- abcde
- -things
- 0digit
- *** Failers
- bcdef
-
-/[[:space:]]+/
- > \x09\x0a\x0c\x0d\x0b<
-
-/[[:blank:]]+/
- > \x09\x0a\x0c\x0d\x0b<
-
-/[\s]+/
- > \x09\x0a\x0c\x0d\x0b<
-
-/\s+/
- > \x09\x0a\x0c\x0d\x0b<
-
-/ab/x
- ab
-
-/(?!\A)x/m
- a\nxb\n
-
-/(?!^)x/m
- a\nxb\n
-
-/abc\Qabc\Eabc/
- abcabcabc
-
-/abc\Q(*+|\Eabc/
- abc(*+|abc
-
-/ abc\Q abc\Eabc/x
- abc abcabc
- *** Failers
- abcabcabc
-
-/abc#comment
- \Q#not comment
- literal\E/x
- abc#not comment\n literal
-
-/abc#comment
- \Q#not comment
- literal/x
- abc#not comment\n literal
-
-/abc#comment
- \Q#not comment
- literal\E #more comment
- /x
- abc#not comment\n literal
-
-/abc#comment
- \Q#not comment
- literal\E #more comment/x
- abc#not comment\n literal
-
-/\Qabc\$xyz\E/
- abc\\\$xyz
-
-/\Qabc\E\$\Qxyz\E/
- abc\$xyz
-
-/\Gabc/
- abc
- *** Failers
- xyzabc
-
-/\Gabc./g
- abc1abc2xyzabc3
-
-/abc./g
- abc1abc2xyzabc3
-
-/a(?x: b c )d/
- XabcdY
- *** Failers
- Xa b c d Y
-
-/((?x)x y z | a b c)/
- XabcY
- AxyzB
-
-/(?i)AB(?-i)C/
- XabCY
- *** Failers
- XabcY
-
-/((?i)AB(?-i)C|D)E/
- abCE
- DE
- *** Failers
- abcE
- abCe
- dE
- De
-
-/(.*)\d+\1/
- abc123abc
- abc123bc
-
-/(.*)\d+\1/s
- abc123abc
- abc123bc
-
-/((.*))\d+\1/
- abc123abc
- abc123bc
-
-/-- This tests for an IPv6 address in the form where it can have up to --/
-/-- eight components, one and only one of which is empty. This must be --/
-/-- an internal component. --/
-
-/^(?!:) # colon disallowed at start
- (?: # start of item
- (?: [0-9a-f]{1,4} | # 1-4 hex digits or
- (?(1)0 | () ) ) # if null previously matched, fail; else null
- : # followed by colon
- ){1,7} # end item; 1-7 of them required
- [0-9a-f]{1,4} $ # final hex number at end of string
- (?(1)|.) # check that there was an empty component
- /xi
- a123::a123
- a123:b342::abcd
- a123:b342::324e:abcd
- a123:ddde:b342::324e:abcd
- a123:ddde:b342::324e:dcba:abcd
- a123:ddde:9999:b342::324e:dcba:abcd
- *** Failers
- 1:2:3:4:5:6:7:8
- a123:bce:ddde:9999:b342::324e:dcba:abcd
- a123::9999:b342::324e:dcba:abcd
- abcde:2:3:4:5:6:7:8
- ::1
- abcd:fee0:123::
- :1
- 1:
-
-/[z\Qa-d]\E]/
- z
- a
- -
- d
- ]
- *** Failers
- b
-
-/[\z\C]/
- z
- C
-
-/\M/
- M
-
-/(a+)*b/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-
-/(?i)reg(?:ul(?:[aä]|ae)r|ex)/
- REGular
- regulaer
- Regex
- regulär
-
-/Åæåä[à-ÿÀ-ß]+/
- Åæåäà
- Åæåäÿ
- ÅæåäÀ
- Åæåäß
-
-/(?<=Z)X./
- \x84XAZXB
-
-/ab cd (?x) de fg/
- ab cd defg
-
-/ab cd(?x) de fg/
- ab cddefg
- ** Failers
- abcddefg
-
-/(?<![^f]oo)(bar)/
- foobarX
- ** Failers
- boobarX
-
-/(?<![^f])X/
- offX
- ** Failers
- onyX
-
-/(?<=[^f])X/
- onyX
- ** Failers
- offX
-
-/^/mg
- a\nb\nc\n
- \
-
-/(?<=C\n)^/mg
- A\nC\nC\n
-
-/(?:(?(1)a|b)(X))+/
- bXaX
-
-/(?:(?(1)\1a|b)(X|Y))+/
- bXXaYYaY
- bXYaXXaX
-
-/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
- bXXaYYaY
-
-/[[,abc,]+]/
- abc]
- a,b]
- [a,b,c]
-
-/(?-x: )/x
- A\x20B
-
-"(?x)(?-x: \s*#\s*)"
- A # B
- ** Failers
- #
-
-"(?x-is)(?:(?-ixs) \s*#\s*) include"
- A #include
- ** Failers
- A#include
- A #Include
-
-/a*b*\w/
- aaabbbb
- aaaa
- a
-
-/a*b?\w/
- aaabbbb
- aaaa
- a
-
-/a*b{0,4}\w/
- aaabbbb
- aaaa
- a
-
-/a*b{0,}\w/
- aaabbbb
- aaaa
- a
-
-/a*\d*\w/
- 0a
- a
-
-/a*b *\w/x
- a
-
-/a*b#comment
- *\w/x
- a
-
-/a* b *\w/x
- a
-
-/^\w+=.*(\\\n.*)*/
- abc=xyz\\\npqr
-
-/(?=(\w+))\1:/
- abcd:
-
-/^(?=(\w+))\1:/
- abcd:
-
-/^\Eabc/
- abc
-
-/^[\Eabc]/
- a
- ** Failers
- E
-
-/^[a-\Ec]/
- b
- ** Failers
- -
- E
-
-/^[a\E\E-\Ec]/
- b
- ** Failers
- -
- E
-
-/^[\E\Qa\E-\Qz\E]+/
- b
- ** Failers
- -
-
-/^[a\Q]bc\E]/
- a
- ]
- c
-
-/^[a-\Q\E]/
- a
- -
-
-/^(a()*)*/
- aaaa
-
-/^(?:a(?:(?:))*)*/
- aaaa
-
-/^(a()+)+/
- aaaa
-
-/^(?:a(?:(?:))+)+/
- aaaa
-
-/(a){0,3}(?(1)b|(c|))*D/
- abbD
- ccccD
- D
-
-/(a|)*\d/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/(?>a|)*\d/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/(?:a|)*\d/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/\Z/g
- abc\n
-
-/^(?s)(?>.*)(?<!\n)/
- abc
- abc\n
-
-/^(?![^\n]*\n\z)/
- abc
- abc\n
-
-/\z(?<!\n)/
- abc
- abc\n
-
-/(.*(.)?)*/
- abcd
-
-/( (A | (?(1)0|) )* )/x
- abcd
-
-/( ( (?(1)0|) )* )/x
- abcd
-
-/( (?(1)0|)* )/x
- abcd
-
-/[[:abcd:xyz]]/
- a]
- :]
-
-/[abc[:x\]pqr]/
- a
- [
- :
- ]
- p
-
-/ End of testinput1 /
diff --git a/LayoutTests/fast/regex/testinput4 b/LayoutTests/fast/regex/testinput4
deleted file mode 100644
index d31d19a..0000000
--- a/LayoutTests/fast/regex/testinput4
+++ /dev/null
@@ -1,612 +0,0 @@
-/-- Do not use the \x{} construct except with patterns that have the --/
-/-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/
-/-- that option is set. However, the latest Perls recognize them always. --/
-
-/a.b/8
- acb
- a\x7fb
- a\x{100}b
- *** Failers
- a\nb
-
-/a(.{3})b/8
- a\x{4000}xyb
- a\x{4000}\x7fyb
- a\x{4000}\x{100}yb
- *** Failers
- a\x{4000}b
- ac\ncb
-
-/a(.*?)(.)/
- a\xc0\x88b
-
-/a(.*?)(.)/8
- a\x{100}b
-
-/a(.*)(.)/
- a\xc0\x88b
-
-/a(.*)(.)/8
- a\x{100}b
-
-/a(.)(.)/
- a\xc0\x92bcd
-
-/a(.)(.)/8
- a\x{240}bcd
-
-/a(.?)(.)/
- a\xc0\x92bcd
-
-/a(.?)(.)/8
- a\x{240}bcd
-
-/a(.??)(.)/
- a\xc0\x92bcd
-
-/a(.??)(.)/8
- a\x{240}bcd
-
-/a(.{3})b/8
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- *** Failers
- a\x{1234}b
- ac\ncb
-
-/a(.{3,})b/8
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- axxxxbcdefghijb
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- *** Failers
- a\x{1234}b
-
-/a(.{3,}?)b/8
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- axxxxbcdefghijb
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- *** Failers
- a\x{1234}b
-
-/a(.{3,5})b/8
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- axxxxbcdefghijb
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- axbxxbcdefghijb
- axxxxxbcdefghijb
- *** Failers
- a\x{1234}b
- axxxxxxbcdefghijb
-
-/a(.{3,5}?)b/8
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- axxxxbcdefghijb
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- axbxxbcdefghijb
- axxxxxbcdefghijb
- *** Failers
- a\x{1234}b
- axxxxxxbcdefghijb
-
-/^[a\x{c0}]/8
- *** Failers
- \x{100}
-
-/(?<=aXb)cd/8
- aXbcd
-
-/(?<=a\x{100}b)cd/8
- a\x{100}bcd
-
-/(?<=a\x{100000}b)cd/8
- a\x{100000}bcd
-
-/(?:\x{100}){3}b/8
- \x{100}\x{100}\x{100}b
- *** Failers
- \x{100}\x{100}b
-
-/\x{ab}/8
- \x{ab}
- \xc2\xab
- *** Failers
- \x00{ab}
-
-/(?<=(.))X/8
- WXYZ
- \x{256}XYZ
- *** Failers
- XYZ
-
-/X(\C{3})/8
- X\x{1234}
-
-/X(\C{4})/8
- X\x{1234}YZ
-
-/X\C*/8
- XYZabcdce
-
-/X\C*?/8
- XYZabcde
-
-/X\C{3,5}/8
- Xabcdefg
- X\x{1234}
- X\x{1234}YZ
- X\x{1234}\x{512}
- X\x{1234}\x{512}YZ
-
-/X\C{3,5}?/8
- Xabcdefg
- X\x{1234}
- X\x{1234}YZ
- X\x{1234}\x{512}
-
-/[^a]+/8g
- bcd
- \x{100}aY\x{256}Z
-
-/^[^a]{2}/8
- \x{100}bc
-
-/^[^a]{2,}/8
- \x{100}bcAa
-
-/^[^a]{2,}?/8
- \x{100}bca
-
-/[^a]+/8ig
- bcd
- \x{100}aY\x{256}Z
-
-/^[^a]{2}/8i
- \x{100}bc
-
-/^[^a]{2,}/8i
- \x{100}bcAa
-
-/^[^a]{2,}?/8i
- \x{100}bca
-
-/\x{100}{0,0}/8
- abcd
-
-/\x{100}?/8
- abcd
- \x{100}\x{100}
-
-/\x{100}{0,3}/8
- \x{100}\x{100}
- \x{100}\x{100}\x{100}\x{100}
-
-/\x{100}*/8
- abce
- \x{100}\x{100}\x{100}\x{100}
-
-/\x{100}{1,1}/8
- abcd\x{100}\x{100}\x{100}\x{100}
-
-/\x{100}{1,3}/8
- abcd\x{100}\x{100}\x{100}\x{100}
-
-/\x{100}+/8
- abcd\x{100}\x{100}\x{100}\x{100}
-
-/\x{100}{3}/8
- abcd\x{100}\x{100}\x{100}XX
-
-/\x{100}{3,5}/8
- abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
-
-/\x{100}{3,}/8
- abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
-
-/(?<=a\x{100}{2}b)X/8+
- Xyyya\x{100}\x{100}bXzzz
-
-/\D*/8
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-
-/\D*/8
- \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
-
-/\D/8
- 1X2
- 1\x{100}2
-
-/>\S/8
- > >X Y
- > >\x{100} Y
-
-/\d/8
- \x{100}3
-
-/\s/8
- \x{100} X
-
-/\D+/8
- 12abcd34
- *** Failers
- 1234
-
-/\D{2,3}/8
- 12abcd34
- 12ab34
- *** Failers
- 1234
- 12a34
-
-/\D{2,3}?/8
- 12abcd34
- 12ab34
- *** Failers
- 1234
- 12a34
-
-/\d+/8
- 12abcd34
- *** Failers
-
-/\d{2,3}/8
- 12abcd34
- 1234abcd
- *** Failers
- 1.4
-
-/\d{2,3}?/8
- 12abcd34
- 1234abcd
- *** Failers
- 1.4
-
-/\S+/8
- 12abcd34
- *** Failers
- \ \
-
-/\S{2,3}/8
- 12abcd34
- 1234abcd
- *** Failers
- \ \
-
-/\S{2,3}?/8
- 12abcd34
- 1234abcd
- *** Failers
- \ \
-
-/>\s+</8+
- 12> <34
- *** Failers
-
-/>\s{2,3}</8+
- ab> <cd
- ab> <ce
- *** Failers
- ab> <cd
-
-/>\s{2,3}?</8+
- ab> <cd
- ab> <ce
- *** Failers
- ab> <cd
-
-/\w+/8
- 12 34
- *** Failers
- +++=*!
-
-/\w{2,3}/8
- ab cd
- abcd ce
- *** Failers
- a.b.c
-
-/\w{2,3}?/8
- ab cd
- abcd ce
- *** Failers
- a.b.c
-
-/\W+/8
- 12====34
- *** Failers
- abcd
-
-/\W{2,3}/8
- ab====cd
- ab==cd
- *** Failers
- a.b.c
-
-/\W{2,3}?/8
- ab====cd
- ab==cd
- *** Failers
- a.b.c
-
-/[\x{100}]/8
- \x{100}
- Z\x{100}
- \x{100}Z
- *** Failers
-
-/[Z\x{100}]/8
- Z\x{100}
- \x{100}
- \x{100}Z
- *** Failers
-
-/[\x{100}\x{200}]/8
- ab\x{100}cd
- ab\x{200}cd
- *** Failers
-
-/[\x{100}-\x{200}]/8
- ab\x{100}cd
- ab\x{200}cd
- ab\x{111}cd
- *** Failers
-
-/[z-\x{200}]/8
- ab\x{100}cd
- ab\x{200}cd
- ab\x{111}cd
- abzcd
- ab|cd
- *** Failers
-
-/[Q\x{100}\x{200}]/8
- ab\x{100}cd
- ab\x{200}cd
- Q?
- *** Failers
-
-/[Q\x{100}-\x{200}]/8
- ab\x{100}cd
- ab\x{200}cd
- ab\x{111}cd
- Q?
- *** Failers
-
-/[Qz-\x{200}]/8
- ab\x{100}cd
- ab\x{200}cd
- ab\x{111}cd
- abzcd
- ab|cd
- Q?
- *** Failers
-
-/[\x{100}\x{200}]{1,3}/8
- ab\x{100}cd
- ab\x{200}cd
- ab\x{200}\x{100}\x{200}\x{100}cd
- *** Failers
-
-/[\x{100}\x{200}]{1,3}?/8
- ab\x{100}cd
- ab\x{200}cd
- ab\x{200}\x{100}\x{200}\x{100}cd
- *** Failers
-
-/[Q\x{100}\x{200}]{1,3}/8
- ab\x{100}cd
- ab\x{200}cd
- ab\x{200}\x{100}\x{200}\x{100}cd
- *** Failers
-
-/[Q\x{100}\x{200}]{1,3}?/8
- ab\x{100}cd
- ab\x{200}cd
- ab\x{200}\x{100}\x{200}\x{100}cd
- *** Failers
-
-/(?<=[\x{100}\x{200}])X/8
- abc\x{200}X
- abc\x{100}X
- *** Failers
- X
-
-/(?<=[Q\x{100}\x{200}])X/8
- abc\x{200}X
- abc\x{100}X
- abQX
- *** Failers
- X
-
-/(?<=[\x{100}\x{200}]{3})X/8
- abc\x{100}\x{200}\x{100}X
- *** Failers
- abc\x{200}X
- X
-
-/[^\x{100}\x{200}]X/8
- AX
- \x{150}X
- \x{500}X
- *** Failers
- \x{100}X
- \x{200}X
-
-/[^Q\x{100}\x{200}]X/8
- AX
- \x{150}X
- \x{500}X
- *** Failers
- \x{100}X
- \x{200}X
- QX
-
-/[^\x{100}-\x{200}]X/8
- AX
- \x{500}X
- *** Failers
- \x{100}X
- \x{150}X
- \x{200}X
-
-/a\Cb/
- aXb
- a\nb
-
-/a\Cb/8
- aXb
- a\nb
- *** Failers
- a\x{100}b
-
-/[z-\x{100}]/8i
- z
- Z
- \x{100}
- *** Failers
- \x{102}
- y
-
-/[\xFF]/
- >\xff<
-
-/[\xff]/8
- >\x{ff}<
-
-/[^\xFF]/
- XYZ
-
-/[^\xff]/8
- XYZ
- \x{123}
-
-/^[ac]*b/8
- xb
-
-/^[ac\x{100}]*b/8
- xb
-
-/^[^x]*b/8i
- xb
-
-/^[^x]*b/8
- xb
-
-/^\d*b/8
- xb
-
-/(|a)/g8
- catac
- a\x{256}a
-
-/^\x{85}$/8i
- \x{85}
-
-/^ሴ/8
- ሴ
-
-/^\ሴ/8
- ሴ
-
-"(?s)(.{1,5})"8
- abcdefg
- ab
-
-/a*\x{100}*\w/8
- a
-
-/\S\S/8g
- A\x{a3}BC
-
-/\S{2}/8g
- A\x{a3}BC
-
-/\W\W/8g
- +\x{a3}==
-
-/\W{2}/8g
- +\x{a3}==
-
-/\S/8g
- \x{442}\x{435}\x{441}\x{442}
-
-/[\S]/8g
- \x{442}\x{435}\x{441}\x{442}
-
-/\D/8g
- \x{442}\x{435}\x{441}\x{442}
-
-/[\D]/8g
- \x{442}\x{435}\x{441}\x{442}
-
-/\W/8g
- \x{2442}\x{2435}\x{2441}\x{2442}
-
-/[\W]/8g
- \x{2442}\x{2435}\x{2441}\x{2442}
-
-/[\S\s]*/8
- abc\n\r\x{442}\x{435}\x{441}\x{442}xyz
-
-/[\x{41f}\S]/8g
- \x{442}\x{435}\x{441}\x{442}
-
-/.[^\S]./8g
- abc def\x{442}\x{443}xyz\npqr
-
-/.[^\S\n]./8g
- abc def\x{442}\x{443}xyz\npqr
-
-/[[:^alnum:]]/8g
- +\x{2442}
-
-/[[:^alpha:]]/8g
- +\x{2442}
-
-/[[:^ascii:]]/8g
- A\x{442}
-
-/[[:^blank:]]/8g
- A\x{442}
-
-/[[:^cntrl:]]/8g
- A\x{442}
-
-/[[:^digit:]]/8g
- A\x{442}
-
-/[[:^graph:]]/8g
- \x19\x{e01ff}
-
-/[[:^lower:]]/8g
- A\x{422}
-
-/[[:^print:]]/8g
- \x{19}\x{e01ff}
-
-/[[:^punct:]]/8g
- A\x{442}
-
-/[[:^space:]]/8g
- A\x{442}
-
-/[[:^upper:]]/8g
- a\x{442}
-
-/[[:^word:]]/8g
- +\x{2442}
-
-/[[:^xdigit:]]/8g
- M\x{442}
-
-/[^ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉƊƋƎƏƐƑƓƔƖƗƘƜƝƟƠƢƤƦƧƩƬƮƯƱƲƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶǷǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϒϓϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸԀԂԄԆԈԊԌԎԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸἈἉἊἋἌἍἎἏἘἙἚἛἜἝἨἩἪἫἬἭἮἯἸἹἺἻἼἽἾἿὈὉὊὋὌὍὙὛὝὟὨὩὪὫὬὭὮὯᾸᾹᾺΆῈΈῊΉῘῙῚΊῨῩῪΎῬῸΌῺΏabcdefghijklmnopqrstuvwxyzªµºßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżžſƀƃƅƈƌƍƒƕƙƚƛƞơƣƥƨƪƫƭưƴƶƹƺƽƾƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳȴȵȶȷȸȹȼȿɀɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΐάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϐϑϕϖϗϙϛϝϟϡϣϥϧϩϫϭϯϰϱϲϳϵϸϻϼабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹԁԃԅԇԉԋԍԏաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚẛạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹἀἁἂἃἄἅἆἇἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷιῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢⴣⴤⴥfffiflffifflſtstﬓﬔﬕﬖﬗ\d\-_^]/8
-
-/ End of testinput4 /
diff --git a/LayoutTests/fast/regex/testoutput1 b/LayoutTests/fast/regex/testoutput1
deleted file mode 100644
index 8cbf61a..0000000
--- a/LayoutTests/fast/regex/testoutput1
+++ /dev/null
@@ -1,5797 +0,0 @@
-/the quick brown fox/
- the quick brown fox
- 0: the quick brown fox
- The quick brown FOX
-No match
- What do you know about the quick brown fox?
- 0: the quick brown fox
- What do you know about THE QUICK BROWN FOX?
-No match
-
-/The quick brown fox/i
- the quick brown fox
- 0: the quick brown fox
- The quick brown FOX
- 0: The quick brown FOX
- What do you know about the quick brown fox?
- 0: the quick brown fox
- What do you know about THE QUICK BROWN FOX?
- 0: THE QUICK BROWN FOX
-
-/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
- abcd\t\n\r\f\a\e9;\$\\?caxyz
- 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
-
-/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
- abxyzpqrrrabbxyyyypqAzz
- 0: abxyzpqrrrabbxyyyypqAzz
- abxyzpqrrrabbxyyyypqAzz
- 0: abxyzpqrrrabbxyyyypqAzz
- aabxyzpqrrrabbxyyyypqAzz
- 0: aabxyzpqrrrabbxyyyypqAzz
- aaabxyzpqrrrabbxyyyypqAzz
- 0: aaabxyzpqrrrabbxyyyypqAzz
- aaaabxyzpqrrrabbxyyyypqAzz
- 0: aaaabxyzpqrrrabbxyyyypqAzz
- abcxyzpqrrrabbxyyyypqAzz
- 0: abcxyzpqrrrabbxyyyypqAzz
- aabcxyzpqrrrabbxyyyypqAzz
- 0: aabcxyzpqrrrabbxyyyypqAzz
- aaabcxyzpqrrrabbxyyyypAzz
- 0: aaabcxyzpqrrrabbxyyyypAzz
- aaabcxyzpqrrrabbxyyyypqAzz
- 0: aaabcxyzpqrrrabbxyyyypqAzz
- aaabcxyzpqrrrabbxyyyypqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqAzz
- aaabcxyzpqrrrabbxyyyypqqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqqAzz
- aaabcxyzpqrrrabbxyyyypqqqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqqqAzz
- aaabcxyzpqrrrabbxyyyypqqqqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
- aaabcxyzpqrrrabbxyyyypqqqqqqAzz
- 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
- aaaabcxyzpqrrrabbxyyyypqAzz
- 0: aaaabcxyzpqrrrabbxyyyypqAzz
- abxyzzpqrrrabbxyyyypqAzz
- 0: abxyzzpqrrrabbxyyyypqAzz
- aabxyzzzpqrrrabbxyyyypqAzz
- 0: aabxyzzzpqrrrabbxyyyypqAzz
- aaabxyzzzzpqrrrabbxyyyypqAzz
- 0: aaabxyzzzzpqrrrabbxyyyypqAzz
- aaaabxyzzzzpqrrrabbxyyyypqAzz
- 0: aaaabxyzzzzpqrrrabbxyyyypqAzz
- abcxyzzpqrrrabbxyyyypqAzz
- 0: abcxyzzpqrrrabbxyyyypqAzz
- aabcxyzzzpqrrrabbxyyyypqAzz
- 0: aabcxyzzzpqrrrabbxyyyypqAzz
- aaabcxyzzzzpqrrrabbxyyyypqAzz
- 0: aaabcxyzzzzpqrrrabbxyyyypqAzz
- aaaabcxyzzzzpqrrrabbxyyyypqAzz
- 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
- aaaabcxyzzzzpqrrrabbbxyyyypqAzz
- 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
- aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
- 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
- aaabcxyzpqrrrabbxyyyypABzz
- 0: aaabcxyzpqrrrabbxyyyypABzz
- aaabcxyzpqrrrabbxyyyypABBzz
- 0: aaabcxyzpqrrrabbxyyyypABBzz
- >>>aaabxyzpqrrrabbxyyyypqAzz
- 0: aaabxyzpqrrrabbxyyyypqAzz
- >aaaabxyzpqrrrabbxyyyypqAzz
- 0: aaaabxyzpqrrrabbxyyyypqAzz
- >>>>abcxyzpqrrrabbxyyyypqAzz
- 0: abcxyzpqrrrabbxyyyypqAzz
- *** Failers
-No match
- abxyzpqrrabbxyyyypqAzz
-No match
- abxyzpqrrrrabbxyyyypqAzz
-No match
- abxyzpqrrrabxyyyypqAzz
-No match
- aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
-No match
- aaaabcxyzzzzpqrrrabbbxyyypqAzz
-No match
- aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
-No match
-
-/^(abc){1,2}zz/
- abczz
- 0: abczz
- 1: abc
- abcabczz
- 0: abcabczz
- 1: abc
- *** Failers
-No match
- zz
-No match
- abcabcabczz
-No match
- >>abczz
-No match
-
-/^(b+?|a){1,2}?c/
- bc
- 0: bc
- 1: b
- bbc
- 0: bbc
- 1: b
- bbbc
- 0: bbbc
- 1: bb
- bac
- 0: bac
- 1: a
- bbac
- 0: bbac
- 1: a
- aac
- 0: aac
- 1: a
- abbbbbbbbbbbc
- 0: abbbbbbbbbbbc
- 1: bbbbbbbbbbb
- bbbbbbbbbbbac
- 0: bbbbbbbbbbbac
- 1: a
- *** Failers
-No match
- aaac
-No match
- abbbbbbbbbbbac
-No match
-
-/^(b+|a){1,2}c/
- bc
- 0: bc
- 1: b
- bbc
- 0: bbc
- 1: bb
- bbbc
- 0: bbbc
- 1: bbb
- bac
- 0: bac
- 1: a
- bbac
- 0: bbac
- 1: a
- aac
- 0: aac
- 1: a
- abbbbbbbbbbbc
- 0: abbbbbbbbbbbc
- 1: bbbbbbbbbbb
- bbbbbbbbbbbac
- 0: bbbbbbbbbbbac
- 1: a
- *** Failers
-No match
- aaac
-No match
- abbbbbbbbbbbac
-No match
-
-/^(b+|a){1,2}?bc/
- bbc
- 0: bbc
- 1: b
-
-/^(b*|ba){1,2}?bc/
- babc
- 0: babc
- 1: ba
- bbabc
- 0: bbabc
- 1: ba
- bababc
- 0: bababc
- 1: ba
- *** Failers
-No match
- bababbc
-No match
- babababc
-No match
-
-/^(ba|b*){1,2}?bc/
- babc
- 0: babc
- 1: ba
- bbabc
- 0: bbabc
- 1: ba
- bababc
- 0: bababc
- 1: ba
- *** Failers
-No match
- bababbc
-No match
- babababc
-No match
-
-/^\ca\cA\c[\c{\c:/
- \x01\x01\e;z
- 0: \x01\x01\x1b;z
-
-/^[ab\]cde]/
- athing
- 0: a
- bthing
- 0: b
- ]thing
- 0: ]
- cthing
- 0: c
- dthing
- 0: d
- ething
- 0: e
- *** Failers
-No match
- fthing
-No match
- [thing
-No match
- \\thing
-No match
-
-/^[]cde]/
- ]thing
- 0: ]
- cthing
- 0: c
- dthing
- 0: d
- ething
- 0: e
- *** Failers
-No match
- athing
-No match
- fthing
-No match
-
-/^[^ab\]cde]/
- fthing
- 0: f
- [thing
- 0: [
- \\thing
- 0: \
- *** Failers
- 0: *
- athing
-No match
- bthing
-No match
- ]thing
-No match
- cthing
-No match
- dthing
-No match
- ething
-No match
-
-/^[^]cde]/
- athing
- 0: a
- fthing
- 0: f
- *** Failers
- 0: *
- ]thing
-No match
- cthing
-No match
- dthing
-No match
- ething
-No match
-
-/^\/
-
- 0: \x81
-
-/^ÿ/
- ÿ
- 0: \xff
-
-/^[0-9]+$/
- 0
- 0: 0
- 1
- 0: 1
- 2
- 0: 2
- 3
- 0: 3
- 4
- 0: 4
- 5
- 0: 5
- 6
- 0: 6
- 7
- 0: 7
- 8
- 0: 8
- 9
- 0: 9
- 10
- 0: 10
- 100
- 0: 100
- *** Failers
-No match
- abc
-No match
-
-/^.*nter/
- enter
- 0: enter
- inter
- 0: inter
- uponter
- 0: uponter
-
-/^xxx[0-9]+$/
- xxx0
- 0: xxx0
- xxx1234
- 0: xxx1234
- *** Failers
-No match
- xxx
-No match
-
-/^.+[0-9][0-9][0-9]$/
- x123
- 0: x123
- xx123
- 0: xx123
- 123456
- 0: 123456
- *** Failers
-No match
- 123
-No match
- x1234
- 0: x1234
-
-/^.+?[0-9][0-9][0-9]$/
- x123
- 0: x123
- xx123
- 0: xx123
- 123456
- 0: 123456
- *** Failers
-No match
- 123
-No match
- x1234
- 0: x1234
-
-/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
- abc!pqr=apquxz.ixr.zzz.ac.uk
- 0: abc!pqr=apquxz.ixr.zzz.ac.uk
- 1: abc
- 2: pqr
- *** Failers
-No match
- !pqr=apquxz.ixr.zzz.ac.uk
-No match
- abc!=apquxz.ixr.zzz.ac.uk
-No match
- abc!pqr=apquxz:ixr.zzz.ac.uk
-No match
- abc!pqr=apquxz.ixr.zzz.ac.ukk
-No match
-
-/:/
- Well, we need a colon: somewhere
- 0: :
- *** Fail if we don't
-No match
-
-/([\da-f:]+)$/i
- 0abc
- 0: 0abc
- 1: 0abc
- abc
- 0: abc
- 1: abc
- fed
- 0: fed
- 1: fed
- E
- 0: E
- 1: E
- ::
- 0: ::
- 1: ::
- 5f03:12C0::932e
- 0: 5f03:12C0::932e
- 1: 5f03:12C0::932e
- fed def
- 0: def
- 1: def
- Any old stuff
- 0: ff
- 1: ff
- *** Failers
-No match
- 0zzz
-No match
- gzzz
-No match
- fed\x20
-No match
- Any old rubbish
-No match
-
-/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
- .1.2.3
- 0: .1.2.3
- 1: 1
- 2: 2
- 3: 3
- A.12.123.0
- 0: A.12.123.0
- 1: 12
- 2: 123
- 3: 0
- *** Failers
-No match
- .1.2.3333
-No match
- 1.2.3
-No match
- 1234.2.3
-No match
-
-/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
- 1 IN SOA non-sp1 non-sp2(
- 0: 1 IN SOA non-sp1 non-sp2(
- 1: 1
- 2: non-sp1
- 3: non-sp2
- 1 IN SOA non-sp1 non-sp2 (
- 0: 1 IN SOA non-sp1 non-sp2 (
- 1: 1
- 2: non-sp1
- 3: non-sp2
- *** Failers
-No match
- 1IN SOA non-sp1 non-sp2(
-No match
-
-/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
- a.
- 0: a.
- Z.
- 0: Z.
- 2.
- 0: 2.
- ab-c.pq-r.
- 0: ab-c.pq-r.
- 1: .pq-r
- sxk.zzz.ac.uk.
- 0: sxk.zzz.ac.uk.
- 1: .uk
- x-.y-.
- 0: x-.y-.
- 1: .y-
- *** Failers
-No match
- -abc.peq.
-No match
-
-/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
- *.a
- 0: *.a
- *.b0-a
- 0: *.b0-a
- 1: 0-a
- *.c3-b.c
- 0: *.c3-b.c
- 1: 3-b
- 2: .c
- *.c-a.b-c
- 0: *.c-a.b-c
- 1: -a
- 2: .b-c
- 3: -c
- *** Failers
-No match
- *.0
-No match
- *.a-
-No match
- *.a-b.c-
-No match
- *.c-a.0-c
-No match
-
-/^(?=ab(de))(abd)(e)/
- abde
- 0: abde
- 1: de
- 2: abd
- 3: e
-
-/^(?!(ab)de|x)(abd)(f)/
- abdf
- 0: abdf
- 1: <unset>
- 2: abd
- 3: f
-
-/^(?=(ab(cd)))(ab)/
- abcd
- 0: ab
- 1: abcd
- 2: cd
- 3: ab
-
-/^[\da-f](\.[\da-f])*$/i
- a.b.c.d
- 0: a.b.c.d
- 1: .d
- A.B.C.D
- 0: A.B.C.D
- 1: .D
- a.b.c.1.2.3.C
- 0: a.b.c.1.2.3.C
- 1: .C
-
-/^\".*\"\s*(;.*)?$/
- \"1234\"
- 0: "1234"
- \"abcd\" ;
- 0: "abcd" ;
- 1: ;
- \"\" ; rhubarb
- 0: "" ; rhubarb
- 1: ; rhubarb
- *** Failers
-No match
- \"1234\" : things
-No match
-
-/^$/
- \
- 0:
- *** Failers
-No match
-
-/ ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
- ab c
- 0: ab c
- *** Failers
-No match
- abc
-No match
- ab cde
-No match
-
-/(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
- ab c
- 0: ab c
- *** Failers
-No match
- abc
-No match
- ab cde
-No match
-
-/^ a\ b[c ]d $/x
- a bcd
- 0: a bcd
- a b d
- 0: a b d
- *** Failers
-No match
- abcd
-No match
- ab d
-No match
-
-/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
- abcdefhijklm
- 0: abcdefhijklm
- 1: abc
- 2: bc
- 3: c
- 4: def
- 5: ef
- 6: f
- 7: hij
- 8: ij
- 9: j
-10: klm
-11: lm
-12: m
-
-/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
- abcdefhijklm
- 0: abcdefhijklm
- 1: bc
- 2: c
- 3: ef
- 4: f
- 5: ij
- 6: j
- 7: lm
- 8: m
-
-/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
- a+ Z0+\x08\n\x1d\x12
- 0: a+ Z0+\x08\x0a\x1d\x12
-
-/^[.^$|()*+?{,}]+/
- .^\$(*+)|{?,?}
- 0: .^$(*+)|{?,?}
-
-/^a*\w/
- z
- 0: z
- az
- 0: az
- aaaz
- 0: aaaz
- a
- 0: a
- aa
- 0: aa
- aaaa
- 0: aaaa
- a+
- 0: a
- aa+
- 0: aa
-
-/^a*?\w/
- z
- 0: z
- az
- 0: a
- aaaz
- 0: a
- a
- 0: a
- aa
- 0: a
- aaaa
- 0: a
- a+
- 0: a
- aa+
- 0: a
-
-/^a+\w/
- az
- 0: az
- aaaz
- 0: aaaz
- aa
- 0: aa
- aaaa
- 0: aaaa
- aa+
- 0: aa
-
-/^a+?\w/
- az
- 0: az
- aaaz
- 0: aa
- aa
- 0: aa
- aaaa
- 0: aa
- aa+
- 0: aa
-
-/^\d{8}\w{2,}/
- 1234567890
- 0: 1234567890
- 12345678ab
- 0: 12345678ab
- 12345678__
- 0: 12345678__
- *** Failers
-No match
- 1234567
-No match
-
-/^[aeiou\d]{4,5}$/
- uoie
- 0: uoie
- 1234
- 0: 1234
- 12345
- 0: 12345
- aaaaa
- 0: aaaaa
- *** Failers
-No match
- 123456
-No match
-
-/^[aeiou\d]{4,5}?/
- uoie
- 0: uoie
- 1234
- 0: 1234
- 12345
- 0: 1234
- aaaaa
- 0: aaaa
- 123456
- 0: 1234
-
-/\A(abc|def)=(\1){2,3}\Z/
- abc=abcabc
- 0: abc=abcabc
- 1: abc
- 2: abc
- def=defdefdef
- 0: def=defdefdef
- 1: def
- 2: def
- *** Failers
-No match
- abc=defdef
-No match
-
-/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
- abcdefghijkcda2
- 0: abcdefghijkcda2
- 1: a
- 2: b
- 3: c
- 4: d
- 5: e
- 6: f
- 7: g
- 8: h
- 9: i
-10: j
-11: k
-12: cd
- abcdefghijkkkkcda2
- 0: abcdefghijkkkkcda2
- 1: a
- 2: b
- 3: c
- 4: d
- 5: e
- 6: f
- 7: g
- 8: h
- 9: i
-10: j
-11: k
-12: cd
-
-/(cat(a(ract|tonic)|erpillar)) \1()2(3)/
- cataract cataract23
- 0: cataract cataract23
- 1: cataract
- 2: aract
- 3: ract
- 4:
- 5: 3
- catatonic catatonic23
- 0: catatonic catatonic23
- 1: catatonic
- 2: atonic
- 3: tonic
- 4:
- 5: 3
- caterpillar caterpillar23
- 0: caterpillar caterpillar23
- 1: caterpillar
- 2: erpillar
- 3: <unset>
- 4:
- 5: 3
-
-
-/^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]/
- From abcd Mon Sep 01 12:33:02 1997
- 0: From abcd Mon Sep 01 12:33
- 1: abcd
-
-/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
- From abcd Mon Sep 01 12:33:02 1997
- 0: From abcd Mon Sep 01 12:33
- 1: Sep
- From abcd Mon Sep 1 12:33:02 1997
- 0: From abcd Mon Sep 1 12:33
- 1: Sep
- *** Failers
-No match
- From abcd Sep 01 12:33:02 1997
-No match
-
-/^12.34/s
- 12\n34
- 0: 12\x0a34
- 12\r34
- 0: 12\x0d34
-
-/\w+(?=\t)/
- the quick brown\t fox
- 0: brown
-
-/foo(?!bar)(.*)/
- foobar is foolish see?
- 0: foolish see?
- 1: lish see?
-
-/(?:(?!foo)...|^.{0,2})bar(.*)/
- foobar crowbar etc
- 0: rowbar etc
- 1: etc
- barrel
- 0: barrel
- 1: rel
- 2barrel
- 0: 2barrel
- 1: rel
- A barrel
- 0: A barrel
- 1: rel
-
-/^(\D*)(?=\d)(?!123)/
- abc456
- 0: abc
- 1: abc
- *** Failers
-No match
- abc123
-No match
-
-/^1234(?# test newlines
- inside)/
- 1234
- 0: 1234
-
-/^1234 #comment in extended re
- /x
- 1234
- 0: 1234
-
-/#rhubarb
- abcd/x
- abcd
- 0: abcd
-
-/^abcd#rhubarb/x
- abcd
- 0: abcd
-
-/^(a)\1{2,3}(.)/
- aaab
- 0: aaab
- 1: a
- 2: b
- aaaab
- 0: aaaab
- 1: a
- 2: b
- aaaaab
- 0: aaaaa
- 1: a
- 2: a
- aaaaaab
- 0: aaaaa
- 1: a
- 2: a
-
-/(?!^)abc/
- the abc
- 0: abc
- *** Failers
-No match
- abc
-No match
-
-/(?=^)abc/
- abc
- 0: abc
- *** Failers
-No match
- the abc
-No match
-
-/^[ab]{1,3}(ab*|b)/
- aabbbbb
- 0: aabb
- 1: b
-
-/^[ab]{1,3}?(ab*|b)/
- aabbbbb
- 0: aabbbbb
- 1: abbbbb
-
-/^[ab]{1,3}?(ab*?|b)/
- aabbbbb
- 0: aa
- 1: a
-
-/^[ab]{1,3}(ab*?|b)/
- aabbbbb
- 0: aabb
- 1: b
-
-/abc\0def\00pqr\000xyz\0000AB/
- abc\0def\00pqr\000xyz\0000AB
- 0: abc\x00def\x00pqr\x00xyz\x000AB
- abc456 abc\0def\00pqr\000xyz\0000ABCDE
- 0: abc\x00def\x00pqr\x00xyz\x000AB
-
-/abc\x0def\x00pqr\x000xyz\x0000AB/
- abc\x0def\x00pqr\x000xyz\x0000AB
- 0: abc\x0def\x00pqr\x000xyz\x0000AB
- abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
- 0: abc\x0def\x00pqr\x000xyz\x0000AB
-
-/^[\000-\037]/
- \0A
- 0: \x00
- \01B
- 0: \x01
- \037C
- 0: \x1f
-
-/\0*/
- \0\0\0\0
- 0: \x00\x00\x00\x00
-
-/A\x0{2,3}Z/
- The A\x0\x0Z
- 0: A\x00\x00Z
- An A\0\x0\0Z
- 0: A\x00\x00\x00Z
- *** Failers
-No match
- A\0Z
-No match
- A\0\x0\0\x0Z
-No match
-
-/^(cow|)\1(bell)/
- cowcowbell
- 0: cowcowbell
- 1: cow
- 2: bell
- bell
- 0: bell
- 1:
- 2: bell
- *** Failers
-No match
- cowbell
-No match
-
-/^\s/
- \040abc
- 0:
- \x0cabc
- 0: \x0c
- \nabc
- 0: \x0a
- \rabc
- 0: \x0d
- \tabc
- 0: \x09
- *** Failers
-No match
- abc
-No match
-
-/^a b
- c/x
- abc
- 0: abc
-
-/^(a|)\1*b/
- ab
- 0: ab
- 1: a
- aaaab
- 0: aaaab
- 1: a
- b
- 0: b
- 1:
- *** Failers
-No match
- acb
-No match
-
-/^(a|)\1+b/
- aab
- 0: aab
- 1: a
- aaaab
- 0: aaaab
- 1: a
- b
- 0: b
- 1:
- *** Failers
-No match
- ab
-No match
-
-/^(a|)\1?b/
- ab
- 0: ab
- 1: a
- aab
- 0: aab
- 1: a
- b
- 0: b
- 1:
- *** Failers
-No match
- acb
-No match
-
-/^(a|)\1{2}b/
- aaab
- 0: aaab
- 1: a
- b
- 0: b
- 1:
- *** Failers
-No match
- ab
-No match
- aab
-No match
- aaaab
-No match
-
-/^(a|)\1{2,3}b/
- aaab
- 0: aaab
- 1: a
- aaaab
- 0: aaaab
- 1: a
- b
- 0: b
- 1:
- *** Failers
-No match
- ab
-No match
- aab
-No match
- aaaaab
-No match
-
-/ab{1,3}bc/
- abbbbc
- 0: abbbbc
- abbbc
- 0: abbbc
- abbc
- 0: abbc
- *** Failers
-No match
- abc
-No match
- abbbbbc
-No match
-
-/([^.]*)\.([^:]*):[T ]+(.*)/
- track1.title:TBlah blah blah
- 0: track1.title:TBlah blah blah
- 1: track1
- 2: title
- 3: Blah blah blah
-
-/([^.]*)\.([^:]*):[T ]+(.*)/i
- track1.title:TBlah blah blah
- 0: track1.title:TBlah blah blah
- 1: track1
- 2: title
- 3: Blah blah blah
-
-/([^.]*)\.([^:]*):[t ]+(.*)/i
- track1.title:TBlah blah blah
- 0: track1.title:TBlah blah blah
- 1: track1
- 2: title
- 3: Blah blah blah
-
-/^[W-c]+$/
- WXY_^abc
- 0: WXY_^abc
- *** Failers
-No match
- wxy
-No match
-
-/^[W-c]+$/i
- WXY_^abc
- 0: WXY_^abc
- wxy_^ABC
- 0: wxy_^ABC
-
-/^[\x3f-\x5F]+$/i
- WXY_^abc
- 0: WXY_^abc
- wxy_^ABC
- 0: wxy_^ABC
-
-/^abc$/m
- abc
- 0: abc
- qqq\nabc
- 0: abc
- abc\nzzz
- 0: abc
- qqq\nabc\nzzz
- 0: abc
-
-/^abc$/
- abc
- 0: abc
- *** Failers
-No match
- qqq\nabc
-No match
- abc\nzzz
-No match
- qqq\nabc\nzzz
-No match
-
-/\Aabc\Z/m
- abc
- 0: abc
- abc\n
- 0: abc
- *** Failers
-No match
- qqq\nabc
-No match
- abc\nzzz
-No match
- qqq\nabc\nzzz
-No match
-
-/\A(.)*\Z/s
- abc\ndef
- 0: abc\x0adef
- 1: f
-
-/\A(.)*\Z/m
- *** Failers
- 0: *** Failers
- 1: s
- abc\ndef
-No match
-
-/(?:b)|(?::+)/
- b::c
- 0: b
- c::b
- 0: ::
-
-/[-az]+/
- az-
- 0: az-
- *** Failers
- 0: a
- b
-No match
-
-/[az-]+/
- za-
- 0: za-
- *** Failers
- 0: a
- b
-No match
-
-/[a\-z]+/
- a-z
- 0: a-z
- *** Failers
- 0: a
- b
-No match
-
-/[a-z]+/
- abcdxyz
- 0: abcdxyz
-
-/[\d-]+/
- 12-34
- 0: 12-34
- *** Failers
-No match
- aaa
-No match
-
-/[\d-z]+/
- 12-34z
- 0: 12-34z
- *** Failers
-No match
- aaa
-No match
-
-/\x5c/
- \\
- 0: \
-
-/\x20Z/
- the Zoo
- 0: Z
- *** Failers
-No match
- Zulu
-No match
-
-/(abc)\1/i
- abcabc
- 0: abcabc
- 1: abc
- ABCabc
- 0: ABCabc
- 1: ABC
- abcABC
- 0: abcABC
- 1: abc
-
-/ab{3cd/
- ab{3cd
- 0: ab{3cd
-
-/ab{3,cd/
- ab{3,cd
- 0: ab{3,cd
-
-/ab{3,4a}cd/
- ab{3,4a}cd
- 0: ab{3,4a}cd
-
-/{4,5a}bc/
- {4,5a}bc
- 0: {4,5a}bc
-
-/abc$/
- abc
- 0: abc
- abc\n
- 0: abc
- *** Failers
-No match
- abc\ndef
-No match
-
-/(abc)\123/
- abc\x53
- 0: abcS
- 1: abc
-
-/(abc)\223/
- abc\x93
- 0: abc\x93
- 1: abc
-
-/(abc)\323/
- abc\xd3
- 0: abc\xd3
- 1: abc
-
-/(abc)\100/
- abc\x40
- 0: abc@
- 1: abc
- abc\100
- 0: abc@
- 1: abc
-
-/(abc)\1000/
- abc\x400
- 0: abc at 0
- 1: abc
- abc\x40\x30
- 0: abc at 0
- 1: abc
- abc\1000
- 0: abc at 0
- 1: abc
- abc\100\x30
- 0: abc at 0
- 1: abc
- abc\100\060
- 0: abc at 0
- 1: abc
- abc\100\60
- 0: abc at 0
- 1: abc
-
-/abc\81/
- abc\081
- 0: abc\x0081
- abc\0\x38\x31
- 0: abc\x0081
-
-/abc\91/
- abc\091
- 0: abc\x0091
- abc\0\x39\x31
- 0: abc\x0091
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
- abcdefghijkllS
- 0: abcdefghijkllS
- 1: a
- 2: b
- 3: c
- 4: d
- 5: e
- 6: f
- 7: g
- 8: h
- 9: i
-10: j
-11: k
-12: l
-
-/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
- abcdefghijk\12S
- 0: abcdefghijk\x0aS
- 1: a
- 2: b
- 3: c
- 4: d
- 5: e
- 6: f
- 7: g
- 8: h
- 9: i
-10: j
-11: k
-
-/ab\idef/
- abidef
- 0: abidef
-
-/a{0}bc/
- bc
- 0: bc
-
-/(a|(bc)){0,0}?xyz/
- xyz
- 0: xyz
-
-/abc[\10]de/
- abc\010de
- 0: abc\x08de
-
-/abc[\1]de/
- abc\1de
- 0: abc\x01de
-
-/(abc)[\1]de/
- abc\1de
- 0: abc\x01de
- 1: abc
-
-/(?s)a.b/
- a\nb
- 0: a\x0ab
-
-/^([^a])([^\b])([^c]*)([^d]{3,4})/
- baNOTccccd
- 0: baNOTcccc
- 1: b
- 2: a
- 3: NOT
- 4: cccc
- baNOTcccd
- 0: baNOTccc
- 1: b
- 2: a
- 3: NOT
- 4: ccc
- baNOTccd
- 0: baNOTcc
- 1: b
- 2: a
- 3: NO
- 4: Tcc
- bacccd
- 0: baccc
- 1: b
- 2: a
- 3:
- 4: ccc
- *** Failers
- 0: *** Failers
- 1: *
- 2: *
- 3: * Fail
- 4: ers
- anything
-No match
- b\bc
-No match
- baccd
-No match
-
-/[^a]/
- Abc
- 0: A
-
-/[^a]/i
- Abc
- 0: b
-
-/[^a]+/
- AAAaAbc
- 0: AAA
-
-/[^a]+/i
- AAAaAbc
- 0: bc
-
-/[^a]+/
- bbb\nccc
- 0: bbb\x0accc
-
-/[^k]$/
- abc
- 0: c
- *** Failers
- 0: s
- abk
-No match
-
-/[^k]{2,3}$/
- abc
- 0: abc
- kbc
- 0: bc
- kabc
- 0: abc
- *** Failers
- 0: ers
- abk
-No match
- akb
-No match
- akk
-No match
-
-/^\d{8,}\@.+[^k]$/
- 12345678\@a.b.c.d
- 0: 12345678 at a.b.c.d
- 123456789\@x.y.z
- 0: 123456789 at x.y.z
- *** Failers
-No match
- 12345678\@x.y.uk
-No match
- 1234567\@a.b.c.d
-No match
-
-/(a)\1{8,}/
- aaaaaaaaa
- 0: aaaaaaaaa
- 1: a
- aaaaaaaaaa
- 0: aaaaaaaaaa
- 1: a
- *** Failers
-No match
- aaaaaaa
-No match
-
-/[^a]/
- aaaabcd
- 0: b
- aaAabcd
- 0: A
-
-/[^a]/i
- aaaabcd
- 0: b
- aaAabcd
- 0: b
-
-/[^az]/
- aaaabcd
- 0: b
- aaAabcd
- 0: A
-
-/[^az]/i
- aaaabcd
- 0: b
- aaAabcd
- 0: b
-
-/\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/
- \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
- 0: \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
-
-/P[^*]TAIRE[^*]{1,6}?LL/
- xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
- 0: PSTAIREISLL
-
-/P[^*]TAIRE[^*]{1,}?LL/
- xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
- 0: PSTAIREISLL
-
-/(\.\d\d[1-9]?)\d+/
- 1.230003938
- 0: .230003938
- 1: .23
- 1.875000282
- 0: .875000282
- 1: .875
- 1.235
- 0: .235
- 1: .23
-
-/(\.\d\d((?=0)|\d(?=\d)))/
- 1.230003938
- 0: .23
- 1: .23
- 2:
- 1.875000282
- 0: .875
- 1: .875
- 2: 5
- *** Failers
-No match
- 1.235
-No match
-
-/a(?)b/
- ab
- 0: ab
-
-/\b(foo)\s+(\w+)/i
- Food is on the foo table
- 0: foo table
- 1: foo
- 2: table
-
-/foo(.*)bar/
- The food is under the bar in the barn.
- 0: food is under the bar in the bar
- 1: d is under the bar in the
-
-/foo(.*?)bar/
- The food is under the bar in the barn.
- 0: food is under the bar
- 1: d is under the
-
-/(.*)(\d*)/
- I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 53147
- 2:
-
-/(.*)(\d+)/
- I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 5314
- 2: 7
-
-/(.*?)(\d*)/
- I have 2 numbers: 53147
- 0:
- 1:
- 2:
-
-/(.*?)(\d+)/
- I have 2 numbers: 53147
- 0: I have 2
- 1: I have
- 2: 2
-
-/(.*)(\d+)$/
- I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers: 5314
- 2: 7
-
-/(.*?)(\d+)$/
- I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers:
- 2: 53147
-
-/(.*)\b(\d+)$/
- I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers:
- 2: 53147
-
-/(.*\D)(\d+)$/
- I have 2 numbers: 53147
- 0: I have 2 numbers: 53147
- 1: I have 2 numbers:
- 2: 53147
-
-/^\D*(?!123)/
- ABC123
- 0: AB
-
-/^(\D*)(?=\d)(?!123)/
- ABC445
- 0: ABC
- 1: ABC
- *** Failers
-No match
- ABC123
-No match
-
-/^[W-]46]/
- W46]789
- 0: W46]
- -46]789
- 0: -46]
- *** Failers
-No match
- Wall
-No match
- Zebra
-No match
- 42
-No match
- [abcd]
-No match
- ]abcd[
-No match
-
-/^[W-\]46]/
- W46]789
- 0: W
- Wall
- 0: W
- Zebra
- 0: Z
- Xylophone
- 0: X
- 42
- 0: 4
- [abcd]
- 0: [
- ]abcd[
- 0: ]
- \\backslash
- 0: \
- *** Failers
-No match
- -46]789
-No match
- well
-No match
-
-/\d\d\/\d\d\/\d\d\d\d/
- 01/01/2000
- 0: 01/01/2000
-
-/word (?:[a-zA-Z0-9]+ ){0,10}otherword/
- word cat dog elephant mussel cow horse canary baboon snake shark otherword
- 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
- word cat dog elephant mussel cow horse canary baboon snake shark
-No match
-
-/word (?:[a-zA-Z0-9]+ ){0,300}otherword/
- 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
-No match
-
-/^(a){0,0}/
- bcd
- 0:
- abc
- 0:
- aab
- 0:
-
-/^(a){0,1}/
- bcd
- 0:
- abc
- 0: a
- 1: a
- aab
- 0: a
- 1: a
-
-/^(a){0,2}/
- bcd
- 0:
- abc
- 0: a
- 1: a
- aab
- 0: aa
- 1: a
-
-/^(a){0,3}/
- bcd
- 0:
- abc
- 0: a
- 1: a
- aab
- 0: aa
- 1: a
- aaa
- 0: aaa
- 1: a
-
-/^(a){0,}/
- bcd
- 0:
- abc
- 0: a
- 1: a
- aab
- 0: aa
- 1: a
- aaa
- 0: aaa
- 1: a
- aaaaaaaa
- 0: aaaaaaaa
- 1: a
-
-/^(a){1,1}/
- bcd
-No match
- abc
- 0: a
- 1: a
- aab
- 0: a
- 1: a
-
-/^(a){1,2}/
- bcd
-No match
- abc
- 0: a
- 1: a
- aab
- 0: aa
- 1: a
-
-/^(a){1,3}/
- bcd
-No match
- abc
- 0: a
- 1: a
- aab
- 0: aa
- 1: a
- aaa
- 0: aaa
- 1: a
-
-/^(a){1,}/
- bcd
-No match
- abc
- 0: a
- 1: a
- aab
- 0: aa
- 1: a
- aaa
- 0: aaa
- 1: a
- aaaaaaaa
- 0: aaaaaaaa
- 1: a
-
-/.*\.gif/
- borfle\nbib.gif\nno
- 0: bib.gif
-
-/.{0,}\.gif/
- borfle\nbib.gif\nno
- 0: bib.gif
-
-/.*\.gif/m
- borfle\nbib.gif\nno
- 0: bib.gif
-
-/.*\.gif/s
- borfle\nbib.gif\nno
- 0: borfle\x0abib.gif
-
-/.*\.gif/ms
- borfle\nbib.gif\nno
- 0: borfle\x0abib.gif
-
-/.*$/
- borfle\nbib.gif\nno
- 0: no
-
-/.*$/m
- borfle\nbib.gif\nno
- 0: borfle
-
-/.*$/s
- borfle\nbib.gif\nno
- 0: borfle\x0abib.gif\x0ano
-
-/.*$/ms
- borfle\nbib.gif\nno
- 0: borfle\x0abib.gif\x0ano
-
-/.*$/
- borfle\nbib.gif\nno\n
- 0: no
-
-/.*$/m
- borfle\nbib.gif\nno\n
- 0: borfle
-
-/.*$/s
- borfle\nbib.gif\nno\n
- 0: borfle\x0abib.gif\x0ano\x0a
-
-/.*$/ms
- borfle\nbib.gif\nno\n
- 0: borfle\x0abib.gif\x0ano\x0a
-
-/(.*X|^B)/
- abcde\n1234Xyz
- 0: 1234X
- 1: 1234X
- BarFoo
- 0: B
- 1: B
- *** Failers
-No match
- abcde\nBar
-No match
-
-/(.*X|^B)/m
- abcde\n1234Xyz
- 0: 1234X
- 1: 1234X
- BarFoo
- 0: B
- 1: B
- abcde\nBar
- 0: B
- 1: B
-
-/(.*X|^B)/s
- abcde\n1234Xyz
- 0: abcde\x0a1234X
- 1: abcde\x0a1234X
- BarFoo
- 0: B
- 1: B
- *** Failers
-No match
- abcde\nBar
-No match
-
-/(.*X|^B)/ms
- abcde\n1234Xyz
- 0: abcde\x0a1234X
- 1: abcde\x0a1234X
- BarFoo
- 0: B
- 1: B
- abcde\nBar
- 0: B
- 1: B
-
-/(?s)(.*X|^B)/
- abcde\n1234Xyz
- 0: abcde\x0a1234X
- 1: abcde\x0a1234X
- BarFoo
- 0: B
- 1: B
- *** Failers
-No match
- abcde\nBar
-No match
-
-/(?s:.*X|^B)/
- abcde\n1234Xyz
- 0: abcde\x0a1234X
- BarFoo
- 0: B
- *** Failers
-No match
- abcde\nBar
-No match
-
-/^.*B/
- **** Failers
-No match
- abc\nB
-No match
-
-/(?s)^.*B/
- abc\nB
- 0: abc\x0aB
-
-/(?m)^.*B/
- abc\nB
- 0: B
-
-/(?ms)^.*B/
- abc\nB
- 0: abc\x0aB
-
-/(?ms)^B/
- abc\nB
- 0: B
-
-/(?s)B$/
- B\n
- 0: B
-
-/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
- 123456654321
- 0: 123456654321
-
-/^\d\d\d\d\d\d\d\d\d\d\d\d/
- 123456654321
- 0: 123456654321
-
-/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
- 123456654321
- 0: 123456654321
-
-/^[abc]{12}/
- abcabcabcabc
- 0: abcabcabcabc
-
-/^[a-c]{12}/
- abcabcabcabc
- 0: abcabcabcabc
-
-/^(a|b|c){12}/
- abcabcabcabc
- 0: abcabcabcabc
- 1: c
-
-/^[abcdefghijklmnopqrstuvwxy0123456789]/
- n
- 0: n
- *** Failers
-No match
- z
-No match
-
-/abcde{0,0}/
- abcd
- 0: abcd
- *** Failers
-No match
- abce
-No match
-
-/ab[cd]{0,0}e/
- abe
- 0: abe
- *** Failers
-No match
- abcde
-No match
-
-/ab(c){0,0}d/
- abd
- 0: abd
- *** Failers
-No match
- abcd
-No match
-
-/a(b*)/
- a
- 0: a
- 1:
- ab
- 0: ab
- 1: b
- abbbb
- 0: abbbb
- 1: bbbb
- *** Failers
- 0: a
- 1:
- bbbbb
-No match
-
-/ab\d{0}e/
- abe
- 0: abe
- *** Failers
-No match
- ab1e
-No match
-
-/"([^\\"]+|\\.)*"/
- the \"quick\" brown fox
- 0: "quick"
- 1: quick
- \"the \\\"quick\\\" brown fox\"
- 0: "the \"quick\" brown fox"
- 1: brown fox
-
-/.*?/g+
- abc
- 0:
- 0+ abc
- 0: a
- 0+ bc
- 0:
- 0+ bc
- 0: b
- 0+ c
- 0:
- 0+ c
- 0: c
- 0+
- 0:
- 0+
-
-/\b/g+
- abc
- 0:
- 0+ abc
- 0:
- 0+
-
-/\b/+g
- abc
- 0:
- 0+ abc
- 0:
- 0+
-
-//g
- abc
- 0:
- 0:
- 0:
- 0:
-
-/<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>/is
- <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>
- 0: <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>
- 1: BGCOLOR='#DBE9E9'
- 2: align=left valign=top
- 3: 43.
- 4: <a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)
- 5:
- 6:
- 7: <unset>
- 8: align=left valign=top
- 9: Lega lstaff.com
-10: align=left valign=top
-11: CA - Statewide
-
-/a[^a]b/
- acb
- 0: acb
- a\nb
- 0: a\x0ab
-
-/a.b/
- acb
- 0: acb
- *** Failers
-No match
- a\nb
-No match
-
-/a[^a]b/s
- acb
- 0: acb
- a\nb
- 0: a\x0ab
-
-/a.b/s
- acb
- 0: acb
- a\nb
- 0: a\x0ab
-
-/^(b+?|a){1,2}?c/
- bac
- 0: bac
- 1: a
- bbac
- 0: bbac
- 1: a
- bbbac
- 0: bbbac
- 1: a
- bbbbac
- 0: bbbbac
- 1: a
- bbbbbac
- 0: bbbbbac
- 1: a
-
-/^(b+|a){1,2}?c/
- bac
- 0: bac
- 1: a
- bbac
- 0: bbac
- 1: a
- bbbac
- 0: bbbac
- 1: a
- bbbbac
- 0: bbbbac
- 1: a
- bbbbbac
- 0: bbbbbac
- 1: a
-
-/(?!\A)x/m
- x\nb\n
-No match
- a\bx\n
- 0: x
-
-/\x0{ab}/
- \0{ab}
- 0: \x00{ab}
-
-/(A|B)*?CD/
- CD
- 0: CD
-
-/(A|B)*CD/
- CD
- 0: CD
-
-/(AB)*?\1/
- ABABAB
- 0: ABAB
- 1: AB
-
-/(AB)*\1/
- ABABAB
- 0: ABABAB
- 1: AB
-
-/(?<!bar)foo/
- foo
- 0: foo
- catfood
- 0: foo
- arfootle
- 0: foo
- rfoosh
- 0: foo
- *** Failers
-No match
- barfoo
-No match
- towbarfoo
-No match
-
-/\w{3}(?<!bar)foo/
- catfood
- 0: catfoo
- *** Failers
-No match
- foo
-No match
- barfoo
-No match
- towbarfoo
-No match
-
-/(?<=(foo)a)bar/
- fooabar
- 0: bar
- 1: foo
- *** Failers
-No match
- bar
-No match
- foobbar
-No match
-
-/\Aabc\z/m
- abc
- 0: abc
- *** Failers
-No match
- abc\n
-No match
- qqq\nabc
-No match
- abc\nzzz
-No match
- qqq\nabc\nzzz
-No match
-
-"(?>.*/)foo"
- /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
-No match
-
-"(?>.*/)foo"
- /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
- 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
-
-/(?>(\.\d\d[1-9]?))\d+/
- 1.230003938
- 0: .230003938
- 1: .23
- 1.875000282
- 0: .875000282
- 1: .875
- *** Failers
-No match
- 1.235
-No match
-
-/^((?>\w+)|(?>\s+))*$/
- now is the time for all good men to come to the aid of the party
- 0: now is the time for all good men to come to the aid of the party
- 1: party
- *** Failers
-No match
- this is not a line with only words and spaces!
-No match
-
-/(\d+)(\w)/
- 12345a
- 0: 12345a
- 1: 12345
- 2: a
- 12345+
- 0: 12345
- 1: 1234
- 2: 5
-
-/((?>\d+))(\w)/
- 12345a
- 0: 12345a
- 1: 12345
- 2: a
- *** Failers
-No match
- 12345+
-No match
-
-/(?>a+)b/
- aaab
- 0: aaab
-
-/((?>a+)b)/
- aaab
- 0: aaab
- 1: aaab
-
-/(?>(a+))b/
- aaab
- 0: aaab
- 1: aaa
-
-/(?>b)+/
- aaabbbccc
- 0: bbb
-
-/(?>a+|b+|c+)*c/
- aaabbbbccccd
- 0: aaabbbbc
-
-/((?>[^()]+)|\([^()]*\))+/
- ((abc(ade)ufh()()x
- 0: abc(ade)ufh()()x
- 1: x
-
-/\(((?>[^()]+)|\([^()]+\))+\)/
- (abc)
- 0: (abc)
- 1: abc
- (abc(def)xyz)
- 0: (abc(def)xyz)
- 1: xyz
- *** Failers
-No match
- ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
-
-/a(?-i)b/i
- ab
- 0: ab
- Ab
- 0: Ab
- *** Failers
-No match
- aB
-No match
- AB
-No match
-
-/(a (?x)b c)d e/
- a bcd e
- 0: a bcd e
- 1: a bc
- *** Failers
-No match
- a b cd e
-No match
- abcd e
-No match
- a bcde
-No match
-
-/(a b(?x)c d (?-x)e f)/
- a bcde f
- 0: a bcde f
- 1: a bcde f
- *** Failers
-No match
- abcdef
-No match
-
-/(a(?i)b)c/
- abc
- 0: abc
- 1: ab
- aBc
- 0: aBc
- 1: aB
- *** Failers
-No match
- abC
-No match
- aBC
-No match
- Abc
-No match
- ABc
-No match
- ABC
-No match
- AbC
-No match
-
-/a(?i:b)c/
- abc
- 0: abc
- aBc
- 0: aBc
- *** Failers
-No match
- ABC
-No match
- abC
-No match
- aBC
-No match
-
-/a(?i:b)*c/
- aBc
- 0: aBc
- aBBc
- 0: aBBc
- *** Failers
-No match
- aBC
-No match
- aBBC
-No match
-
-/a(?=b(?i)c)\w\wd/
- abcd
- 0: abcd
- abCd
- 0: abCd
- *** Failers
-No match
- aBCd
-No match
- abcD
-No match
-
-/(?s-i:more.*than).*million/i
- more than million
- 0: more than million
- more than MILLION
- 0: more than MILLION
- more \n than Million
- 0: more \x0a than Million
- *** Failers
-No match
- MORE THAN MILLION
-No match
- more \n than \n million
-No match
-
-/(?:(?s-i)more.*than).*million/i
- more than million
- 0: more than million
- more than MILLION
- 0: more than MILLION
- more \n than Million
- 0: more \x0a than Million
- *** Failers
-No match
- MORE THAN MILLION
-No match
- more \n than \n million
-No match
-
-/(?>a(?i)b+)+c/
- abc
- 0: abc
- aBbc
- 0: aBbc
- aBBc
- 0: aBBc
- *** Failers
-No match
- Abc
-No match
- abAb
-No match
- abbC
-No match
-
-/(?=a(?i)b)\w\wc/
- abc
- 0: abc
- aBc
- 0: aBc
- *** Failers
-No match
- Ab
-No match
- abC
-No match
- aBC
-No match
-
-/(?<=a(?i)b)(\w\w)c/
- abxxc
- 0: xxc
- 1: xx
- aBxxc
- 0: xxc
- 1: xx
- *** Failers
-No match
- Abxxc
-No match
- ABxxc
-No match
- abxxC
-No match
-
-/(?:(a)|b)(?(1)A|B)/
- aA
- 0: aA
- 1: a
- bB
- 0: bB
- *** Failers
-No match
- aB
-No match
- bA
-No match
-
-/^(a)?(?(1)a|b)+$/
- aa
- 0: aa
- 1: a
- b
- 0: b
- bb
- 0: bb
- *** Failers
-No match
- ab
-No match
-
-/^(?(?=abc)\w{3}:|\d\d)$/
- abc:
- 0: abc:
- 12
- 0: 12
- *** Failers
-No match
- 123
-No match
- xyz
-No match
-
-/^(?(?!abc)\d\d|\w{3}:)$/
- abc:
- 0: abc:
- 12
- 0: 12
- *** Failers
-No match
- 123
-No match
- xyz
-No match
-
-/(?(?<=foo)bar|cat)/
- foobar
- 0: bar
- cat
- 0: cat
- fcat
- 0: cat
- focat
- 0: cat
- *** Failers
-No match
- foocat
-No match
-
-/(?(?<!foo)cat|bar)/
- foobar
- 0: bar
- cat
- 0: cat
- fcat
- 0: cat
- focat
- 0: cat
- *** Failers
-No match
- foocat
-No match
-
-/( \( )? [^()]+ (?(1) \) |) /x
- abcd
- 0: abcd
- (abcd)
- 0: (abcd)
- 1: (
- the quick (abcd) fox
- 0: the quick
- (abcd
- 0: abcd
-
-/( \( )? [^()]+ (?(1) \) ) /x
- abcd
- 0: abcd
- (abcd)
- 0: (abcd)
- 1: (
- the quick (abcd) fox
- 0: the quick
- (abcd
- 0: abcd
-
-/^(?(2)a|(1)(2))+$/
- 12
- 0: 12
- 1: 1
- 2: 2
- 12a
- 0: 12a
- 1: 1
- 2: 2
- 12aa
- 0: 12aa
- 1: 1
- 2: 2
- *** Failers
-No match
- 1234
-No match
-
-/((?i)blah)\s+\1/
- blah blah
- 0: blah blah
- 1: blah
- BLAH BLAH
- 0: BLAH BLAH
- 1: BLAH
- Blah Blah
- 0: Blah Blah
- 1: Blah
- blaH blaH
- 0: blaH blaH
- 1: blaH
- *** Failers
-No match
- blah BLAH
-No match
- Blah blah
-No match
- blaH blah
-No match
-
-/((?i)blah)\s+(?i:\1)/
- blah blah
- 0: blah blah
- 1: blah
- BLAH BLAH
- 0: BLAH BLAH
- 1: BLAH
- Blah Blah
- 0: Blah Blah
- 1: Blah
- blaH blaH
- 0: blaH blaH
- 1: blaH
- blah BLAH
- 0: blah BLAH
- 1: blah
- Blah blah
- 0: Blah blah
- 1: Blah
- blaH blah
- 0: blaH blah
- 1: blaH
-
-/(?>a*)*/
- a
- 0: a
- aa
- 0: aa
- aaaa
- 0: aaaa
-
-/(abc|)+/
- abc
- 0: abc
- 1: abc
- abcabc
- 0: abcabc
- 1: abc
- abcabcabc
- 0: abcabcabc
- 1: abc
- xyz
- 0:
- 1:
-
-/([a]*)*/
- a
- 0: a
- 1: a
- aaaaa
- 0: aaaaa
- 1: aaaaa
-
-/([ab]*)*/
- a
- 0: a
- 1: a
- b
- 0: b
- 1: b
- ababab
- 0: ababab
- 1: ababab
- aaaabcde
- 0: aaaab
- 1: aaaab
- bbbb
- 0: bbbb
- 1: bbbb
-
-/([^a]*)*/
- b
- 0: b
- 1: b
- bbbb
- 0: bbbb
- 1: bbbb
- aaa
- 0:
- 1:
-
-/([^ab]*)*/
- cccc
- 0: cccc
- 1: cccc
- abab
- 0:
- 1:
-
-/([a]*?)*/
- a
- 0: a
- 1: a
- aaaa
- 0: aaaa
- 1: a
-
-/([ab]*?)*/
- a
- 0: a
- 1: a
- b
- 0: b
- 1: b
- abab
- 0: abab
- 1: b
- baba
- 0: baba
- 1: a
-
-/([^a]*?)*/
- b
- 0: b
- 1: b
- bbbb
- 0: bbbb
- 1: b
- aaa
- 0:
- 1:
-
-/([^ab]*?)*/
- c
- 0: c
- 1: c
- cccc
- 0: cccc
- 1: c
- baba
- 0:
- 1:
-
-/(?>a*)*/
- a
- 0: a
- aaabcde
- 0: aaa
-
-/((?>a*))*/
- aaaaa
- 0: aaaaa
- 1:
- aabbaa
- 0: aa
- 1:
-
-/((?>a*?))*/
- aaaaa
- 0:
- 1:
- aabbaa
- 0:
- 1:
-
-/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
- 12-sep-98
- 0: 12-sep-98
- 12-09-98
- 0: 12-09-98
- *** Failers
-No match
- sep-12-98
-No match
-
-/(?<=(foo))bar\1/
- foobarfoo
- 0: barfoo
- 1: foo
- foobarfootling
- 0: barfoo
- 1: foo
- *** Failers
-No match
- foobar
-No match
- barfoo
-No match
-
-/(?i:saturday|sunday)/
- saturday
- 0: saturday
- sunday
- 0: sunday
- Saturday
- 0: Saturday
- Sunday
- 0: Sunday
- SATURDAY
- 0: SATURDAY
- SUNDAY
- 0: SUNDAY
- SunDay
- 0: SunDay
-
-/(a(?i)bc|BB)x/
- abcx
- 0: abcx
- 1: abc
- aBCx
- 0: aBCx
- 1: aBC
- bbx
- 0: bbx
- 1: bb
- BBx
- 0: BBx
- 1: BB
- *** Failers
-No match
- abcX
-No match
- aBCX
-No match
- bbX
-No match
- BBX
-No match
-
-/^([ab](?i)[cd]|[ef])/
- ac
- 0: ac
- 1: ac
- aC
- 0: aC
- 1: aC
- bD
- 0: bD
- 1: bD
- elephant
- 0: e
- 1: e
- Europe
- 0: E
- 1: E
- frog
- 0: f
- 1: f
- France
- 0: F
- 1: F
- *** Failers
-No match
- Africa
-No match
-
-/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
- ab
- 0: ab
- 1: ab
- aBd
- 0: aBd
- 1: aBd
- xy
- 0: xy
- 1: xy
- xY
- 0: xY
- 1: xY
- zebra
- 0: z
- 1: z
- Zambesi
- 0: Z
- 1: Z
- *** Failers
-No match
- aCD
-No match
- XY
-No match
-
-/(?<=foo\n)^bar/m
- foo\nbar
- 0: bar
- *** Failers
-No match
- bar
-No match
- baz\nbar
-No match
-
-/(?<=(?<!foo)bar)baz/
- barbaz
- 0: baz
- barbarbaz
- 0: baz
- koobarbaz
- 0: baz
- *** Failers
-No match
- baz
-No match
- foobarbaz
-No match
-
-/The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
-/it wrong; it sets $1 to aaa rather than aa. Compare the following test,/
-No match
-/where it does set $1 to aa when matching aaaaaa./
-No match
-
-/^(a\1?){4}$/
- a
-No match
- aa
-No match
- aaa
-No match
- aaaa
- 0: aaaa
- 1: a
- aaaaa
-No match
- aaaaaaa
-No match
- aaaaaaaa
-No match
- aaaaaaaaa
-No match
- aaaaaaaaaa
-No match
- aaaaaaaaaaa
-No match
- aaaaaaaaaaaa
-No match
- aaaaaaaaaaaaa
-No match
- aaaaaaaaaaaaaa
-No match
- aaaaaaaaaaaaaaa
-No match
- aaaaaaaaaaaaaaaa
-No match
-
-/^(a\1?)(a\1?)(a\2?)(a\3?)$/
- a
-No match
- aa
-No match
- aaa
-No match
- aaaa
- 0: aaaa
- 1: a
- 2: a
- 3: a
- 4: a
- aaaaa
- 0: aaaaa
- 1: a
- 2: aa
- 3: a
- 4: a
- aaaaaa
- 0: aaaaaa
- 1: a
- 2: aa
- 3: a
- 4: aa
- aaaaaaa
- 0: aaaaaaa
- 1: a
- 2: aa
- 3: aaa
- 4: a
- aaaaaaaa
-No match
- aaaaaaaaa
-No match
- aaaaaaaaaa
- 0: aaaaaaaaaa
- 1: a
- 2: aa
- 3: aaa
- 4: aaaa
- aaaaaaaaaaa
-No match
- aaaaaaaaaaaa
-No match
- aaaaaaaaaaaaa
-No match
- aaaaaaaaaaaaaa
-No match
- aaaaaaaaaaaaaaa
-No match
- aaaaaaaaaaaaaaaa
-No match
-
-/The following tests are taken from the Perl 5.005 test suite; some of them/
-/are compatible with 5.004, but I'd rather not have to sort them out./
-No match
-
-/abc/
- abc
- 0: abc
- xabcy
- 0: abc
- ababc
- 0: abc
- *** Failers
-No match
- xbc
-No match
- axc
-No match
- abx
-No match
-
-/ab*c/
- abc
- 0: abc
-
-/ab*bc/
- abc
- 0: abc
- abbc
- 0: abbc
- abbbbc
- 0: abbbbc
-
-/.{1}/
- abbbbc
- 0: a
-
-/.{3,4}/
- abbbbc
- 0: abbb
-
-/ab{0,}bc/
- abbbbc
- 0: abbbbc
-
-/ab+bc/
- abbc
- 0: abbc
- *** Failers
-No match
- abc
-No match
- abq
-No match
-
-/ab{1,}bc/
-
-/ab+bc/
- abbbbc
- 0: abbbbc
-
-/ab{1,}bc/
- abbbbc
- 0: abbbbc
-
-/ab{1,3}bc/
- abbbbc
- 0: abbbbc
-
-/ab{3,4}bc/
- abbbbc
- 0: abbbbc
-
-/ab{4,5}bc/
- *** Failers
-No match
- abq
-No match
- abbbbc
-No match
-
-/ab?bc/
- abbc
- 0: abbc
- abc
- 0: abc
-
-/ab{0,1}bc/
- abc
- 0: abc
-
-/ab?bc/
-
-/ab?c/
- abc
- 0: abc
-
-/ab{0,1}c/
- abc
- 0: abc
-
-/^abc$/
- abc
- 0: abc
- *** Failers
-No match
- abbbbc
-No match
- abcc
-No match
-
-/^abc/
- abcc
- 0: abc
-
-/^abc$/
-
-/abc$/
- aabc
- 0: abc
- *** Failers
-No match
- aabc
- 0: abc
- aabcd
-No match
-
-/^/
- abc
- 0:
-
-/$/
- abc
- 0:
-
-/a.c/
- abc
- 0: abc
- axc
- 0: axc
-
-/a.*c/
- axyzc
- 0: axyzc
-
-/a[bc]d/
- abd
- 0: abd
- *** Failers
-No match
- axyzd
-No match
- abc
-No match
-
-/a[b-d]e/
- ace
- 0: ace
-
-/a[b-d]/
- aac
- 0: ac
-
-/a[-b]/
- a-
- 0: a-
-
-/a[b-]/
- a-
- 0: a-
-
-/a]/
- a]
- 0: a]
-
-/a[]]b/
- a]b
- 0: a]b
-
-/a[^bc]d/
- aed
- 0: aed
- *** Failers
-No match
- abd
-No match
- abd
-No match
-
-/a[^-b]c/
- adc
- 0: adc
-
-/a[^]b]c/
- adc
- 0: adc
- *** Failers
-No match
- a-c
- 0: a-c
- a]c
-No match
-
-/\ba\b/
- a-
- 0: a
- -a
- 0: a
- -a-
- 0: a
-
-/\by\b/
- *** Failers
-No match
- xy
-No match
- yz
-No match
- xyz
-No match
-
-/\Ba\B/
- *** Failers
- 0: a
- a-
-No match
- -a
-No match
- -a-
-No match
-
-/\By\b/
- xy
- 0: y
-
-/\by\B/
- yz
- 0: y
-
-/\By\B/
- xyz
- 0: y
-
-/\w/
- a
- 0: a
-
-/\W/
- -
- 0: -
- *** Failers
- 0: *
- -
- 0: -
- a
-No match
-
-/a\sb/
- a b
- 0: a b
-
-/a\Sb/
- a-b
- 0: a-b
- *** Failers
-No match
- a-b
- 0: a-b
- a b
-No match
-
-/\d/
- 1
- 0: 1
-
-/\D/
- -
- 0: -
- *** Failers
- 0: *
- -
- 0: -
- 1
-No match
-
-/[\w]/
- a
- 0: a
-
-/[\W]/
- -
- 0: -
- *** Failers
- 0: *
- -
- 0: -
- a
-No match
-
-/a[\s]b/
- a b
- 0: a b
-
-/a[\S]b/
- a-b
- 0: a-b
- *** Failers
-No match
- a-b
- 0: a-b
- a b
-No match
-
-/[\d]/
- 1
- 0: 1
-
-/[\D]/
- -
- 0: -
- *** Failers
- 0: *
- -
- 0: -
- 1
-No match
-
-/ab|cd/
- abc
- 0: ab
- abcd
- 0: ab
-
-/()ef/
- def
- 0: ef
- 1:
-
-/$b/
-
-/a\(b/
- a(b
- 0: a(b
-
-/a\(*b/
- ab
- 0: ab
- a((b
- 0: a((b
-
-/a\\b/
- a\b
-No match
-
-/((a))/
- abc
- 0: a
- 1: a
- 2: a
-
-/(a)b(c)/
- abc
- 0: abc
- 1: a
- 2: c
-
-/a+b+c/
- aabbabc
- 0: abc
-
-/a{1,}b{1,}c/
- aabbabc
- 0: abc
-
-/a.+?c/
- abcabc
- 0: abc
-
-/(a+|b)*/
- ab
- 0: ab
- 1: b
-
-/(a+|b){0,}/
- ab
- 0: ab
- 1: b
-
-/(a+|b)+/
- ab
- 0: ab
- 1: b
-
-/(a+|b){1,}/
- ab
- 0: ab
- 1: b
-
-/(a+|b)?/
- ab
- 0: a
- 1: a
-
-/(a+|b){0,1}/
- ab
- 0: a
- 1: a
-
-/[^ab]*/
- cde
- 0: cde
-
-/abc/
- *** Failers
-No match
- b
-No match
-
-
-/a*/
-
-
-/([abc])*d/
- abbbcd
- 0: abbbcd
- 1: c
-
-/([abc])*bcd/
- abcd
- 0: abcd
- 1: a
-
-/a|b|c|d|e/
- e
- 0: e
-
-/(a|b|c|d|e)f/
- ef
- 0: ef
- 1: e
-
-/abcd*efg/
- abcdefg
- 0: abcdefg
-
-/ab*/
- xabyabbbz
- 0: ab
- xayabbbz
- 0: a
-
-/(ab|cd)e/
- abcde
- 0: cde
- 1: cd
-
-/[abhgefdc]ij/
- hij
- 0: hij
-
-/^(ab|cd)e/
-
-/(abc|)ef/
- abcdef
- 0: ef
- 1:
-
-/(a|b)c*d/
- abcd
- 0: bcd
- 1: b
-
-/(ab|ab*)bc/
- abc
- 0: abc
- 1: a
-
-/a([bc]*)c*/
- abc
- 0: abc
- 1: bc
-
-/a([bc]*)(c*d)/
- abcd
- 0: abcd
- 1: bc
- 2: d
-
-/a([bc]+)(c*d)/
- abcd
- 0: abcd
- 1: bc
- 2: d
-
-/a([bc]*)(c+d)/
- abcd
- 0: abcd
- 1: b
- 2: cd
-
-/a[bcd]*dcdcde/
- adcdcde
- 0: adcdcde
-
-/a[bcd]+dcdcde/
- *** Failers
-No match
- abcde
-No match
- adcdcde
-No match
-
-/(ab|a)b*c/
- abc
- 0: abc
- 1: ab
-
-/((a)(b)c)(d)/
- abcd
- 0: abcd
- 1: abc
- 2: a
- 3: b
- 4: d
-
-/[a-zA-Z_][a-zA-Z0-9_]*/
- alpha
- 0: alpha
-
-/^a(bc+|b[eh])g|.h$/
- abh
- 0: bh
-
-/(bc+d$|ef*g.|h?i(j|k))/
- effgz
- 0: effgz
- 1: effgz
- ij
- 0: ij
- 1: ij
- 2: j
- reffgz
- 0: effgz
- 1: effgz
- *** Failers
-No match
- effg
-No match
- bcdd
-No match
-
-/((((((((((a))))))))))/
- a
- 0: a
- 1: a
- 2: a
- 3: a
- 4: a
- 5: a
- 6: a
- 7: a
- 8: a
- 9: a
-10: a
-
-/((((((((((a))))))))))\10/
- aa
- 0: aa
- 1: a
- 2: a
- 3: a
- 4: a
- 5: a
- 6: a
- 7: a
- 8: a
- 9: a
-10: a
-
-/(((((((((a)))))))))/
- a
- 0: a
- 1: a
- 2: a
- 3: a
- 4: a
- 5: a
- 6: a
- 7: a
- 8: a
- 9: a
-
-/multiple words of text/
- *** Failers
-No match
- aa
-No match
- uh-uh
-No match
-
-/multiple words/
- multiple words, yeah
- 0: multiple words
-
-/(.*)c(.*)/
- abcde
- 0: abcde
- 1: ab
- 2: de
-
-/\((.*), (.*)\)/
- (a, b)
- 0: (a, b)
- 1: a
- 2: b
-
-/[k]/
-
-/abcd/
- abcd
- 0: abcd
-
-/a(bc)d/
- abcd
- 0: abcd
- 1: bc
-
-/a[-]?c/
- ac
- 0: ac
-
-/(abc)\1/
- abcabc
- 0: abcabc
- 1: abc
-
-/([a-c]*)\1/
- abcabc
- 0: abcabc
- 1: abc
-
-/(a)|\1/
- a
- 0: a
- 1: a
- *** Failers
- 0: a
- 1: a
- ab
- 0: a
- 1: a
- x
-No match
-
-/(([a-c])b*?\2)*/
- ababbbcbc
- 0: ababb
- 1: bb
- 2: b
-
-/(([a-c])b*?\2){3}/
- ababbbcbc
- 0: ababbbcbc
- 1: cbc
- 2: c
-
-/((\3|b)\2(a)x)+/
- aaaxabaxbaaxbbax
- 0: bbax
- 1: bbax
- 2: b
- 3: a
-
-/((\3|b)\2(a)){2,}/
- bbaababbabaaaaabbaaaabba
- 0: bbaa
- 1: a
- 2:
- 3: a
-
-/abc/i
- ABC
- 0: ABC
- XABCY
- 0: ABC
- ABABC
- 0: ABC
- *** Failers
-No match
- aaxabxbaxbbx
-No match
- XBC
-No match
- AXC
-No match
- ABX
-No match
-
-/ab*c/i
- ABC
- 0: ABC
-
-/ab*bc/i
- ABC
- 0: ABC
- ABBC
- 0: ABBC
-
-/ab*?bc/i
- ABBBBC
- 0: ABBBBC
-
-/ab{0,}?bc/i
- ABBBBC
- 0: ABBBBC
-
-/ab+?bc/i
- ABBC
- 0: ABBC
-
-/ab+bc/i
- *** Failers
-No match
- ABC
-No match
- ABQ
-No match
-
-/ab{1,}bc/i
-
-/ab+bc/i
- ABBBBC
- 0: ABBBBC
-
-/ab{1,}?bc/i
- ABBBBC
- 0: ABBBBC
-
-/ab{1,3}?bc/i
- ABBBBC
- 0: ABBBBC
-
-/ab{3,4}?bc/i
- ABBBBC
- 0: ABBBBC
-
-/ab{4,5}?bc/i
- *** Failers
-No match
- ABQ
-No match
- ABBBBC
-No match
-
-/ab??bc/i
- ABBC
- 0: ABBC
- ABC
- 0: ABC
-
-/ab{0,1}?bc/i
- ABC
- 0: ABC
-
-/ab??bc/i
-
-/ab??c/i
- ABC
- 0: ABC
-
-/ab{0,1}?c/i
- ABC
- 0: ABC
-
-/^abc$/i
- ABC
- 0: ABC
- *** Failers
-No match
- ABBBBC
-No match
- ABCC
-No match
-
-/^abc/i
- ABCC
- 0: ABC
-
-/^abc$/i
-
-/abc$/i
- AABC
- 0: ABC
-
-/^/i
- ABC
- 0:
-
-/$/i
- ABC
- 0:
-
-/a.c/i
- ABC
- 0: ABC
- AXC
- 0: AXC
-
-/a.*?c/i
- AXYZC
- 0: AXYZC
-
-/a.*c/i
- *** Failers
-No match
- AABC
- 0: AABC
- AXYZD
-No match
-
-/a[bc]d/i
- ABD
- 0: ABD
-
-/a[b-d]e/i
- ACE
- 0: ACE
- *** Failers
-No match
- ABC
-No match
- ABD
-No match
-
-/a[b-d]/i
- AAC
- 0: AC
-
-/a[-b]/i
- A-
- 0: A-
-
-/a[b-]/i
- A-
- 0: A-
-
-/a]/i
- A]
- 0: A]
-
-/a[]]b/i
- A]B
- 0: A]B
-
-/a[^bc]d/i
- AED
- 0: AED
-
-/a[^-b]c/i
- ADC
- 0: ADC
- *** Failers
-No match
- ABD
-No match
- A-C
-No match
-
-/a[^]b]c/i
- ADC
- 0: ADC
-
-/ab|cd/i
- ABC
- 0: AB
- ABCD
- 0: AB
-
-/()ef/i
- DEF
- 0: EF
- 1:
-
-/$b/i
- *** Failers
-No match
- A]C
-No match
- B
-No match
-
-/a\(b/i
- A(B
- 0: A(B
-
-/a\(*b/i
- AB
- 0: AB
- A((B
- 0: A((B
-
-/a\\b/i
- A\B
-No match
-
-/((a))/i
- ABC
- 0: A
- 1: A
- 2: A
-
-/(a)b(c)/i
- ABC
- 0: ABC
- 1: A
- 2: C
-
-/a+b+c/i
- AABBABC
- 0: ABC
-
-/a{1,}b{1,}c/i
- AABBABC
- 0: ABC
-
-/a.+?c/i
- ABCABC
- 0: ABC
-
-/a.*?c/i
- ABCABC
- 0: ABC
-
-/a.{0,5}?c/i
- ABCABC
- 0: ABC
-
-/(a+|b)*/i
- AB
- 0: AB
- 1: B
-
-/(a+|b){0,}/i
- AB
- 0: AB
- 1: B
-
-/(a+|b)+/i
- AB
- 0: AB
- 1: B
-
-/(a+|b){1,}/i
- AB
- 0: AB
- 1: B
-
-/(a+|b)?/i
- AB
- 0: A
- 1: A
-
-/(a+|b){0,1}/i
- AB
- 0: A
- 1: A
-
-/(a+|b){0,1}?/i
- AB
- 0:
-
-/[^ab]*/i
- CDE
- 0: CDE
-
-/abc/i
-
-/a*/i
-
-
-/([abc])*d/i
- ABBBCD
- 0: ABBBCD
- 1: C
-
-/([abc])*bcd/i
- ABCD
- 0: ABCD
- 1: A
-
-/a|b|c|d|e/i
- E
- 0: E
-
-/(a|b|c|d|e)f/i
- EF
- 0: EF
- 1: E
-
-/abcd*efg/i
- ABCDEFG
- 0: ABCDEFG
-
-/ab*/i
- XABYABBBZ
- 0: AB
- XAYABBBZ
- 0: A
-
-/(ab|cd)e/i
- ABCDE
- 0: CDE
- 1: CD
-
-/[abhgefdc]ij/i
- HIJ
- 0: HIJ
-
-/^(ab|cd)e/i
- ABCDE
-No match
-
-/(abc|)ef/i
- ABCDEF
- 0: EF
- 1:
-
-/(a|b)c*d/i
- ABCD
- 0: BCD
- 1: B
-
-/(ab|ab*)bc/i
- ABC
- 0: ABC
- 1: A
-
-/a([bc]*)c*/i
- ABC
- 0: ABC
- 1: BC
-
-/a([bc]*)(c*d)/i
- ABCD
- 0: ABCD
- 1: BC
- 2: D
-
-/a([bc]+)(c*d)/i
- ABCD
- 0: ABCD
- 1: BC
- 2: D
-
-/a([bc]*)(c+d)/i
- ABCD
- 0: ABCD
- 1: B
- 2: CD
-
-/a[bcd]*dcdcde/i
- ADCDCDE
- 0: ADCDCDE
-
-/a[bcd]+dcdcde/i
-
-/(ab|a)b*c/i
- ABC
- 0: ABC
- 1: AB
-
-/((a)(b)c)(d)/i
- ABCD
- 0: ABCD
- 1: ABC
- 2: A
- 3: B
- 4: D
-
-/[a-zA-Z_][a-zA-Z0-9_]*/i
- ALPHA
- 0: ALPHA
-
-/^a(bc+|b[eh])g|.h$/i
- ABH
- 0: BH
-
-/(bc+d$|ef*g.|h?i(j|k))/i
- EFFGZ
- 0: EFFGZ
- 1: EFFGZ
- IJ
- 0: IJ
- 1: IJ
- 2: J
- REFFGZ
- 0: EFFGZ
- 1: EFFGZ
- *** Failers
-No match
- ADCDCDE
-No match
- EFFG
-No match
- BCDD
-No match
-
-/((((((((((a))))))))))/i
- A
- 0: A
- 1: A
- 2: A
- 3: A
- 4: A
- 5: A
- 6: A
- 7: A
- 8: A
- 9: A
-10: A
-
-/((((((((((a))))))))))\10/i
- AA
- 0: AA
- 1: A
- 2: A
- 3: A
- 4: A
- 5: A
- 6: A
- 7: A
- 8: A
- 9: A
-10: A
-
-/(((((((((a)))))))))/i
- A
- 0: A
- 1: A
- 2: A
- 3: A
- 4: A
- 5: A
- 6: A
- 7: A
- 8: A
- 9: A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
- A
- 0: A
- 1: A
-
-/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
- C
- 0: C
- 1: C
-
-/multiple words of text/i
- *** Failers
-No match
- AA
-No match
- UH-UH
-No match
-
-/multiple words/i
- MULTIPLE WORDS, YEAH
- 0: MULTIPLE WORDS
-
-/(.*)c(.*)/i
- ABCDE
- 0: ABCDE
- 1: AB
- 2: DE
-
-/\((.*), (.*)\)/i
- (A, B)
- 0: (A, B)
- 1: A
- 2: B
-
-/[k]/i
-
-/abcd/i
- ABCD
- 0: ABCD
-
-/a(bc)d/i
- ABCD
- 0: ABCD
- 1: BC
-
-/a[-]?c/i
- AC
- 0: AC
-
-/(abc)\1/i
- ABCABC
- 0: ABCABC
- 1: ABC
-
-/([a-c]*)\1/i
- ABCABC
- 0: ABCABC
- 1: ABC
-
-/a(?!b)./
- abad
- 0: ad
-
-/a(?=d)./
- abad
- 0: ad
-
-/a(?=c|d)./
- abad
- 0: ad
-
-/a(?:b|c|d)(.)/
- ace
- 0: ace
- 1: e
-
-/a(?:b|c|d)*(.)/
- ace
- 0: ace
- 1: e
-
-/a(?:b|c|d)+?(.)/
- ace
- 0: ace
- 1: e
- acdbcdbe
- 0: acd
- 1: d
-
-/a(?:b|c|d)+(.)/
- acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){2}(.)/
- acdbcdbe
- 0: acdb
- 1: b
-
-/a(?:b|c|d){4,5}(.)/
- acdbcdbe
- 0: acdbcdb
- 1: b
-
-/a(?:b|c|d){4,5}?(.)/
- acdbcdbe
- 0: acdbcd
- 1: d
-
-/((foo)|(bar))*/
- foobar
- 0: foobar
- 1: bar
- 2:
- 3: bar
-
-/a(?:b|c|d){6,7}(.)/
- acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){6,7}?(.)/
- acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){5,6}(.)/
- acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){5,6}?(.)/
- acdbcdbe
- 0: acdbcdb
- 1: b
-
-/a(?:b|c|d){5,7}(.)/
- acdbcdbe
- 0: acdbcdbe
- 1: e
-
-/a(?:b|c|d){5,7}?(.)/
- acdbcdbe
- 0: acdbcdb
- 1: b
-
-/a(?:b|(c|e){1,2}?|d)+?(.)/
- ace
- 0: ace
- 1: c
- 2: e
-
-/^(.+)?B/
- AB
- 0: AB
- 1: A
-
-/^([^a-z])|(\^)$/
- .
- 0: .
- 1: .
-
-/^[<>]&/
- <&OUT
- 0: <&
-
-/^(a\1?){4}$/
- aaaaaaaaaa
-No match
- *** Failers
-No match
- AB
-No match
- aaaaaaaaa
-No match
- aaaaaaaaaaa
-No match
-
-/^(a(?(1)\1)){4}$/
- aaaaaaaaaa
- 0: aaaaaaaaaa
- 1: aaaa
- *** Failers
-No match
- aaaaaaaaa
-No match
- aaaaaaaaaaa
-No match
-
-/(?:(f)(o)(o)|(b)(a)(r))*/
- foobar
- 0: foobar
- 1:
- 2:
- 3:
- 4: b
- 5: a
- 6: r
-
-/(?<=a)b/
- ab
- 0: b
- *** Failers
-No match
- cb
-No match
- b
-No match
-
-/(?<!c)b/
- ab
- 0: b
- b
- 0: b
- b
- 0: b
-
-/(?:..)*a/
- aba
- 0: aba
-
-/(?:..)*?a/
- aba
- 0: a
-
-/^(?:b|a(?=(.)))*\1/
- abc
- 0: ab
- 1:
-
-/^(){3,5}/
- abc
- 0:
- 1:
-
-/^(a+)*ax/
- aax
- 0: aax
- 1: a
-
-/^((a|b)+)*ax/
- aax
- 0: aax
- 1: a
- 2: a
-
-/^((a|bc)+)*ax/
- aax
- 0: aax
- 1: a
- 2: a
-
-/(a|x)*ab/
- cab
- 0: ab
-
-/(a)*ab/
- cab
- 0: ab
-
-/(?:(?i)a)b/
- ab
- 0: ab
-
-/((?i)a)b/
- ab
- 0: ab
- 1: a
-
-/(?:(?i)a)b/
- Ab
- 0: Ab
-
-/((?i)a)b/
- Ab
- 0: Ab
- 1: A
-
-/(?:(?i)a)b/
- *** Failers
-No match
- cb
-No match
- aB
-No match
-
-/((?i)a)b/
-
-/(?i:a)b/
- ab
- 0: ab
-
-/((?i:a))b/
- ab
- 0: ab
- 1: a
-
-/(?i:a)b/
- Ab
- 0: Ab
-
-/((?i:a))b/
- Ab
- 0: Ab
- 1: A
-
-/(?i:a)b/
- *** Failers
-No match
- aB
-No match
- aB
-No match
-
-/((?i:a))b/
-
-/(?:(?-i)a)b/i
- ab
- 0: ab
-
-/((?-i)a)b/i
- ab
- 0: ab
- 1: a
-
-/(?:(?-i)a)b/i
- aB
- 0: aB
-
-/((?-i)a)b/i
- aB
- 0: aB
- 1: a
-
-/(?:(?-i)a)b/i
- *** Failers
-No match
- aB
- 0: aB
- Ab
-No match
-
-/((?-i)a)b/i
-
-/(?:(?-i)a)b/i
- aB
- 0: aB
-
-/((?-i)a)b/i
- aB
- 0: aB
- 1: a
-
-/(?:(?-i)a)b/i
- *** Failers
-No match
- Ab
-No match
- AB
-No match
-
-/((?-i)a)b/i
-
-/(?-i:a)b/i
- ab
- 0: ab
-
-/((?-i:a))b/i
- ab
- 0: ab
- 1: a
-
-/(?-i:a)b/i
- aB
- 0: aB
-
-/((?-i:a))b/i
- aB
- 0: aB
- 1: a
-
-/(?-i:a)b/i
- *** Failers
-No match
- AB
-No match
- Ab
-No match
-
-/((?-i:a))b/i
-
-/(?-i:a)b/i
- aB
- 0: aB
-
-/((?-i:a))b/i
- aB
- 0: aB
- 1: a
-
-/(?-i:a)b/i
- *** Failers
-No match
- Ab
-No match
- AB
-No match
-
-/((?-i:a))b/i
-
-/((?-i:a.))b/i
- *** Failers
-No match
- AB
-No match
- a\nB
-No match
-
-/((?s-i:a.))b/i
- a\nB
- 0: a\x0aB
- 1: a\x0a
-
-/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
- cabbbb
- 0: cabbbb
-
-/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
- caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
- 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
-
-/(ab)\d\1/i
- Ab4ab
- 0: Ab4ab
- 1: Ab
- ab4Ab
- 0: ab4Ab
- 1: ab
-
-/foo\w*\d{4}baz/
- foobar1234baz
- 0: foobar1234baz
-
-/x(~~)*(?:(?:F)?)?/
- x~~
- 0: x~~
- 1: ~~
-
-/^a(?#xxx){3}c/
- aaac
- 0: aaac
-
-/^a (?#xxx) (?#yyy) {3}c/x
- aaac
- 0: aaac
-
-/(?<![cd])b/
- *** Failers
-No match
- B\nB
-No match
- dbcb
-No match
-
-/(?<![cd])[ab]/
- dbaacb
- 0: a
-
-/(?<!(c|d))b/
-
-/(?<!(c|d))[ab]/
- dbaacb
- 0: a
-
-/(?<!cd)[ab]/
- cdaccb
- 0: b
-
-/^(?:a?b?)*$/
- \
- 0:
- a
- 0: a
- ab
- 0: ab
- aaa
- 0: aaa
- *** Failers
-No match
- dbcb
-No match
- a--
-No match
- aa--
-No match
-
-/((?s)^a(.))((?m)^b$)/
- a\nb\nc\n
- 0: a\x0ab
- 1: a\x0a
- 2: \x0a
- 3: b
-
-/((?m)^b$)/
- a\nb\nc\n
- 0: b
- 1: b
-
-/(?m)^b/
- a\nb\n
- 0: b
-
-/(?m)^(b)/
- a\nb\n
- 0: b
- 1: b
-
-/((?m)^b)/
- a\nb\n
- 0: b
- 1: b
-
-/\n((?m)^b)/
- a\nb\n
- 0: \x0ab
- 1: b
-
-/((?s).)c(?!.)/
- a\nb\nc\n
- 0: \x0ac
- 1: \x0a
- a\nb\nc\n
- 0: \x0ac
- 1: \x0a
-
-/((?s)b.)c(?!.)/
- a\nb\nc\n
- 0: b\x0ac
- 1: b\x0a
- a\nb\nc\n
- 0: b\x0ac
- 1: b\x0a
-
-/^b/
-
-/()^b/
- *** Failers
-No match
- a\nb\nc\n
-No match
- a\nb\nc\n
-No match
-
-/((?m)^b)/
- a\nb\nc\n
- 0: b
- 1: b
-
-/(?(1)a|b)/
-
-/(?(1)b|a)/
- a
- 0: a
-
-/(x)?(?(1)a|b)/
- *** Failers
-No match
- a
-No match
- a
-No match
-
-/(x)?(?(1)b|a)/
- a
- 0: a
-
-/()?(?(1)b|a)/
- a
- 0: a
-
-/()(?(1)b|a)/
-
-/()?(?(1)a|b)/
- a
- 0: a
- 1:
-
-/^(\()?blah(?(1)(\)))$/
- (blah)
- 0: (blah)
- 1: (
- 2: )
- blah
- 0: blah
- *** Failers
-No match
- a
-No match
- blah)
-No match
- (blah
-No match
-
-/^(\(+)?blah(?(1)(\)))$/
- (blah)
- 0: (blah)
- 1: (
- 2: )
- blah
- 0: blah
- *** Failers
-No match
- blah)
-No match
- (blah
-No match
-
-/(?(?!a)a|b)/
-
-/(?(?!a)b|a)/
- a
- 0: a
-
-/(?(?=a)b|a)/
- *** Failers
-No match
- a
-No match
- a
-No match
-
-/(?(?=a)a|b)/
- a
- 0: a
-
-/(?=(a+?))(\1ab)/
- aaab
- 0: aab
- 1: a
- 2: aab
-
-/^(?=(a+?))\1ab/
-
-/(\w+:)+/
- one:
- 0: one:
- 1: one:
-
-/$(?<=^(a))/
- a
- 0:
- 1: a
-
-/(?=(a+?))(\1ab)/
- aaab
- 0: aab
- 1: a
- 2: aab
-
-/^(?=(a+?))\1ab/
- *** Failers
-No match
- aaab
-No match
- aaab
-No match
-
-/([\w:]+::)?(\w+)$/
- abcd
- 0: abcd
- 1: <unset>
- 2: abcd
- xy:z:::abcd
- 0: xy:z:::abcd
- 1: xy:z:::
- 2: abcd
-
-/^[^bcd]*(c+)/
- aexycd
- 0: aexyc
- 1: c
-
-/(a*)b+/
- caab
- 0: aab
- 1: aa
-
-/([\w:]+::)?(\w+)$/
- abcd
- 0: abcd
- 1: <unset>
- 2: abcd
- xy:z:::abcd
- 0: xy:z:::abcd
- 1: xy:z:::
- 2: abcd
- *** Failers
- 0: Failers
- 1: <unset>
- 2: Failers
- abcd:
-No match
- abcd:
-No match
-
-/^[^bcd]*(c+)/
- aexycd
- 0: aexyc
- 1: c
-
-/(>a+)ab/
-
-/(?>a+)b/
- aaab
- 0: aaab
-
-/([[:]+)/
- a:[b]:
- 0: :[
- 1: :[
-
-/([[=]+)/
- a=[b]=
- 0: =[
- 1: =[
-
-/([[.]+)/
- a.[b].
- 0: .[
- 1: .[
-
-/((?>a+)b)/
- aaab
- 0: aaab
- 1: aaab
-
-/(?>(a+))b/
- aaab
- 0: aaab
- 1: aaa
-
-/((?>[^()]+)|\([^()]*\))+/
- ((abc(ade)ufh()()x
- 0: abc(ade)ufh()()x
- 1: x
-
-/a\Z/
- *** Failers
-No match
- aaab
-No match
- a\nb\n
-No match
-
-/b\Z/
- a\nb\n
- 0: b
-
-/b\z/
-
-/b\Z/
- a\nb
- 0: b
-
-/b\z/
- a\nb
- 0: b
- *** Failers
-No match
-
-/^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
- a
- 0: a
- 1:
- abc
- 0: abc
- 1:
- a-b
- 0: a-b
- 1:
- 0-9
- 0: 0-9
- 1:
- a.b
- 0: a.b
- 1:
- 5.6.7
- 0: 5.6.7
- 1:
- the.quick.brown.fox
- 0: the.quick.brown.fox
- 1:
- a100.b200.300c
- 0: a100.b200.300c
- 1:
- 12-ab.1245
- 0: 12-ab.1245
- 1:
- *** Failers
-No match
- \
-No match
- .a
-No match
- -a
-No match
- a-
-No match
- a.
-No match
- a_b
-No match
- a.-
-No match
- a..
-No match
- ab..bc
-No match
- the.quick.brown.fox-
-No match
- the.quick.brown.fox.
-No match
- the.quick.brown.fox_
-No match
- the.quick.brown.fox+
-No match
-
-/(?>.*)(?<=(abcd|wxyz))/
- alphabetabcd
- 0: alphabetabcd
- 1: abcd
- endingwxyz
- 0: endingwxyz
- 1: wxyz
- *** Failers
-No match
- a rather long string that doesn't end with one of them
-No match
-
-/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
- word cat dog elephant mussel cow horse canary baboon snake shark otherword
- 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
- word cat dog elephant mussel cow horse canary baboon snake shark
-No match
-
-/word (?>[a-zA-Z0-9]+ ){0,30}otherword/
- 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
-No match
-
-/(?<=\d{3}(?!999))foo/
- 999foo
- 0: foo
- 123999foo
- 0: foo
- *** Failers
-No match
- 123abcfoo
-No match
-
-/(?<=(?!...999)\d{3})foo/
- 999foo
- 0: foo
- 123999foo
- 0: foo
- *** Failers
-No match
- 123abcfoo
-No match
-
-/(?<=\d{3}(?!999)...)foo/
- 123abcfoo
- 0: foo
- 123456foo
- 0: foo
- *** Failers
-No match
- 123999foo
-No match
-
-/(?<=\d{3}...)(?<!999)foo/
- 123abcfoo
- 0: foo
- 123456foo
- 0: foo
- *** Failers
-No match
- 123999foo
-No match
-
-/<a[\s]+href[\s]*=[\s]* # find <a href=
- ([\"\'])? # find single or double quote
- (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
- # quote, otherwise match up to next space
-/isx
- <a href=abcd xyz
- 0: <a href=abcd
- 1: <unset>
- 2: <unset>
- 3: abcd
- <a href=\"abcd xyz pqr\" cats
- 0: <a href="abcd xyz pqr"
- 1: "
- 2: abcd xyz pqr
- <a href=\'abcd xyz pqr\' cats
- 0: <a href='abcd xyz pqr'
- 1: '
- 2: abcd xyz pqr
-
-/<a\s+href\s*=\s* # find <a href=
- (["'])? # find single or double quote
- (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
- # quote, otherwise match up to next space
-/isx
- <a href=abcd xyz
- 0: <a href=abcd
- 1: <unset>
- 2: <unset>
- 3: abcd
- <a href=\"abcd xyz pqr\" cats
- 0: <a href="abcd xyz pqr"
- 1: "
- 2: abcd xyz pqr
- <a href = \'abcd xyz pqr\' cats
- 0: <a href = 'abcd xyz pqr'
- 1: '
- 2: abcd xyz pqr
-
-/<a\s+href(?>\s*)=(?>\s*) # find <a href=
- (["'])? # find single or double quote
- (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching
- # quote, otherwise match up to next space
-/isx
- <a href=abcd xyz
- 0: <a href=abcd
- 1: <unset>
- 2: <unset>
- 3: abcd
- <a href=\"abcd xyz pqr\" cats
- 0: <a href="abcd xyz pqr"
- 1: "
- 2: abcd xyz pqr
- <a href = \'abcd xyz pqr\' cats
- 0: <a href = 'abcd xyz pqr'
- 1: '
- 2: abcd xyz pqr
-
-/((Z)+|A)*/
- ZABCDEFG
- 0: ZA
- 1: A
- 2:
-
-/(Z()|A)*/
- ZABCDEFG
- 0: ZA
- 1: A
- 2:
-
-/(Z(())|A)*/
- ZABCDEFG
- 0: ZA
- 1: A
- 2:
- 3:
-
-/((?>Z)+|A)*/
- ZABCDEFG
- 0: ZA
- 1: A
-
-/((?>)+|A)*/
- ZABCDEFG
- 0:
- 1:
-
-/a*/g
- abbab
- 0: a
- 0:
- 0:
- 0: a
- 0:
- 0:
-
-/^[a-\d]/
- abcde
- 0: a
- -things
- 0: -
- 0digit
- 0: 0
- *** Failers
-No match
- bcdef
-No match
-
-/^[\d-a]/
- abcde
- 0: a
- -things
- 0: -
- 0digit
- 0: 0
- *** Failers
-No match
- bcdef
-No match
-
-/[[:space:]]+/
- > \x09\x0a\x0c\x0d\x0b<
- 0: \x09\x0a\x0c\x0d\x0b
-
-/[[:blank:]]+/
- > \x09\x0a\x0c\x0d\x0b<
- 0: \x09
-
-/[\s]+/
- > \x09\x0a\x0c\x0d\x0b<
- 0: \x09\x0a\x0c\x0d
-
-/\s+/
- > \x09\x0a\x0c\x0d\x0b<
- 0: \x09\x0a\x0c\x0d
-
-/ab/x
- ab
-No match
-
-/(?!\A)x/m
- a\nxb\n
- 0: x
-
-/(?!^)x/m
- a\nxb\n
-No match
-
-/abc\Qabc\Eabc/
- abcabcabc
- 0: abcabcabc
-
-/abc\Q(*+|\Eabc/
- abc(*+|abc
- 0: abc(*+|abc
-
-/ abc\Q abc\Eabc/x
- abc abcabc
- 0: abc abcabc
- *** Failers
-No match
- abcabcabc
-No match
-
-/abc#comment
- \Q#not comment
- literal\E/x
- abc#not comment\n literal
- 0: abc#not comment\x0a literal
-
-/abc#comment
- \Q#not comment
- literal/x
- abc#not comment\n literal
- 0: abc#not comment\x0a literal
-
-/abc#comment
- \Q#not comment
- literal\E #more comment
- /x
- abc#not comment\n literal
- 0: abc#not comment\x0a literal
-
-/abc#comment
- \Q#not comment
- literal\E #more comment/x
- abc#not comment\n literal
- 0: abc#not comment\x0a literal
-
-/\Qabc\$xyz\E/
- abc\\\$xyz
- 0: abc\$xyz
-
-/\Qabc\E\$\Qxyz\E/
- abc\$xyz
- 0: abc$xyz
-
-/\Gabc/
- abc
- 0: abc
- *** Failers
-No match
- xyzabc
-No match
-
-/\Gabc./g
- abc1abc2xyzabc3
- 0: abc1
- 0: abc2
-
-/abc./g
- abc1abc2xyzabc3
- 0: abc1
- 0: abc2
- 0: abc3
-
-/a(?x: b c )d/
- XabcdY
- 0: abcd
- *** Failers
-No match
- Xa b c d Y
-No match
-
-/((?x)x y z | a b c)/
- XabcY
- 0: abc
- 1: abc
- AxyzB
- 0: xyz
- 1: xyz
-
-/(?i)AB(?-i)C/
- XabCY
- 0: abC
- *** Failers
-No match
- XabcY
-No match
-
-/((?i)AB(?-i)C|D)E/
- abCE
- 0: abCE
- 1: abC
- DE
- 0: DE
- 1: D
- *** Failers
-No match
- abcE
-No match
- abCe
-No match
- dE
-No match
- De
-No match
-
-/(.*)\d+\1/
- abc123abc
- 0: abc123abc
- 1: abc
- abc123bc
- 0: bc123bc
- 1: bc
-
-/(.*)\d+\1/s
- abc123abc
- 0: abc123abc
- 1: abc
- abc123bc
- 0: bc123bc
- 1: bc
-
-/((.*))\d+\1/
- abc123abc
- 0: abc123abc
- 1: abc
- 2: abc
- abc123bc
- 0: bc123bc
- 1: bc
- 2: bc
-
-/-- This tests for an IPv6 address in the form where it can have up to --/
-/-- eight components, one and only one of which is empty. This must be --/
-No match
-/-- an internal component. --/
-No match
-
-/^(?!:) # colon disallowed at start
- (?: # start of item
- (?: [0-9a-f]{1,4} | # 1-4 hex digits or
- (?(1)0 | () ) ) # if null previously matched, fail; else null
- : # followed by colon
- ){1,7} # end item; 1-7 of them required
- [0-9a-f]{1,4} $ # final hex number at end of string
- (?(1)|.) # check that there was an empty component
- /xi
- a123::a123
- 0: a123::a123
- 1:
- a123:b342::abcd
- 0: a123:b342::abcd
- 1:
- a123:b342::324e:abcd
- 0: a123:b342::324e:abcd
- 1:
- a123:ddde:b342::324e:abcd
- 0: a123:ddde:b342::324e:abcd
- 1:
- a123:ddde:b342::324e:dcba:abcd
- 0: a123:ddde:b342::324e:dcba:abcd
- 1:
- a123:ddde:9999:b342::324e:dcba:abcd
- 0: a123:ddde:9999:b342::324e:dcba:abcd
- 1:
- *** Failers
-No match
- 1:2:3:4:5:6:7:8
-No match
- a123:bce:ddde:9999:b342::324e:dcba:abcd
-No match
- a123::9999:b342::324e:dcba:abcd
-No match
- abcde:2:3:4:5:6:7:8
-No match
- ::1
-No match
- abcd:fee0:123::
-No match
- :1
-No match
- 1:
-No match
-
-/[z\Qa-d]\E]/
- z
- 0: z
- a
- 0: a
- -
- 0: -
- d
- 0: d
- ]
- 0: ]
- *** Failers
- 0: a
- b
-No match
-
-/[\z\C]/
- z
- 0: z
- C
- 0: C
-
-/\M/
- M
- 0: M
-
-/(a+)*b/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
-
-/(?i)reg(?:ul(?:[aä]|ae)r|ex)/
- REGular
- 0: REGular
- regulaer
- 0: regulaer
- Regex
- 0: Regex
- regulär
- 0: regul\xe4r
-
-/Åæåä[à-ÿÀ-ß]+/
- Åæåäà
- 0: \xc5\xe6\xe5\xe4\xe0
- Åæåäÿ
- 0: \xc5\xe6\xe5\xe4\xff
- ÅæåäÀ
- 0: \xc5\xe6\xe5\xe4\xc0
- Åæåäß
- 0: \xc5\xe6\xe5\xe4\xdf
-
-/(?<=Z)X./
- \x84XAZXB
- 0: XB
-
-/ab cd (?x) de fg/
- ab cd defg
- 0: ab cd defg
-
-/ab cd(?x) de fg/
- ab cddefg
- 0: ab cddefg
- ** Failers
-No match
- abcddefg
-No match
-
-/(?<![^f]oo)(bar)/
- foobarX
- 0: bar
- 1: bar
- ** Failers
-No match
- boobarX
-No match
-
-/(?<![^f])X/
- offX
- 0: X
- ** Failers
-No match
- onyX
-No match
-
-/(?<=[^f])X/
- onyX
- 0: X
- ** Failers
-No match
- offX
-No match
-
-/^/mg
- a\nb\nc\n
- 0:
- 0:
- 0:
- \
- 0:
-
-/(?<=C\n)^/mg
- A\nC\nC\n
- 0:
-
-/(?:(?(1)a|b)(X))+/
- bXaX
- 0: bXaX
- 1: X
-
-/(?:(?(1)\1a|b)(X|Y))+/
- bXXaYYaY
- 0: bXXaYYaY
- 1: Y
- bXYaXXaX
- 0: bX
- 1: X
-
-/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
- bXXaYYaY
- 0: bX
- 1:
- 2:
- 3:
- 4:
- 5:
- 6:
- 7:
- 8:
- 9:
-10: X
-
-/[[,abc,]+]/
- abc]
- 0: abc]
- a,b]
- 0: a,b]
- [a,b,c]
- 0: [a,b,c]
-
-/(?-x: )/x
- A\x20B
- 0:
-
-"(?x)(?-x: \s*#\s*)"
- A # B
- 0: #
- ** Failers
-No match
- #
-No match
-
-"(?x-is)(?:(?-ixs) \s*#\s*) include"
- A #include
- 0: #include
- ** Failers
-No match
- A#include
-No match
- A #Include
-No match
-
-/a*b*\w/
- aaabbbb
- 0: aaabbbb
- aaaa
- 0: aaaa
- a
- 0: a
-
-/a*b?\w/
- aaabbbb
- 0: aaabb
- aaaa
- 0: aaaa
- a
- 0: a
-
-/a*b{0,4}\w/
- aaabbbb
- 0: aaabbbb
- aaaa
- 0: aaaa
- a
- 0: a
-
-/a*b{0,}\w/
- aaabbbb
- 0: aaabbbb
- aaaa
- 0: aaaa
- a
- 0: a
-
-/a*\d*\w/
- 0a
- 0: 0a
- a
- 0: a
-
-/a*b *\w/x
- a
- 0: a
-
-/a*b#comment
- *\w/x
- a
- 0: a
-
-/a* b *\w/x
- a
- 0: a
-
-/^\w+=.*(\\\n.*)*/
- abc=xyz\\\npqr
- 0: abc=xyz\
-
-/(?=(\w+))\1:/
- abcd:
- 0: abcd:
- 1: abcd
-
-/^(?=(\w+))\1:/
- abcd:
- 0: abcd:
- 1: abcd
-
-/^\Eabc/
- abc
- 0: abc
-
-/^[\Eabc]/
- a
- 0: a
- ** Failers
-No match
- E
-No match
-
-/^[a-\Ec]/
- b
- 0: b
- ** Failers
-No match
- -
-No match
- E
-No match
-
-/^[a\E\E-\Ec]/
- b
- 0: b
- ** Failers
-No match
- -
-No match
- E
-No match
-
-/^[\E\Qa\E-\Qz\E]+/
- b
- 0: b
- ** Failers
-No match
- -
-No match
-
-/^[a\Q]bc\E]/
- a
- 0: a
- ]
- 0: ]
- c
- 0: c
-
-/^[a-\Q\E]/
- a
- 0: a
- -
- 0: -
-
-/^(a()*)*/
- aaaa
- 0: aaaa
- 1: a
- 2:
-
-/^(?:a(?:(?:))*)*/
- aaaa
- 0: aaaa
-
-/^(a()+)+/
- aaaa
- 0: aaaa
- 1: a
- 2:
-
-/^(?:a(?:(?:))+)+/
- aaaa
- 0: aaaa
-
-/(a){0,3}(?(1)b|(c|))*D/
- abbD
- 0: abbD
- 1: a
- ccccD
- 0: ccccD
- 1: <unset>
- 2:
- D
- 0: D
- 1: <unset>
- 2:
-
-/(a|)*\d/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
- 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
- 1: a
-
-/(?>a|)*\d/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
- 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/(?:a|)*\d/
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-No match
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
- 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
-
-/\Z/g
- abc\n
- 0:
- 0:
-
-/^(?s)(?>.*)(?<!\n)/
- abc
- 0: abc
- abc\n
-No match
-
-/^(?![^\n]*\n\z)/
- abc
- 0:
- abc\n
-No match
-
-/\z(?<!\n)/
- abc
- 0:
- abc\n
-No match
-
-/(.*(.)?)*/
- abcd
- 0: abcd
- 1: abcd
- 2:
-
-/( (A | (?(1)0|) )* )/x
- abcd
- 0:
- 1:
- 2:
-
-/( ( (?(1)0|) )* )/x
- abcd
- 0:
- 1:
- 2:
-
-/( (?(1)0|)* )/x
- abcd
- 0:
- 1:
-
-/[[:abcd:xyz]]/
- a]
- 0: a]
- :]
- 0: :]
-
-/[abc[:x\]pqr]/
- a
- 0: a
- [
- 0: [
- :
- 0: :
- ]
- 0: ]
- p
- 0: p
-
-/ End of testinput1 /
diff --git a/LayoutTests/fast/regex/testoutput4 b/LayoutTests/fast/regex/testoutput4
deleted file mode 100644
index d87ea4b..0000000
--- a/LayoutTests/fast/regex/testoutput4
+++ /dev/null
@@ -1,1074 +0,0 @@
-/-- Do not use the \x{} construct except with patterns that have the --/
-/-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/
-No match
-/-- that option is set. However, the latest Perls recognize them always. --/
-No match
-
-/a.b/8
- acb
- 0: acb
- a\x7fb
- 0: a\x{7f}b
- a\x{100}b
- 0: a\x{100}b
- *** Failers
-No match
- a\nb
-No match
-
-/a(.{3})b/8
- a\x{4000}xyb
- 0: a\x{4000}xyb
- 1: \x{4000}xy
- a\x{4000}\x7fyb
- 0: a\x{4000}\x{7f}yb
- 1: \x{4000}\x{7f}y
- a\x{4000}\x{100}yb
- 0: a\x{4000}\x{100}yb
- 1: \x{4000}\x{100}y
- *** Failers
-No match
- a\x{4000}b
-No match
- ac\ncb
-No match
-
-/a(.*?)(.)/
- a\xc0\x88b
- 0: a\xc0
- 1:
- 2: \xc0
-
-/a(.*?)(.)/8
- a\x{100}b
- 0: a\x{100}
- 1:
- 2: \x{100}
-
-/a(.*)(.)/
- a\xc0\x88b
- 0: a\xc0\x88b
- 1: \xc0\x88
- 2: b
-
-/a(.*)(.)/8
- a\x{100}b
- 0: a\x{100}b
- 1: \x{100}
- 2: b
-
-/a(.)(.)/
- a\xc0\x92bcd
- 0: a\xc0\x92
- 1: \xc0
- 2: \x92
-
-/a(.)(.)/8
- a\x{240}bcd
- 0: a\x{240}b
- 1: \x{240}
- 2: b
-
-/a(.?)(.)/
- a\xc0\x92bcd
- 0: a\xc0\x92
- 1: \xc0
- 2: \x92
-
-/a(.?)(.)/8
- a\x{240}bcd
- 0: a\x{240}b
- 1: \x{240}
- 2: b
-
-/a(.??)(.)/
- a\xc0\x92bcd
- 0: a\xc0
- 1:
- 2: \xc0
-
-/a(.??)(.)/8
- a\x{240}bcd
- 0: a\x{240}
- 1:
- 2: \x{240}
-
-/a(.{3})b/8
- a\x{1234}xyb
- 0: a\x{1234}xyb
- 1: \x{1234}xy
- a\x{1234}\x{4321}yb
- 0: a\x{1234}\x{4321}yb
- 1: \x{1234}\x{4321}y
- a\x{1234}\x{4321}\x{3412}b
- 0: a\x{1234}\x{4321}\x{3412}b
- 1: \x{1234}\x{4321}\x{3412}
- *** Failers
-No match
- a\x{1234}b
-No match
- ac\ncb
-No match
-
-/a(.{3,})b/8
- a\x{1234}xyb
- 0: a\x{1234}xyb
- 1: \x{1234}xy
- a\x{1234}\x{4321}yb
- 0: a\x{1234}\x{4321}yb
- 1: \x{1234}\x{4321}y
- a\x{1234}\x{4321}\x{3412}b
- 0: a\x{1234}\x{4321}\x{3412}b
- 1: \x{1234}\x{4321}\x{3412}
- axxxxbcdefghijb
- 0: axxxxbcdefghijb
- 1: xxxxbcdefghij
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
- 1: \x{1234}\x{4321}\x{3412}\x{3421}
- *** Failers
-No match
- a\x{1234}b
-No match
-
-/a(.{3,}?)b/8
- a\x{1234}xyb
- 0: a\x{1234}xyb
- 1: \x{1234}xy
- a\x{1234}\x{4321}yb
- 0: a\x{1234}\x{4321}yb
- 1: \x{1234}\x{4321}y
- a\x{1234}\x{4321}\x{3412}b
- 0: a\x{1234}\x{4321}\x{3412}b
- 1: \x{1234}\x{4321}\x{3412}
- axxxxbcdefghijb
- 0: axxxxb
- 1: xxxx
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
- 1: \x{1234}\x{4321}\x{3412}\x{3421}
- *** Failers
-No match
- a\x{1234}b
-No match
-
-/a(.{3,5})b/8
- a\x{1234}xyb
- 0: a\x{1234}xyb
- 1: \x{1234}xy
- a\x{1234}\x{4321}yb
- 0: a\x{1234}\x{4321}yb
- 1: \x{1234}\x{4321}y
- a\x{1234}\x{4321}\x{3412}b
- 0: a\x{1234}\x{4321}\x{3412}b
- 1: \x{1234}\x{4321}\x{3412}
- axxxxbcdefghijb
- 0: axxxxb
- 1: xxxx
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
- 1: \x{1234}\x{4321}\x{3412}\x{3421}
- axbxxbcdefghijb
- 0: axbxxb
- 1: xbxx
- axxxxxbcdefghijb
- 0: axxxxxb
- 1: xxxxx
- *** Failers
-No match
- a\x{1234}b
-No match
- axxxxxxbcdefghijb
-No match
-
-/a(.{3,5}?)b/8
- a\x{1234}xyb
- 0: a\x{1234}xyb
- 1: \x{1234}xy
- a\x{1234}\x{4321}yb
- 0: a\x{1234}\x{4321}yb
- 1: \x{1234}\x{4321}y
- a\x{1234}\x{4321}\x{3412}b
- 0: a\x{1234}\x{4321}\x{3412}b
- 1: \x{1234}\x{4321}\x{3412}
- axxxxbcdefghijb
- 0: axxxxb
- 1: xxxx
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
- 1: \x{1234}\x{4321}\x{3412}\x{3421}
- axbxxbcdefghijb
- 0: axbxxb
- 1: xbxx
- axxxxxbcdefghijb
- 0: axxxxxb
- 1: xxxxx
- *** Failers
-No match
- a\x{1234}b
-No match
- axxxxxxbcdefghijb
-No match
-
-/^[a\x{c0}]/8
- *** Failers
-No match
- \x{100}
-No match
-
-/(?<=aXb)cd/8
- aXbcd
- 0: cd
-
-/(?<=a\x{100}b)cd/8
- a\x{100}bcd
- 0: cd
-
-/(?<=a\x{100000}b)cd/8
- a\x{100000}bcd
- 0: cd
-
-/(?:\x{100}){3}b/8
- \x{100}\x{100}\x{100}b
- 0: \x{100}\x{100}\x{100}b
- *** Failers
-No match
- \x{100}\x{100}b
-No match
-
-/\x{ab}/8
- \x{ab}
- 0: \x{ab}
- \xc2\xab
- 0: \x{ab}
- *** Failers
-No match
- \x00{ab}
-No match
-
-/(?<=(.))X/8
- WXYZ
- 0: X
- 1: W
- \x{256}XYZ
- 0: X
- 1: \x{256}
- *** Failers
-No match
- XYZ
-No match
-
-/X(\C{3})/8
- X\x{1234}
- 0: X\x{1234}
- 1: \x{1234}
-
-/X(\C{4})/8
- X\x{1234}YZ
- 0: X\x{1234}Y
- 1: \x{1234}Y
-
-/X\C*/8
- XYZabcdce
- 0: XYZabcdce
-
-/X\C*?/8
- XYZabcde
- 0: X
-
-/X\C{3,5}/8
- Xabcdefg
- 0: Xabcde
- X\x{1234}
- 0: X\x{1234}
- X\x{1234}YZ
- 0: X\x{1234}YZ
- X\x{1234}\x{512}
- 0: X\x{1234}\x{512}
- X\x{1234}\x{512}YZ
- 0: X\x{1234}\x{512}
-
-/X\C{3,5}?/8
- Xabcdefg
- 0: Xabc
- X\x{1234}
- 0: X\x{1234}
- X\x{1234}YZ
- 0: X\x{1234}
- X\x{1234}\x{512}
- 0: X\x{1234}
-
-/[^a]+/8g
- bcd
- 0: bcd
- \x{100}aY\x{256}Z
- 0: \x{100}
- 0: Y\x{256}Z
-
-/^[^a]{2}/8
- \x{100}bc
- 0: \x{100}b
-
-/^[^a]{2,}/8
- \x{100}bcAa
- 0: \x{100}bcA
-
-/^[^a]{2,}?/8
- \x{100}bca
- 0: \x{100}b
-
-/[^a]+/8ig
- bcd
- 0: bcd
- \x{100}aY\x{256}Z
- 0: \x{100}
- 0: Y\x{256}Z
-
-/^[^a]{2}/8i
- \x{100}bc
- 0: \x{100}b
-
-/^[^a]{2,}/8i
- \x{100}bcAa
- 0: \x{100}bc
-
-/^[^a]{2,}?/8i
- \x{100}bca
- 0: \x{100}b
-
-/\x{100}{0,0}/8
- abcd
- 0:
-
-/\x{100}?/8
- abcd
- 0:
- \x{100}\x{100}
- 0: \x{100}
-
-/\x{100}{0,3}/8
- \x{100}\x{100}
- 0: \x{100}\x{100}
- \x{100}\x{100}\x{100}\x{100}
- 0: \x{100}\x{100}\x{100}
-
-/\x{100}*/8
- abce
- 0:
- \x{100}\x{100}\x{100}\x{100}
- 0: \x{100}\x{100}\x{100}\x{100}
-
-/\x{100}{1,1}/8
- abcd\x{100}\x{100}\x{100}\x{100}
- 0: \x{100}
-
-/\x{100}{1,3}/8
- abcd\x{100}\x{100}\x{100}\x{100}
- 0: \x{100}\x{100}\x{100}
-
-/\x{100}+/8
- abcd\x{100}\x{100}\x{100}\x{100}
- 0: \x{100}\x{100}\x{100}\x{100}
-
-/\x{100}{3}/8
- abcd\x{100}\x{100}\x{100}XX
- 0: \x{100}\x{100}\x{100}
-
-/\x{100}{3,5}/8
- abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
- 0: \x{100}\x{100}\x{100}\x{100}\x{100}
-
-/\x{100}{3,}/8
- abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
- 0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
-
-/(?<=a\x{100}{2}b)X/8+
- Xyyya\x{100}\x{100}bXzzz
- 0: X
- 0+ zzz
-
-/\D*/8
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-
-/\D*/8
- \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
- 0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
-
-/\D/8
- 1X2
- 0: X
- 1\x{100}2
- 0: \x{100}
-
-/>\S/8
- > >X Y
- 0: >X
- > >\x{100} Y
- 0: >\x{100}
-
-/\d/8
- \x{100}3
- 0: 3
-
-/\s/8
- \x{100} X
- 0:
-
-/\D+/8
- 12abcd34
- 0: abcd
- *** Failers
- 0: *** Failers
- 1234
-No match
-
-/\D{2,3}/8
- 12abcd34
- 0: abc
- 12ab34
- 0: ab
- *** Failers
- 0: ***
- 1234
-No match
- 12a34
-No match
-
-/\D{2,3}?/8
- 12abcd34
- 0: ab
- 12ab34
- 0: ab
- *** Failers
- 0: **
- 1234
-No match
- 12a34
-No match
-
-/\d+/8
- 12abcd34
- 0: 12
- *** Failers
-No match
-
-/\d{2,3}/8
- 12abcd34
- 0: 12
- 1234abcd
- 0: 123
- *** Failers
-No match
- 1.4
-No match
-
-/\d{2,3}?/8
- 12abcd34
- 0: 12
- 1234abcd
- 0: 12
- *** Failers
-No match
- 1.4
-No match
-
-/\S+/8
- 12abcd34
- 0: 12abcd34
- *** Failers
- 0: ***
- \ \
-No match
-
-/\S{2,3}/8
- 12abcd34
- 0: 12a
- 1234abcd
- 0: 123
- *** Failers
- 0: ***
- \ \
-No match
-
-/\S{2,3}?/8
- 12abcd34
- 0: 12
- 1234abcd
- 0: 12
- *** Failers
- 0: **
- \ \
-No match
-
-/>\s+</8+
- 12> <34
- 0: > <
- 0+ 34
- *** Failers
-No match
-
-/>\s{2,3}</8+
- ab> <cd
- 0: > <
- 0+ cd
- ab> <ce
- 0: > <
- 0+ ce
- *** Failers
-No match
- ab> <cd
-No match
-
-/>\s{2,3}?</8+
- ab> <cd
- 0: > <
- 0+ cd
- ab> <ce
- 0: > <
- 0+ ce
- *** Failers
-No match
- ab> <cd
-No match
-
-/\w+/8
- 12 34
- 0: 12
- *** Failers
- 0: Failers
- +++=*!
-No match
-
-/\w{2,3}/8
- ab cd
- 0: ab
- abcd ce
- 0: abc
- *** Failers
- 0: Fai
- a.b.c
-No match
-
-/\w{2,3}?/8
- ab cd
- 0: ab
- abcd ce
- 0: ab
- *** Failers
- 0: Fa
- a.b.c
-No match
-
-/\W+/8
- 12====34
- 0: ====
- *** Failers
- 0: ***
- abcd
-No match
-
-/\W{2,3}/8
- ab====cd
- 0: ===
- ab==cd
- 0: ==
- *** Failers
- 0: ***
- a.b.c
-No match
-
-/\W{2,3}?/8
- ab====cd
- 0: ==
- ab==cd
- 0: ==
- *** Failers
- 0: **
- a.b.c
-No match
-
-/[\x{100}]/8
- \x{100}
- 0: \x{100}
- Z\x{100}
- 0: \x{100}
- \x{100}Z
- 0: \x{100}
- *** Failers
-No match
-
-/[Z\x{100}]/8
- Z\x{100}
- 0: Z
- \x{100}
- 0: \x{100}
- \x{100}Z
- 0: \x{100}
- *** Failers
-No match
-
-/[\x{100}\x{200}]/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- *** Failers
-No match
-
-/[\x{100}-\x{200}]/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- ab\x{111}cd
- 0: \x{111}
- *** Failers
-No match
-
-/[z-\x{200}]/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- ab\x{111}cd
- 0: \x{111}
- abzcd
- 0: z
- ab|cd
- 0: |
- *** Failers
-No match
-
-/[Q\x{100}\x{200}]/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- Q?
- 0: Q
- *** Failers
-No match
-
-/[Q\x{100}-\x{200}]/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- ab\x{111}cd
- 0: \x{111}
- Q?
- 0: Q
- *** Failers
-No match
-
-/[Qz-\x{200}]/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- ab\x{111}cd
- 0: \x{111}
- abzcd
- 0: z
- ab|cd
- 0: |
- Q?
- 0: Q
- *** Failers
-No match
-
-/[\x{100}\x{200}]{1,3}/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- ab\x{200}\x{100}\x{200}\x{100}cd
- 0: \x{200}\x{100}\x{200}
- *** Failers
-No match
-
-/[\x{100}\x{200}]{1,3}?/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- ab\x{200}\x{100}\x{200}\x{100}cd
- 0: \x{200}
- *** Failers
-No match
-
-/[Q\x{100}\x{200}]{1,3}/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- ab\x{200}\x{100}\x{200}\x{100}cd
- 0: \x{200}\x{100}\x{200}
- *** Failers
-No match
-
-/[Q\x{100}\x{200}]{1,3}?/8
- ab\x{100}cd
- 0: \x{100}
- ab\x{200}cd
- 0: \x{200}
- ab\x{200}\x{100}\x{200}\x{100}cd
- 0: \x{200}
- *** Failers
-No match
-
-/(?<=[\x{100}\x{200}])X/8
- abc\x{200}X
- 0: X
- abc\x{100}X
- 0: X
- *** Failers
-No match
- X
-No match
-
-/(?<=[Q\x{100}\x{200}])X/8
- abc\x{200}X
- 0: X
- abc\x{100}X
- 0: X
- abQX
- 0: X
- *** Failers
-No match
- X
-No match
-
-/(?<=[\x{100}\x{200}]{3})X/8
- abc\x{100}\x{200}\x{100}X
- 0: X
- *** Failers
-No match
- abc\x{200}X
-No match
- X
-No match
-
-/[^\x{100}\x{200}]X/8
- AX
- 0: AX
- \x{150}X
- 0: \x{150}X
- \x{500}X
- 0: \x{500}X
- *** Failers
-No match
- \x{100}X
-No match
- \x{200}X
-No match
-
-/[^Q\x{100}\x{200}]X/8
- AX
- 0: AX
- \x{150}X
- 0: \x{150}X
- \x{500}X
- 0: \x{500}X
- *** Failers
-No match
- \x{100}X
-No match
- \x{200}X
-No match
- QX
-No match
-
-/[^\x{100}-\x{200}]X/8
- AX
- 0: AX
- \x{500}X
- 0: \x{500}X
- *** Failers
-No match
- \x{100}X
-No match
- \x{150}X
-No match
- \x{200}X
-No match
-
-/a\Cb/
- aXb
- 0: aXb
- a\nb
- 0: a\x0ab
-
-/a\Cb/8
- aXb
- 0: aXb
- a\nb
- 0: a\x{0a}b
- *** Failers
-No match
- a\x{100}b
-No match
-
-/[z-\x{100}]/8i
- z
- 0: z
- Z
- 0: Z
- \x{100}
- 0: \x{100}
- *** Failers
-No match
- \x{102}
-No match
- y
-No match
-
-/[\xFF]/
- >\xff<
- 0: \xff
-
-/[\xff]/8
- >\x{ff}<
- 0: \x{ff}
-
-/[^\xFF]/
- XYZ
- 0: X
-
-/[^\xff]/8
- XYZ
- 0: X
- \x{123}
- 0: \x{123}
-
-/^[ac]*b/8
- xb
-No match
-
-/^[ac\x{100}]*b/8
- xb
-No match
-
-/^[^x]*b/8i
- xb
-No match
-
-/^[^x]*b/8
- xb
-No match
-
-/^\d*b/8
- xb
-No match
-
-/(|a)/g8
- catac
- 0:
- 1:
- 0:
- 1:
- 0: a
- 1: a
- 0:
- 1:
- 0:
- 1:
- 0: a
- 1: a
- 0:
- 1:
- 0:
- 1:
- a\x{256}a
- 0:
- 1:
- 0: a
- 1: a
- 0:
- 1:
- 0:
- 1:
- 0: a
- 1: a
- 0:
- 1:
-
-/^\x{85}$/8i
- \x{85}
- 0: \x{85}
-
-/^ሴ/8
- ሴ
- 0: \x{1234}
-
-/^\ሴ/8
- ሴ
- 0: \x{1234}
-
-"(?s)(.{1,5})"8
- abcdefg
- 0: abcde
- 1: abcde
- ab
- 0: ab
- 1: ab
-
-/a*\x{100}*\w/8
- a
- 0: a
-
-/\S\S/8g
- A\x{a3}BC
- 0: A\x{a3}
- 0: BC
-
-/\S{2}/8g
- A\x{a3}BC
- 0: A\x{a3}
- 0: BC
-
-/\W\W/8g
- +\x{a3}==
- 0: +\x{a3}
- 0: ==
-
-/\W{2}/8g
- +\x{a3}==
- 0: +\x{a3}
- 0: ==
-
-/\S/8g
- \x{442}\x{435}\x{441}\x{442}
- 0: \x{442}
- 0: \x{435}
- 0: \x{441}
- 0: \x{442}
-
-/[\S]/8g
- \x{442}\x{435}\x{441}\x{442}
- 0: \x{442}
- 0: \x{435}
- 0: \x{441}
- 0: \x{442}
-
-/\D/8g
- \x{442}\x{435}\x{441}\x{442}
- 0: \x{442}
- 0: \x{435}
- 0: \x{441}
- 0: \x{442}
-
-/[\D]/8g
- \x{442}\x{435}\x{441}\x{442}
- 0: \x{442}
- 0: \x{435}
- 0: \x{441}
- 0: \x{442}
-
-/\W/8g
- \x{2442}\x{2435}\x{2441}\x{2442}
- 0: \x{2442}
- 0: \x{2435}
- 0: \x{2441}
- 0: \x{2442}
-
-/[\W]/8g
- \x{2442}\x{2435}\x{2441}\x{2442}
- 0: \x{2442}
- 0: \x{2435}
- 0: \x{2441}
- 0: \x{2442}
-
-/[\S\s]*/8
- abc\n\r\x{442}\x{435}\x{441}\x{442}xyz
- 0: abc\x{0a}\x{0d}\x{442}\x{435}\x{441}\x{442}xyz
-
-/[\x{41f}\S]/8g
- \x{442}\x{435}\x{441}\x{442}
- 0: \x{442}
- 0: \x{435}
- 0: \x{441}
- 0: \x{442}
-
-/.[^\S]./8g
- abc def\x{442}\x{443}xyz\npqr
- 0: c d
- 0: z\x{0a}p
-
-/.[^\S\n]./8g
- abc def\x{442}\x{443}xyz\npqr
- 0: c d
-
-/[[:^alnum:]]/8g
- +\x{2442}
- 0: +
- 0: \x{2442}
-
-/[[:^alpha:]]/8g
- +\x{2442}
- 0: +
- 0: \x{2442}
-
-/[[:^ascii:]]/8g
- A\x{442}
- 0: \x{442}
-
-/[[:^blank:]]/8g
- A\x{442}
- 0: A
- 0: \x{442}
-
-/[[:^cntrl:]]/8g
- A\x{442}
- 0: A
- 0: \x{442}
-
-/[[:^digit:]]/8g
- A\x{442}
- 0: A
- 0: \x{442}
-
-/[[:^graph:]]/8g
- \x19\x{e01ff}
- 0: \x{19}
- 0: \x{e01ff}
-
-/[[:^lower:]]/8g
- A\x{422}
- 0: A
- 0: \x{422}
-
-/[[:^print:]]/8g
- \x{19}\x{e01ff}
- 0: \x{19}
- 0: \x{e01ff}
-
-/[[:^punct:]]/8g
- A\x{442}
- 0: A
- 0: \x{442}
-
-/[[:^space:]]/8g
- A\x{442}
- 0: A
- 0: \x{442}
-
-/[[:^upper:]]/8g
- a\x{442}
- 0: a
- 0: \x{442}
-
-/[[:^word:]]/8g
- +\x{2442}
- 0: +
- 0: \x{2442}
-
-/[[:^xdigit:]]/8g
- M\x{442}
- 0: M
- 0: \x{442}
-
-/[^ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉƊƋƎƏƐƑƓƔƖƗƘƜƝƟƠƢƤƦƧƩƬƮƯƱƲƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶǷǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϒϓϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸԀԂԄԆԈԊԌԎԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸἈἉἊἋἌἍἎἏἘἙἚἛἜἝἨἩἪἫἬἭἮἯἸἹἺἻἼἽἾἿὈὉὊὋὌὍὙὛὝὟὨὩὪὫὬὭὮὯᾸᾹᾺΆῈΈῊΉῘῙῚΊῨῩῪΎῬῸΌῺΏabcdefghijklmnopqrstuvwxyzªµºßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżžſƀƃƅƈƌƍƒƕƙƚƛƞơƣƥƨƪƫƭưƴƶƹƺƽƾƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳȴȵȶȷȸȹȼȿɀɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΐάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϐϑϕϖϗϙϛϝϟϡϣϥϧϩϫϭϯϰϱϲϳϵϸϻϼабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹԁԃԅԇԉԋԍԏաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚẛạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹἀἁἂἃἄἅἆἇἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷιῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢⴣⴤⴥfffiflffifflſtstﬓﬔﬕﬖﬗ\d-_^]/8
-
-/ End of testinput4 /
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list