[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