Revert "processed with astyle" (SVN r159583)
authorRaja R Harinath <harinath@hurrynot.org>
Mon, 28 Jun 2010 06:39:43 +0000 (06:39 -0000)
committerRaja R Harinath <harinath@hurrynot.org>
Mon, 28 Jun 2010 06:39:43 +0000 (06:39 -0000)
svn path=/trunk/mcs/; revision=159587

23 files changed:
mcs/class/System/Test/System.Text.RegularExpressions/CaptureCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/CaptureCollectionCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/GroupCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/GroupCollectionCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/GroupTest.cs
mcs/class/System/Test/System.Text.RegularExpressions/MatchCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/MatchCollectionCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/MatchTest.cs
mcs/class/System/Test/System.Text.RegularExpressions/PerlTest.cs
mcs/class/System/Test/System.Text.RegularExpressions/PerlTrials.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexBugs.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexCompilationInfoCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexCompilationInfoTest.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexMatchTests.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexReplace.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexReplaceTests.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexResultTests.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexRunnerCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexRunnerFactoryCas.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexTest.cs
mcs/class/System/Test/System.Text.RegularExpressions/RegexTrial.cs
mcs/class/System/Test/System.Text.RegularExpressions/SplitTests.cs

index 260077d32b5703588a786ec4db72154ac94c0e0b..93e7460f3929f7964ed626fad3bec07caaeb65d6 100644 (file)
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -36,42 +36,42 @@ using System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-[TestFixture]
-[Category ("CAS")]
-public class CaptureCas {
+       [TestFixture]
+       [Category ("CAS")]
+       public class CaptureCas {
 
-    private Capture capture;
+               private Capture capture;
 
-    [TestFixtureSetUp]
-    public void FixtureSetUp ()
-    {
-        capture = (Capture) Match.Empty.Groups [0];
-    }
+               [TestFixtureSetUp]
+               public void FixtureSetUp ()
+               {
+                       capture = (Capture) Match.Empty.Groups [0];
+               }
 
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Deny_Unrestricted ()
-    {
-        Assert.AreEqual (0, capture.Index, "Index");
-        Assert.AreEqual (0, capture.Length, "Length");
-        Assert.AreEqual (String.Empty, capture.Value, "Value");
-        Assert.AreEqual (String.Empty, capture.ToString (), "ToString");
-    }
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Deny_Unrestricted ()
+               {
+                       Assert.AreEqual (0, capture.Index, "Index");
+                       Assert.AreEqual (0, capture.Length, "Length");
+                       Assert.AreEqual (String.Empty, capture.Value, "Value");
+                       Assert.AreEqual (String.Empty, capture.ToString (), "ToString");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        MethodInfo mi = typeof (Group).GetProperty ("Index").GetGetMethod ();
-        Assert.IsNotNull (mi, "Index");
-        Assert.AreEqual (0, (int)mi.Invoke (capture, null), "invoke");
-    }
-}
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       MethodInfo mi = typeof (Group).GetProperty ("Index").GetGetMethod ();
+                       Assert.IsNotNull (mi, "Index");
+                       Assert.AreEqual (0, (int)mi.Invoke (capture, null), "invoke");
+               }
+       }
 }
index 41293648c30287e639af1237081c8b26c3e21609..881b01d12c049596781a29140c59e8224565fd17 100644 (file)
@@ -1,5 +1,5 @@
 //
-// CaptureCollectionCas.cs
+// CaptureCollectionCas.cs 
 //     - CAS unit tests for System.Text.RegularExpressions.CaptureCollection
 //
 // Author:
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -37,54 +37,54 @@ using System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-[TestFixture]
-[Category ("CAS")]
-public class CaptureCollectionCas {
+       [TestFixture]
+       [Category ("CAS")]
+       public class CaptureCollectionCas {
 
-    private CaptureCollection coll;
+               private CaptureCollection coll;
 
-    [TestFixtureSetUp]
-    public void FixtureSetUp ()
-    {
-        coll = Match.Empty.Captures;
-    }
+               [TestFixtureSetUp]
+               public void FixtureSetUp ()
+               {
+                       coll = Match.Empty.Captures;
+               }
 
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Deny_Unrestricted ()
-    {
-        Assert.AreEqual (0, coll.Count, "Count");
-        Assert.IsTrue (coll.IsReadOnly, "IsReadOnly");
-        Assert.IsFalse (coll.IsSynchronized, "IsSynchronized");
-        Assert.IsNotNull (coll.SyncRoot, "SyncRoot");
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Deny_Unrestricted ()
+               {
+                       Assert.AreEqual (0, coll.Count, "Count");
+                       Assert.IsTrue (coll.IsReadOnly, "IsReadOnly");
+                       Assert.IsFalse (coll.IsSynchronized, "IsSynchronized");
+                       Assert.IsNotNull (coll.SyncRoot, "SyncRoot");
 
-        Assert.IsNotNull (coll.GetEnumerator (), "GetEnumerator");
-        Capture[] captures = new Capture[0];
-        coll.CopyTo (captures, 0);
-    }
+                       Assert.IsNotNull (coll.GetEnumerator (), "GetEnumerator");
+                       Capture[] captures = new Capture[0];
+                       coll.CopyTo (captures, 0);
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    [ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Items_Deny_Unrestricted ()
-    {
-        Assert.IsNotNull (coll[0], "this[int]");
-    }
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               [ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Items_Deny_Unrestricted ()
+               {
+                       Assert.IsNotNull (coll[0], "this[int]");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        MethodInfo mi = typeof (CaptureCollection).GetProperty ("Count").GetGetMethod ();
-        Assert.IsNotNull (mi, "Count");
-        Assert.AreEqual (0, (int)mi.Invoke (coll, null), "invoke");
-    }
-}
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       MethodInfo mi = typeof (CaptureCollection).GetProperty ("Count").GetGetMethod ();
+                       Assert.IsNotNull (mi, "Count");
+                       Assert.AreEqual (0, (int)mi.Invoke (coll, null), "invoke");
+               }
+       }
 }
index 0d8f45917f8672b28b683d626b01ef8502e56ac6..2292f851c7d5b3432a387205288418179287fa2a 100644 (file)
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -36,41 +36,41 @@ using System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-[TestFixture]
-[Category ("CAS")]
-public class GroupCas {
+       [TestFixture]
+       [Category ("CAS")]
+       public class GroupCas {
 
-    private Group group;
+               private Group group;
 
-    [TestFixtureSetUp]
-    public void FixtureSetUp ()
-    {
-        group = Match.Empty.Groups [0];
-    }
+               [TestFixtureSetUp]
+               public void FixtureSetUp ()
+               {
+                       group = Match.Empty.Groups [0];
+               }
 
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Deny_Unrestricted ()
-    {
-        Group sg = Group.Synchronized (group);
-        Assert.IsNotNull (sg.Captures, "Captures");
-        Assert.IsFalse (sg.Success, "Success");
-    }
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Deny_Unrestricted ()
+               {
+                       Group sg = Group.Synchronized (group);
+                       Assert.IsNotNull (sg.Captures, "Captures");
+                       Assert.IsFalse (sg.Success, "Success");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        MethodInfo mi = typeof (Group).GetProperty ("Success").GetGetMethod ();
-        Assert.IsNotNull (mi, "Success");
-        Assert.IsFalse ((bool) mi.Invoke (group, null), "invoke");
-    }
-}
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       MethodInfo mi = typeof (Group).GetProperty ("Success").GetGetMethod ();
+                       Assert.IsNotNull (mi, "Success");
+                       Assert.IsFalse ((bool) mi.Invoke (group, null), "invoke");
+               }
+       }
 }
index e89c320d5772818c85b702b5d89bd30e1a2b29e4..74179e2b1b39716c4e6bcc1bfd88598198d1cf02 100644 (file)
@@ -1,5 +1,5 @@
 //
-// GroupCollectionCas.cs
+// GroupCollectionCas.cs 
 //     - CAS unit tests for System.Text.RegularExpressions.GroupCollection
 //
 // Author:
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -37,47 +37,47 @@ using System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-[TestFixture]
-[Category ("CAS")]
-public class GroupCollectionCas {
+       [TestFixture]
+       [Category ("CAS")]
+       public class GroupCollectionCas {
 
-    private GroupCollection coll;
+               private GroupCollection coll;
 
-    [TestFixtureSetUp]
-    public void FixtureSetUp ()
-    {
-        coll = Match.Empty.Groups;
-    }
+               [TestFixtureSetUp]
+               public void FixtureSetUp ()
+               {
+                       coll = Match.Empty.Groups;
+               }
 
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Deny_Unrestricted ()
-    {
-        Assert.AreEqual (1, coll.Count, "Count");
-        Assert.IsTrue (coll.IsReadOnly, "IsReadOnly");
-        Assert.IsFalse (coll.IsSynchronized, "IsSynchronized");
-        Assert.IsNotNull (coll.SyncRoot, "SyncRoot");
-        Assert.IsNotNull (coll[0], "this[int]");
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Deny_Unrestricted ()
+               {
+                       Assert.AreEqual (1, coll.Count, "Count");
+                       Assert.IsTrue (coll.IsReadOnly, "IsReadOnly");
+                       Assert.IsFalse (coll.IsSynchronized, "IsSynchronized");
+                       Assert.IsNotNull (coll.SyncRoot, "SyncRoot");
+                       Assert.IsNotNull (coll[0], "this[int]");
 
-        Assert.IsNotNull (coll.GetEnumerator (), "GetEnumerator");
-        Group[] groups = new Group[1];
-        coll.CopyTo (groups, 0);
-    }
+                       Assert.IsNotNull (coll.GetEnumerator (), "GetEnumerator");
+                       Group[] groups = new Group[1];
+                       coll.CopyTo (groups, 0);
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        MethodInfo mi = typeof (GroupCollection).GetProperty ("Count").GetGetMethod ();
-        Assert.IsNotNull (mi, "Count");
-        Assert.AreEqual (1, (int)mi.Invoke (coll, null), "invoke");
-    }
-}
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       MethodInfo mi = typeof (GroupCollection).GetProperty ("Count").GetGetMethod ();
+                       Assert.IsNotNull (mi, "Count");
+                       Assert.AreEqual (1, (int)mi.Invoke (coll, null), "invoke");
+               }
+       }
 }
index 58b229aa7d3e8ff983663cab829953ef22e5ca89..51885287e5e46f31a6e6f953c327f129360158da 100644 (file)
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -33,30 +33,30 @@ using System.Text.RegularExpressions;
 
 namespace MonoTests.System.Text.RegularExpressions
 {
-[TestFixture]
-public class GroupTest
-{
-    [Test]
-    public void Synchronized_Inner_Null ()
-    {
-        try {
-            Group.Synchronized (null);
-            Assert.Fail ("#1");
-        } catch (ArgumentNullException ex) {
-            Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
-            Assert.IsNull (ex.InnerException, "#3");
-            Assert.IsNotNull (ex.Message, "#4");
-            Assert.IsNotNull (ex.ParamName, "#5");
-            Assert.AreEqual ("inner", ex.ParamName, "#6");
-        }
-    }
+       [TestFixture]
+       public class GroupTest
+       {
+               [Test]
+               public void Synchronized_Inner_Null ()
+               {
+                       try {
+                               Group.Synchronized (null);
+                               Assert.Fail ("#1");
+                       } catch (ArgumentNullException ex) {
+                               Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+                               Assert.IsNull (ex.InnerException, "#3");
+                               Assert.IsNotNull (ex.Message, "#4");
+                               Assert.IsNotNull (ex.ParamName, "#5");
+                               Assert.AreEqual ("inner", ex.ParamName, "#6");
+                       }
+               }
 
-    [Test]
-    public void Synchronized_Empty ()
-    {
-        Group eg = Match.Empty.Groups[0];
-        Group sg = Match.Synchronized (eg);
-        Assert.AreSame (eg, sg, "Synchronized");
-    }
-}
+               [Test]
+               public void Synchronized_Empty ()
+               {
+                       Group eg = Match.Empty.Groups[0];
+                       Group sg = Match.Synchronized (eg);
+                       Assert.AreSame (eg, sg, "Synchronized");
+               }
+       }
 }
index 3c0505d7e8a6ad3fd1870ca8d8fa635ddbadbff5..147e3ed6ad55b2a0afae584b2b9d9ddefe7b44d9 100644 (file)
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -36,45 +36,45 @@ using System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-[TestFixture]
-[Category ("CAS")]
-public class MatchCas {
+       [TestFixture]
+       [Category ("CAS")]
+       public class MatchCas {
 
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Deny_Unrestricted ()
-    {
-        Match m = Match.Empty;
-        Assert.IsNotNull (m, "Empty");
-        Assert.IsNotNull (m.Groups, "Groups");
-        Assert.AreSame (m, m.NextMatch (), "NextMatch");
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Deny_Unrestricted ()
+               {
+                       Match m = Match.Empty;
+                       Assert.IsNotNull (m, "Empty");
+                       Assert.IsNotNull (m.Groups, "Groups");
+                       Assert.AreSame (m, m.NextMatch (), "NextMatch");
 
-        Match sm = Match.Synchronized (m);
-        Assert.IsNotNull (sm, "Synchronized");
-    }
+                       Match sm = Match.Synchronized (m);
+                       Assert.IsNotNull (sm, "Synchronized");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    [ExpectedException (typeof (NotSupportedException))]
-    public void Result_Deny_Unrestricted ()
-    {
-        Match.Empty.Result (String.Empty);
-    }
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               [ExpectedException (typeof (NotSupportedException))]
+               public void Result_Deny_Unrestricted ()
+               {
+                       Match.Empty.Result (String.Empty);
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        MethodInfo mi = typeof (Match).GetProperty ("Empty").GetGetMethod ();
-        Assert.IsNotNull (mi, "Empty");
-        Assert.IsNotNull (mi.Invoke (null, null), "invoke");
-    }
-}
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       MethodInfo mi = typeof (Match).GetProperty ("Empty").GetGetMethod ();
+                       Assert.IsNotNull (mi, "Empty");
+                       Assert.IsNotNull (mi.Invoke (null, null), "invoke");
+               }
+       }
 }
index 1bd12e4fccafb6c4f6157f8684775ccacfa33ec9..fcd52c13e8ffb164f72d7460828839c80ed690f1 100644 (file)
@@ -1,5 +1,5 @@
 //
-// MatchCollectionCas.cs
+// MatchCollectionCas.cs 
 //     - CAS unit tests for System.Text.RegularExpressions.MatchCollection
 //
 // Author:
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -37,37 +37,37 @@ using System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-[TestFixture]
-[Category ("CAS")]
-public class MatchCollectionCas {
+       [TestFixture]
+       [Category ("CAS")]
+       public class MatchCollectionCas {
 
-    private MatchCollection coll;
+               private MatchCollection coll;
 
-    [TestFixtureSetUp]
-    public void FixtureSetUp ()
-    {
-    }
+               [TestFixtureSetUp]
+               public void FixtureSetUp ()
+               {
+               }
 
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Deny_Unrestricted ()
-    {
-    }
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Deny_Unrestricted ()
+               {
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        MethodInfo mi = typeof (Match).GetProperty ("Empty").GetGetMethod ();
-        Assert.IsNotNull (mi, "Empty");
-        Assert.IsNotNull (mi.Invoke (null, null), "invoke");
-    }
-}
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       MethodInfo mi = typeof (Match).GetProperty ("Empty").GetGetMethod ();
+                       Assert.IsNotNull (mi, "Empty");
+                       Assert.IsNotNull (mi.Invoke (null, null), "invoke");
+               }
+       }
 }
index 7710f942a596282f9c85be74668a3f1fb1f50be2..58a9744adb30cac91db228d7386460749deb71a4 100644 (file)
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -33,76 +33,76 @@ using System.Text.RegularExpressions;
 
 namespace MonoTests.System.Text.RegularExpressions
 {
-[TestFixture]
-public class MatchTest
-{
-    [Test]
-    public void Synchronized_Inner_Null ()
-    {
-        try {
-            Match.Synchronized (null);
-            Assert.Fail ("#1");
-        } catch (ArgumentNullException ex) {
-            Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
-            Assert.IsNull (ex.InnerException, "#3");
-            Assert.IsNotNull (ex.Message, "#4");
-            Assert.IsNotNull (ex.ParamName, "#5");
-            Assert.AreEqual ("inner", ex.ParamName, "#6");
-        }
-    }
+       [TestFixture]
+       public class MatchTest
+       {
+               [Test]
+               public void Synchronized_Inner_Null ()
+               {
+                       try {
+                               Match.Synchronized (null);
+                               Assert.Fail ("#1");
+                       } catch (ArgumentNullException ex) {
+                               Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+                               Assert.IsNull (ex.InnerException, "#3");
+                               Assert.IsNotNull (ex.Message, "#4");
+                               Assert.IsNotNull (ex.ParamName, "#5");
+                               Assert.AreEqual ("inner", ex.ParamName, "#6");
+                       }
+               }
 
-    [Test]
-    public void Synchronized_Empty ()
-    {
-        Match em = Match.Empty;
-        Match sm = Match.Synchronized (em);
-        Assert.AreSame (em, sm, "Synchronized");
-    }
+               [Test]
+               public void Synchronized_Empty ()
+               {
+                       Match em = Match.Empty;
+                       Match sm = Match.Synchronized (em);
+                       Assert.AreSame (em, sm, "Synchronized");
+               }
 
-    [Test]
-    public void Result_Replacement_Null ()
-    {
-        try {
-            Match.Empty.Result (null);
-            Assert.Fail ("#1");
-        } catch (ArgumentNullException ex) {
-            Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
-            Assert.IsNull (ex.InnerException, "#3");
-            Assert.IsNotNull (ex.Message, "#4");
-            Assert.IsNotNull (ex.ParamName, "#5");
-            Assert.AreEqual ("replacement", ex.ParamName, "#6");
-        }
-    }
+               [Test]
+               public void Result_Replacement_Null ()
+               {
+                       try {
+                               Match.Empty.Result (null);
+                               Assert.Fail ("#1");
+                       } catch (ArgumentNullException ex) {
+                               Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+                               Assert.IsNull (ex.InnerException, "#3");
+                               Assert.IsNotNull (ex.Message, "#4");
+                               Assert.IsNotNull (ex.ParamName, "#5");
+                               Assert.AreEqual ("replacement", ex.ParamName, "#6");
+                       }
+               }
 
-    [Test]
-    public void Result_Replacement_Empty ()
-    {
-        Regex email = new Regex ("(?<user>[^@]+)@(?<domain>.+)");
-        Match m = email.Match ("mono@go-mono.com");
-        string exp = m.Result (string.Empty);
-        Assert.AreEqual (string.Empty, exp);
-    }
+               [Test]
+               public void Result_Replacement_Empty ()
+               {
+                       Regex email = new Regex ("(?<user>[^@]+)@(?<domain>.+)");
+                       Match m = email.Match ("mono@go-mono.com");
+                       string exp = m.Result (string.Empty);
+                       Assert.AreEqual (string.Empty, exp);
+               }
 
-    [Test]
-    public void Result_Match_Empty ()
-    {
-        try {
-            Match.Empty.Result ("whatever");
-            Assert.Fail ("#1");
-        } catch (NotSupportedException ex) {
-            // Result cannot be called on failed Match
-            Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2");
-            Assert.IsNull (ex.InnerException, "#3");
-            Assert.IsNotNull (ex.Message, "#4");
-        }
-    }
+               [Test]
+               public void Result_Match_Empty ()
+               {
+                       try {
+                               Match.Empty.Result ("whatever");
+                               Assert.Fail ("#1");
+                       } catch (NotSupportedException ex) {
+                               // Result cannot be called on failed Match
+                               Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2");
+                               Assert.IsNull (ex.InnerException, "#3");
+                               Assert.IsNotNull (ex.Message, "#4");
+                       }
+               }
 
-    [Test]
-    public void Match_Backref ()
-    {
-        Assert.IsTrue (Regex.IsMatch ("F2345678910LL1", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11"), "ltr");
-        // FIXME
-        //Assert.IsTrue (Regex.IsMatch ("F2345678910LL1", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11", RegexOptions.RightToLeft), "rtl");
-    }
-}
+               [Test]
+               public void Match_Backref ()
+               {
+                       Assert.IsTrue (Regex.IsMatch ("F2345678910LL1", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11"), "ltr");
+                       // FIXME
+                       //Assert.IsTrue (Regex.IsMatch ("F2345678910LL1", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11", RegexOptions.RightToLeft), "rtl");
+               }
+       }
 }
index 5f847deb7042cbcf7f032b093dc4dddaf82a3554..9d555f3fc11046a31ec95816065188a92f65fa62 100644 (file)
@@ -3,7 +3,7 @@
 // namespace:  MonoTests.System.Text.RegularExpressions
 // file:       PerlTest.cs
 //
-// Authors:
+// Authors:    
 //   Dan Lewis (dlewis@gmx.co.uk)
 //   Martin Willemoes Hansen (mwh@sysrq.dk)
 //   Gonzalo Paniagua Javier
@@ -19,2991 +19,1007 @@ using System.Text.RegularExpressions;
 using NUnit.Framework;
 
 namespace MonoTests.System.Text.RegularExpressions {
-[TestFixture]
-public class PerlTest {
-    [Test]
-    public void Trials ()
-    {
-        Console.WriteLine ("{0} trials", PerlTrials.trials.Length);
-    }
+       [TestFixture]
+       public class PerlTest {
+               [Test]
+               public void Trials ()
+               {
+                       Console.WriteLine ("{0} trials", PerlTrials.trials.Length);
+               }
 
-    // We choose to run the trials in separate tests rather than in a loop, since we want all trials to be run.
-    // A failing assertion in a test aborts the rest of the trials in that test.  So, we put one trial in each test.
-    [Test] public void Trial0000 () {
-        PerlTrials.trials [0].Execute ();
-    }
-    [Test] public void Trial0001 () {
-        PerlTrials.trials [1].Execute ();
-    }
-    [Test] public void Trial0002 () {
-        PerlTrials.trials [2].Execute ();
-    }
-    [Test] public void Trial0003 () {
-        PerlTrials.trials [3].Execute ();
-    }
-    [Test] public void Trial0004 () {
-        PerlTrials.trials [4].Execute ();
-    }
-    [Test] public void Trial0005 () {
-        PerlTrials.trials [5].Execute ();
-    }
-    [Test] public void Trial0006 () {
-        PerlTrials.trials [6].Execute ();
-    }
-    [Test] public void Trial0007 () {
-        PerlTrials.trials [7].Execute ();
-    }
-    [Test] public void Trial0008 () {
-        PerlTrials.trials [8].Execute ();
-    }
-    [Test] public void Trial0009 () {
-        PerlTrials.trials [9].Execute ();
-    }
-    [Test] public void Trial0010 () {
-        PerlTrials.trials [10].Execute ();
-    }
-    [Test] public void Trial0011 () {
-        PerlTrials.trials [11].Execute ();
-    }
-    [Test] public void Trial0012 () {
-        PerlTrials.trials [12].Execute ();
-    }
-    [Test] public void Trial0013 () {
-        PerlTrials.trials [13].Execute ();
-    }
-    [Test] public void Trial0014 () {
-        PerlTrials.trials [14].Execute ();
-    }
-    [Test] public void Trial0015 () {
-        PerlTrials.trials [15].Execute ();
-    }
-    [Test] public void Trial0016 () {
-        PerlTrials.trials [16].Execute ();
-    }
-    [Test] public void Trial0017 () {
-        PerlTrials.trials [17].Execute ();
-    }
-    [Test] public void Trial0018 () {
-        PerlTrials.trials [18].Execute ();
-    }
-    [Test] public void Trial0019 () {
-        PerlTrials.trials [19].Execute ();
-    }
-    [Test] public void Trial0020 () {
-        PerlTrials.trials [20].Execute ();
-    }
-    [Test] public void Trial0021 () {
-        PerlTrials.trials [21].Execute ();
-    }
-    [Test] public void Trial0022 () {
-        PerlTrials.trials [22].Execute ();
-    }
-    [Test] public void Trial0023 () {
-        PerlTrials.trials [23].Execute ();
-    }
-    [Test] public void Trial0024 () {
-        PerlTrials.trials [24].Execute ();
-    }
-    [Test] public void Trial0025 () {
-        PerlTrials.trials [25].Execute ();
-    }
-    [Test] public void Trial0026 () {
-        PerlTrials.trials [26].Execute ();
-    }
-    [Test] public void Trial0027 () {
-        PerlTrials.trials [27].Execute ();
-    }
-    [Test] public void Trial0028 () {
-        PerlTrials.trials [28].Execute ();
-    }
-    [Test] public void Trial0029 () {
-        PerlTrials.trials [29].Execute ();
-    }
-    [Test] public void Trial0030 () {
-        PerlTrials.trials [30].Execute ();
-    }
-    [Test] public void Trial0031 () {
-        PerlTrials.trials [31].Execute ();
-    }
-    [Test] public void Trial0032 () {
-        PerlTrials.trials [32].Execute ();
-    }
-    [Test] public void Trial0033 () {
-        PerlTrials.trials [33].Execute ();
-    }
-    [Test] public void Trial0034 () {
-        PerlTrials.trials [34].Execute ();
-    }
-    [Test] public void Trial0035 () {
-        PerlTrials.trials [35].Execute ();
-    }
-    [Test] public void Trial0036 () {
-        PerlTrials.trials [36].Execute ();
-    }
-    [Test] public void Trial0037 () {
-        PerlTrials.trials [37].Execute ();
-    }
-    [Test] public void Trial0038 () {
-        PerlTrials.trials [38].Execute ();
-    }
-    [Test] public void Trial0039 () {
-        PerlTrials.trials [39].Execute ();
-    }
-    [Test] public void Trial0040 () {
-        PerlTrials.trials [40].Execute ();
-    }
-    [Test] public void Trial0041 () {
-        PerlTrials.trials [41].Execute ();
-    }
-    [Test] public void Trial0042 () {
-        PerlTrials.trials [42].Execute ();
-    }
-    [Test] public void Trial0043 () {
-        PerlTrials.trials [43].Execute ();
-    }
-    [Test] public void Trial0044 () {
-        PerlTrials.trials [44].Execute ();
-    }
-    [Test] public void Trial0045 () {
-        PerlTrials.trials [45].Execute ();
-    }
-    [Test] public void Trial0046 () {
-        PerlTrials.trials [46].Execute ();
-    }
-    [Test] public void Trial0047 () {
-        PerlTrials.trials [47].Execute ();
-    }
-    [Test] public void Trial0048 () {
-        PerlTrials.trials [48].Execute ();
-    }
-    [Test] public void Trial0049 () {
-        PerlTrials.trials [49].Execute ();
-    }
-    [Test] public void Trial0050 () {
-        PerlTrials.trials [50].Execute ();
-    }
-    [Test] public void Trial0051 () {
-        PerlTrials.trials [51].Execute ();
-    }
-    [Test] public void Trial0052 () {
-        PerlTrials.trials [52].Execute ();
-    }
-    [Test] public void Trial0053 () {
-        PerlTrials.trials [53].Execute ();
-    }
-    [Test] public void Trial0054 () {
-        PerlTrials.trials [54].Execute ();
-    }
-    [Test] public void Trial0055 () {
-        PerlTrials.trials [55].Execute ();
-    }
-    [Test] public void Trial0056 () {
-        PerlTrials.trials [56].Execute ();
-    }
-    [Test] public void Trial0057 () {
-        PerlTrials.trials [57].Execute ();
-    }
-    [Test] public void Trial0058 () {
-        PerlTrials.trials [58].Execute ();
-    }
-    [Test] public void Trial0059 () {
-        PerlTrials.trials [59].Execute ();
-    }
-    [Test] public void Trial0060 () {
-        PerlTrials.trials [60].Execute ();
-    }
-    [Test] public void Trial0061 () {
-        PerlTrials.trials [61].Execute ();
-    }
-    [Test] public void Trial0062 () {
-        PerlTrials.trials [62].Execute ();
-    }
-    [Test] public void Trial0063 () {
-        PerlTrials.trials [63].Execute ();
-    }
-    [Test] public void Trial0064 () {
-        PerlTrials.trials [64].Execute ();
-    }
-    [Test] public void Trial0065 () {
-        PerlTrials.trials [65].Execute ();
-    }
-    [Test] public void Trial0066 () {
-        PerlTrials.trials [66].Execute ();
-    }
-    [Test] public void Trial0067 () {
-        PerlTrials.trials [67].Execute ();
-    }
-    [Test] public void Trial0068 () {
-        PerlTrials.trials [68].Execute ();
-    }
-    [Test] public void Trial0069 () {
-        PerlTrials.trials [69].Execute ();
-    }
-    [Test] public void Trial0070 () {
-        PerlTrials.trials [70].Execute ();
-    }
-    [Test] public void Trial0071 () {
-        PerlTrials.trials [71].Execute ();
-    }
-    [Test] public void Trial0072 () {
-        PerlTrials.trials [72].Execute ();
-    }
-    [Test] public void Trial0073 () {
-        PerlTrials.trials [73].Execute ();
-    }
-    [Test] public void Trial0074 () {
-        PerlTrials.trials [74].Execute ();
-    }
-    [Test] public void Trial0075 () {
-        PerlTrials.trials [75].Execute ();
-    }
-    [Test] public void Trial0076 () {
-        PerlTrials.trials [76].Execute ();
-    }
-    [Test] public void Trial0077 () {
-        PerlTrials.trials [77].Execute ();
-    }
-    [Test] public void Trial0078 () {
-        PerlTrials.trials [78].Execute ();
-    }
-    [Test] public void Trial0079 () {
-        PerlTrials.trials [79].Execute ();
-    }
-    [Test] public void Trial0080 () {
-        PerlTrials.trials [80].Execute ();
-    }
-    [Test] public void Trial0081 () {
-        PerlTrials.trials [81].Execute ();
-    }
-    [Test] public void Trial0082 () {
-        PerlTrials.trials [82].Execute ();
-    }
-    [Test] public void Trial0083 () {
-        PerlTrials.trials [83].Execute ();
-    }
-    [Test] public void Trial0084 () {
-        PerlTrials.trials [84].Execute ();
-    }
-    [Test] public void Trial0085 () {
-        PerlTrials.trials [85].Execute ();
-    }
-    [Test] public void Trial0086 () {
-        PerlTrials.trials [86].Execute ();
-    }
-    [Test] public void Trial0087 () {
-        PerlTrials.trials [87].Execute ();
-    }
-    [Test] public void Trial0088 () {
-        PerlTrials.trials [88].Execute ();
-    }
-    [Test] public void Trial0089 () {
-        PerlTrials.trials [89].Execute ();
-    }
-    [Test] public void Trial0090 () {
-        PerlTrials.trials [90].Execute ();
-    }
-    [Test] public void Trial0091 () {
-        PerlTrials.trials [91].Execute ();
-    }
-    [Test] public void Trial0092 () {
-        PerlTrials.trials [92].Execute ();
-    }
-    [Test] public void Trial0093 () {
-        PerlTrials.trials [93].Execute ();
-    }
-    [Test] public void Trial0094 () {
-        PerlTrials.trials [94].Execute ();
-    }
-    [Test] public void Trial0095 () {
-        PerlTrials.trials [95].Execute ();
-    }
-    [Test] public void Trial0096 () {
-        PerlTrials.trials [96].Execute ();
-    }
-    [Test] public void Trial0097 () {
-        PerlTrials.trials [97].Execute ();
-    }
-    [Test] public void Trial0098 () {
-        PerlTrials.trials [98].Execute ();
-    }
-    [Test] public void Trial0099 () {
-        PerlTrials.trials [99].Execute ();
-    }
-    [Test] public void Trial0100 () {
-        PerlTrials.trials [100].Execute ();
-    }
-    [Test] public void Trial0101 () {
-        PerlTrials.trials [101].Execute ();
-    }
-    [Test] public void Trial0102 () {
-        PerlTrials.trials [102].Execute ();
-    }
-    [Test] public void Trial0103 () {
-        PerlTrials.trials [103].Execute ();
-    }
-    [Test] public void Trial0104 () {
-        PerlTrials.trials [104].Execute ();
-    }
-    [Test] public void Trial0105 () {
-        PerlTrials.trials [105].Execute ();
-    }
-    [Test] public void Trial0106 () {
-        PerlTrials.trials [106].Execute ();
-    }
-    [Test] public void Trial0107 () {
-        PerlTrials.trials [107].Execute ();
-    }
-    [Test] public void Trial0108 () {
-        PerlTrials.trials [108].Execute ();
-    }
-    [Test] public void Trial0109 () {
-        PerlTrials.trials [109].Execute ();
-    }
-    [Test] public void Trial0110 () {
-        PerlTrials.trials [110].Execute ();
-    }
-    [Test] public void Trial0111 () {
-        PerlTrials.trials [111].Execute ();
-    }
-    [Test] public void Trial0112 () {
-        PerlTrials.trials [112].Execute ();
-    }
-    [Test] public void Trial0113 () {
-        PerlTrials.trials [113].Execute ();
-    }
-    [Test] public void Trial0114 () {
-        PerlTrials.trials [114].Execute ();
-    }
-    [Test] public void Trial0115 () {
-        PerlTrials.trials [115].Execute ();
-    }
-    [Test] public void Trial0116 () {
-        PerlTrials.trials [116].Execute ();
-    }
-    [Test] public void Trial0117 () {
-        PerlTrials.trials [117].Execute ();
-    }
-    [Test] public void Trial0118 () {
-        PerlTrials.trials [118].Execute ();
-    }
-    [Test] public void Trial0119 () {
-        PerlTrials.trials [119].Execute ();
-    }
-    [Test] public void Trial0120 () {
-        PerlTrials.trials [120].Execute ();
-    }
-    [Test] public void Trial0121 () {
-        PerlTrials.trials [121].Execute ();
-    }
-    [Test] public void Trial0122 () {
-        PerlTrials.trials [122].Execute ();
-    }
-    [Test] public void Trial0123 () {
-        PerlTrials.trials [123].Execute ();
-    }
-    [Test] public void Trial0124 () {
-        PerlTrials.trials [124].Execute ();
-    }
-    [Test] public void Trial0125 () {
-        PerlTrials.trials [125].Execute ();
-    }
-    [Test] public void Trial0126 () {
-        PerlTrials.trials [126].Execute ();
-    }
-    [Test] public void Trial0127 () {
-        PerlTrials.trials [127].Execute ();
-    }
-    [Test] public void Trial0128 () {
-        PerlTrials.trials [128].Execute ();
-    }
-    [Test] public void Trial0129 () {
-        PerlTrials.trials [129].Execute ();
-    }
-    [Test] public void Trial0130 () {
-        PerlTrials.trials [130].Execute ();
-    }
-    [Test] public void Trial0131 () {
-        PerlTrials.trials [131].Execute ();
-    }
-    [Test] public void Trial0132 () {
-        PerlTrials.trials [132].Execute ();
-    }
-    [Test] public void Trial0133 () {
-        PerlTrials.trials [133].Execute ();
-    }
-    [Test] public void Trial0134 () {
-        PerlTrials.trials [134].Execute ();
-    }
-    [Test] public void Trial0135 () {
-        PerlTrials.trials [135].Execute ();
-    }
-    [Test] public void Trial0136 () {
-        PerlTrials.trials [136].Execute ();
-    }
-    [Test] public void Trial0137 () {
-        PerlTrials.trials [137].Execute ();
-    }
-    [Test] public void Trial0138 () {
-        PerlTrials.trials [138].Execute ();
-    }
-    [Test] public void Trial0139 () {
-        PerlTrials.trials [139].Execute ();
-    }
-    [Test] public void Trial0140 () {
-        PerlTrials.trials [140].Execute ();
-    }
-    [Test] public void Trial0141 () {
-        PerlTrials.trials [141].Execute ();
-    }
-    [Test] public void Trial0142 () {
-        PerlTrials.trials [142].Execute ();
-    }
-    [Test] public void Trial0143 () {
-        PerlTrials.trials [143].Execute ();
-    }
-    [Test] public void Trial0144 () {
-        PerlTrials.trials [144].Execute ();
-    }
-    [Test] public void Trial0145 () {
-        PerlTrials.trials [145].Execute ();
-    }
-    [Test] public void Trial0146 () {
-        PerlTrials.trials [146].Execute ();
-    }
-    [Test] public void Trial0147 () {
-        PerlTrials.trials [147].Execute ();
-    }
-    [Test] public void Trial0148 () {
-        PerlTrials.trials [148].Execute ();
-    }
-    [Test] public void Trial0149 () {
-        PerlTrials.trials [149].Execute ();
-    }
-    [Test] public void Trial0150 () {
-        PerlTrials.trials [150].Execute ();
-    }
-    [Test] public void Trial0151 () {
-        PerlTrials.trials [151].Execute ();
-    }
-    [Test] public void Trial0152 () {
-        PerlTrials.trials [152].Execute ();
-    }
-    [Test] public void Trial0153 () {
-        PerlTrials.trials [153].Execute ();
-    }
-    [Test] public void Trial0154 () {
-        PerlTrials.trials [154].Execute ();
-    }
-    [Test] public void Trial0155 () {
-        PerlTrials.trials [155].Execute ();
-    }
-    [Test] public void Trial0156 () {
-        PerlTrials.trials [156].Execute ();
-    }
-    [Test] public void Trial0157 () {
-        PerlTrials.trials [157].Execute ();
-    }
-    [Test] public void Trial0158 () {
-        PerlTrials.trials [158].Execute ();
-    }
-    [Test] public void Trial0159 () {
-        PerlTrials.trials [159].Execute ();
-    }
-    [Test] public void Trial0160 () {
-        PerlTrials.trials [160].Execute ();
-    }
-    [Test] public void Trial0161 () {
-        PerlTrials.trials [161].Execute ();
-    }
-    [Test] public void Trial0162 () {
-        PerlTrials.trials [162].Execute ();
-    }
-    [Test] public void Trial0163 () {
-        PerlTrials.trials [163].Execute ();
-    }
-    [Test] public void Trial0164 () {
-        PerlTrials.trials [164].Execute ();
-    }
-    [Test] public void Trial0165 () {
-        PerlTrials.trials [165].Execute ();
-    }
-    [Test] public void Trial0166 () {
-        PerlTrials.trials [166].Execute ();
-    }
-    [Test] public void Trial0167 () {
-        PerlTrials.trials [167].Execute ();
-    }
-    [Test] public void Trial0168 () {
-        PerlTrials.trials [168].Execute ();
-    }
-    [Test] public void Trial0169 () {
-        PerlTrials.trials [169].Execute ();
-    }
-    [Test] public void Trial0170 () {
-        PerlTrials.trials [170].Execute ();
-    }
-    [Test] public void Trial0171 () {
-        PerlTrials.trials [171].Execute ();
-    }
-    [Test] public void Trial0172 () {
-        PerlTrials.trials [172].Execute ();
-    }
-    [Test] public void Trial0173 () {
-        PerlTrials.trials [173].Execute ();
-    }
-    [Test] public void Trial0174 () {
-        PerlTrials.trials [174].Execute ();
-    }
-    [Test] public void Trial0175 () {
-        PerlTrials.trials [175].Execute ();
-    }
-    [Test] public void Trial0176 () {
-        PerlTrials.trials [176].Execute ();
-    }
-    [Test] public void Trial0177 () {
-        PerlTrials.trials [177].Execute ();
-    }
-    [Test] public void Trial0178 () {
-        PerlTrials.trials [178].Execute ();
-    }
-    [Test] public void Trial0179 () {
-        PerlTrials.trials [179].Execute ();
-    }
-    [Test] public void Trial0180 () {
-        PerlTrials.trials [180].Execute ();
-    }
-    [Test] public void Trial0181 () {
-        PerlTrials.trials [181].Execute ();
-    }
-    [Test] public void Trial0182 () {
-        PerlTrials.trials [182].Execute ();
-    }
-    [Test] public void Trial0183 () {
-        PerlTrials.trials [183].Execute ();
-    }
-    [Test] public void Trial0184 () {
-        PerlTrials.trials [184].Execute ();
-    }
-    [Test] public void Trial0185 () {
-        PerlTrials.trials [185].Execute ();
-    }
-    [Test] public void Trial0186 () {
-        PerlTrials.trials [186].Execute ();
-    }
-    [Test] public void Trial0187 () {
-        PerlTrials.trials [187].Execute ();
-    }
-    [Test] public void Trial0188 () {
-        PerlTrials.trials [188].Execute ();
-    }
-    [Test] public void Trial0189 () {
-        PerlTrials.trials [189].Execute ();
-    }
-    [Test] public void Trial0190 () {
-        PerlTrials.trials [190].Execute ();
-    }
-    [Test] public void Trial0191 () {
-        PerlTrials.trials [191].Execute ();
-    }
-    [Test] public void Trial0192 () {
-        PerlTrials.trials [192].Execute ();
-    }
-    [Test] public void Trial0193 () {
-        PerlTrials.trials [193].Execute ();
-    }
-    [Test] public void Trial0194 () {
-        PerlTrials.trials [194].Execute ();
-    }
-    [Test] public void Trial0195 () {
-        PerlTrials.trials [195].Execute ();
-    }
-    [Test] public void Trial0196 () {
-        PerlTrials.trials [196].Execute ();
-    }
-    [Test] public void Trial0197 () {
-        PerlTrials.trials [197].Execute ();
-    }
-    [Test] public void Trial0198 () {
-        PerlTrials.trials [198].Execute ();
-    }
-    [Test] public void Trial0199 () {
-        PerlTrials.trials [199].Execute ();
-    }
-    [Test] public void Trial0200 () {
-        PerlTrials.trials [200].Execute ();
-    }
-    [Test] public void Trial0201 () {
-        PerlTrials.trials [201].Execute ();
-    }
-    [Test] public void Trial0202 () {
-        PerlTrials.trials [202].Execute ();
-    }
-    [Test] public void Trial0203 () {
-        PerlTrials.trials [203].Execute ();
-    }
-    [Test] public void Trial0204 () {
-        PerlTrials.trials [204].Execute ();
-    }
-    [Test] public void Trial0205 () {
-        PerlTrials.trials [205].Execute ();
-    }
-    [Test] public void Trial0206 () {
-        PerlTrials.trials [206].Execute ();
-    }
-    [Test] public void Trial0207 () {
-        PerlTrials.trials [207].Execute ();
-    }
-    [Test] public void Trial0208 () {
-        PerlTrials.trials [208].Execute ();
-    }
-    [Test] public void Trial0209 () {
-        PerlTrials.trials [209].Execute ();
-    }
-    [Test] public void Trial0210 () {
-        PerlTrials.trials [210].Execute ();
-    }
-    [Test] public void Trial0211 () {
-        PerlTrials.trials [211].Execute ();
-    }
-    [Test] public void Trial0212 () {
-        PerlTrials.trials [212].Execute ();
-    }
-    [Test] public void Trial0213 () {
-        PerlTrials.trials [213].Execute ();
-    }
-    [Test] public void Trial0214 () {
-        PerlTrials.trials [214].Execute ();
-    }
-    [Test] public void Trial0215 () {
-        PerlTrials.trials [215].Execute ();
-    }
-    [Test] public void Trial0216 () {
-        PerlTrials.trials [216].Execute ();
-    }
-    [Test] public void Trial0217 () {
-        PerlTrials.trials [217].Execute ();
-    }
-    [Test] public void Trial0218 () {
-        PerlTrials.trials [218].Execute ();
-    }
-    [Test] public void Trial0219 () {
-        PerlTrials.trials [219].Execute ();
-    }
-    [Test] public void Trial0220 () {
-        PerlTrials.trials [220].Execute ();
-    }
-    [Test] public void Trial0221 () {
-        PerlTrials.trials [221].Execute ();
-    }
-    [Test] public void Trial0222 () {
-        PerlTrials.trials [222].Execute ();
-    }
-    [Test] public void Trial0223 () {
-        PerlTrials.trials [223].Execute ();
-    }
-    [Test] public void Trial0224 () {
-        PerlTrials.trials [224].Execute ();
-    }
-    [Test] public void Trial0225 () {
-        PerlTrials.trials [225].Execute ();
-    }
-    [Test] public void Trial0226 () {
-        PerlTrials.trials [226].Execute ();
-    }
-    [Test] public void Trial0227 () {
-        PerlTrials.trials [227].Execute ();
-    }
-    [Test] public void Trial0228 () {
-        PerlTrials.trials [228].Execute ();
-    }
-    [Test] public void Trial0229 () {
-        PerlTrials.trials [229].Execute ();
-    }
-    [Test] public void Trial0230 () {
-        PerlTrials.trials [230].Execute ();
-    }
-    [Test] public void Trial0231 () {
-        PerlTrials.trials [231].Execute ();
-    }
-    [Test] public void Trial0232 () {
-        PerlTrials.trials [232].Execute ();
-    }
-    [Test] public void Trial0233 () {
-        PerlTrials.trials [233].Execute ();
-    }
-    [Test] public void Trial0234 () {
-        PerlTrials.trials [234].Execute ();
-    }
-    [Test] public void Trial0235 () {
-        PerlTrials.trials [235].Execute ();
-    }
-    [Test] public void Trial0236 () {
-        PerlTrials.trials [236].Execute ();
-    }
-    [Test] public void Trial0237 () {
-        PerlTrials.trials [237].Execute ();
-    }
-    [Test] public void Trial0238 () {
-        PerlTrials.trials [238].Execute ();
-    }
-    [Test] public void Trial0239 () {
-        PerlTrials.trials [239].Execute ();
-    }
-    [Test] public void Trial0240 () {
-        PerlTrials.trials [240].Execute ();
-    }
-    [Test] public void Trial0241 () {
-        PerlTrials.trials [241].Execute ();
-    }
-    [Test] public void Trial0242 () {
-        PerlTrials.trials [242].Execute ();
-    }
-    [Test] public void Trial0243 () {
-        PerlTrials.trials [243].Execute ();
-    }
-    [Test] public void Trial0244 () {
-        PerlTrials.trials [244].Execute ();
-    }
-    [Test] public void Trial0245 () {
-        PerlTrials.trials [245].Execute ();
-    }
-    [Test] public void Trial0246 () {
-        PerlTrials.trials [246].Execute ();
-    }
-    [Test] public void Trial0247 () {
-        PerlTrials.trials [247].Execute ();
-    }
-    [Test] public void Trial0248 () {
-        PerlTrials.trials [248].Execute ();
-    }
-    [Test] public void Trial0249 () {
-        PerlTrials.trials [249].Execute ();
-    }
-    [Test] public void Trial0250 () {
-        PerlTrials.trials [250].Execute ();
-    }
-    [Test] public void Trial0251 () {
-        PerlTrials.trials [251].Execute ();
-    }
-    [Test] public void Trial0252 () {
-        PerlTrials.trials [252].Execute ();
-    }
-    [Test] public void Trial0253 () {
-        PerlTrials.trials [253].Execute ();
-    }
-    [Test] public void Trial0254 () {
-        PerlTrials.trials [254].Execute ();
-    }
-    [Test] public void Trial0255 () {
-        PerlTrials.trials [255].Execute ();
-    }
-    [Test] public void Trial0256 () {
-        PerlTrials.trials [256].Execute ();
-    }
-    [Test] public void Trial0257 () {
-        PerlTrials.trials [257].Execute ();
-    }
-    [Test] public void Trial0258 () {
-        PerlTrials.trials [258].Execute ();
-    }
-    [Test] public void Trial0259 () {
-        PerlTrials.trials [259].Execute ();
-    }
-    [Test] public void Trial0260 () {
-        PerlTrials.trials [260].Execute ();
-    }
-    [Test] public void Trial0261 () {
-        PerlTrials.trials [261].Execute ();
-    }
-    [Test] public void Trial0262 () {
-        PerlTrials.trials [262].Execute ();
-    }
-    [Test] public void Trial0263 () {
-        PerlTrials.trials [263].Execute ();
-    }
-    [Test] public void Trial0264 () {
-        PerlTrials.trials [264].Execute ();
-    }
-    [Test] public void Trial0265 () {
-        PerlTrials.trials [265].Execute ();
-    }
-    [Test] public void Trial0266 () {
-        PerlTrials.trials [266].Execute ();
-    }
-    [Test] public void Trial0267 () {
-        PerlTrials.trials [267].Execute ();
-    }
-    [Test] public void Trial0268 () {
-        PerlTrials.trials [268].Execute ();
-    }
-    [Test] public void Trial0269 () {
-        PerlTrials.trials [269].Execute ();
-    }
-    [Test] public void Trial0270 () {
-        PerlTrials.trials [270].Execute ();
-    }
-    [Test] public void Trial0271 () {
-        PerlTrials.trials [271].Execute ();
-    }
-    [Test] public void Trial0272 () {
-        PerlTrials.trials [272].Execute ();
-    }
-    [Test] public void Trial0273 () {
-        PerlTrials.trials [273].Execute ();
-    }
-    [Test] public void Trial0274 () {
-        PerlTrials.trials [274].Execute ();
-    }
-    [Test] public void Trial0275 () {
-        PerlTrials.trials [275].Execute ();
-    }
-    [Test] public void Trial0276 () {
-        PerlTrials.trials [276].Execute ();
-    }
-    [Test] public void Trial0277 () {
-        PerlTrials.trials [277].Execute ();
-    }
-    [Test] public void Trial0278 () {
-        PerlTrials.trials [278].Execute ();
-    }
-    [Test] public void Trial0279 () {
-        PerlTrials.trials [279].Execute ();
-    }
-    [Test] public void Trial0280 () {
-        PerlTrials.trials [280].Execute ();
-    }
-    [Test] public void Trial0281 () {
-        PerlTrials.trials [281].Execute ();
-    }
-    [Test] public void Trial0282 () {
-        PerlTrials.trials [282].Execute ();
-    }
-    [Test] public void Trial0283 () {
-        PerlTrials.trials [283].Execute ();
-    }
-    [Test] public void Trial0284 () {
-        PerlTrials.trials [284].Execute ();
-    }
-    [Test] public void Trial0285 () {
-        PerlTrials.trials [285].Execute ();
-    }
-    [Test] public void Trial0286 () {
-        PerlTrials.trials [286].Execute ();
-    }
-    [Test] public void Trial0287 () {
-        PerlTrials.trials [287].Execute ();
-    }
-    [Test] public void Trial0288 () {
-        PerlTrials.trials [288].Execute ();
-    }
-    [Test] public void Trial0289 () {
-        PerlTrials.trials [289].Execute ();
-    }
-    [Test] public void Trial0290 () {
-        PerlTrials.trials [290].Execute ();
-    }
-    [Test] public void Trial0291 () {
-        PerlTrials.trials [291].Execute ();
-    }
-    [Test] public void Trial0292 () {
-        PerlTrials.trials [292].Execute ();
-    }
-    [Test] public void Trial0293 () {
-        PerlTrials.trials [293].Execute ();
-    }
-    [Test] public void Trial0294 () {
-        PerlTrials.trials [294].Execute ();
-    }
-    [Test] public void Trial0295 () {
-        PerlTrials.trials [295].Execute ();
-    }
-    [Test] public void Trial0296 () {
-        PerlTrials.trials [296].Execute ();
-    }
-    [Test] public void Trial0297 () {
-        PerlTrials.trials [297].Execute ();
-    }
-    [Test] public void Trial0298 () {
-        PerlTrials.trials [298].Execute ();
-    }
-    [Test] public void Trial0299 () {
-        PerlTrials.trials [299].Execute ();
-    }
-    [Test] public void Trial0300 () {
-        PerlTrials.trials [300].Execute ();
-    }
-    [Test] public void Trial0301 () {
-        PerlTrials.trials [301].Execute ();
-    }
-    [Test] public void Trial0302 () {
-        PerlTrials.trials [302].Execute ();
-    }
-    [Test] public void Trial0303 () {
-        PerlTrials.trials [303].Execute ();
-    }
-    [Test] public void Trial0304 () {
-        PerlTrials.trials [304].Execute ();
-    }
-    [Test] public void Trial0305 () {
-        PerlTrials.trials [305].Execute ();
-    }
-    [Test] public void Trial0306 () {
-        PerlTrials.trials [306].Execute ();
-    }
-    [Test] public void Trial0307 () {
-        PerlTrials.trials [307].Execute ();
-    }
-    [Test] public void Trial0308 () {
-        PerlTrials.trials [308].Execute ();
-    }
-    [Test] public void Trial0309 () {
-        PerlTrials.trials [309].Execute ();
-    }
-    [Test] public void Trial0310 () {
-        PerlTrials.trials [310].Execute ();
-    }
-    [Test] public void Trial0311 () {
-        PerlTrials.trials [311].Execute ();
-    }
-    [Test] public void Trial0312 () {
-        PerlTrials.trials [312].Execute ();
-    }
-    [Test] public void Trial0313 () {
-        PerlTrials.trials [313].Execute ();
-    }
-    [Test] public void Trial0314 () {
-        PerlTrials.trials [314].Execute ();
-    }
-    [Test] public void Trial0315 () {
-        PerlTrials.trials [315].Execute ();
-    }
-    [Test] public void Trial0316 () {
-        PerlTrials.trials [316].Execute ();
-    }
-    [Test] public void Trial0317 () {
-        PerlTrials.trials [317].Execute ();
-    }
-    [Test] public void Trial0318 () {
-        PerlTrials.trials [318].Execute ();
-    }
-    [Test] public void Trial0319 () {
-        PerlTrials.trials [319].Execute ();
-    }
-    [Test] public void Trial0320 () {
-        PerlTrials.trials [320].Execute ();
-    }
-    [Test] public void Trial0321 () {
-        PerlTrials.trials [321].Execute ();
-    }
-    [Test] public void Trial0322 () {
-        PerlTrials.trials [322].Execute ();
-    }
-    [Test] public void Trial0323 () {
-        PerlTrials.trials [323].Execute ();
-    }
-    [Test] public void Trial0324 () {
-        PerlTrials.trials [324].Execute ();
-    }
-    [Test] public void Trial0325 () {
-        PerlTrials.trials [325].Execute ();
-    }
-    [Test] public void Trial0326 () {
-        PerlTrials.trials [326].Execute ();
-    }
-    [Test] public void Trial0327 () {
-        PerlTrials.trials [327].Execute ();
-    }
-    [Test] public void Trial0328 () {
-        PerlTrials.trials [328].Execute ();
-    }
-    [Test] public void Trial0329 () {
-        PerlTrials.trials [329].Execute ();
-    }
-    [Test] public void Trial0330 () {
-        PerlTrials.trials [330].Execute ();
-    }
-    [Test] public void Trial0331 () {
-        PerlTrials.trials [331].Execute ();
-    }
-    [Test] public void Trial0332 () {
-        PerlTrials.trials [332].Execute ();
-    }
-    [Test] public void Trial0333 () {
-        PerlTrials.trials [333].Execute ();
-    }
-    [Test] public void Trial0334 () {
-        PerlTrials.trials [334].Execute ();
-    }
-    [Test] public void Trial0335 () {
-        PerlTrials.trials [335].Execute ();
-    }
-    [Test] public void Trial0336 () {
-        PerlTrials.trials [336].Execute ();
-    }
-    [Test] public void Trial0337 () {
-        PerlTrials.trials [337].Execute ();
-    }
-    [Test] public void Trial0338 () {
-        PerlTrials.trials [338].Execute ();
-    }
-    [Test] public void Trial0339 () {
-        PerlTrials.trials [339].Execute ();
-    }
-    [Test] public void Trial0340 () {
-        PerlTrials.trials [340].Execute ();
-    }
-    [Test] public void Trial0341 () {
-        PerlTrials.trials [341].Execute ();
-    }
-    [Test] public void Trial0342 () {
-        PerlTrials.trials [342].Execute ();
-    }
-    [Test] public void Trial0343 () {
-        PerlTrials.trials [343].Execute ();
-    }
-    [Test] public void Trial0344 () {
-        PerlTrials.trials [344].Execute ();
-    }
-    [Test] public void Trial0345 () {
-        PerlTrials.trials [345].Execute ();
-    }
-    [Test] public void Trial0346 () {
-        PerlTrials.trials [346].Execute ();
-    }
-    [Test] public void Trial0347 () {
-        PerlTrials.trials [347].Execute ();
-    }
-    [Test] public void Trial0348 () {
-        PerlTrials.trials [348].Execute ();
-    }
-    [Test] public void Trial0349 () {
-        PerlTrials.trials [349].Execute ();
-    }
-    [Test] public void Trial0350 () {
-        PerlTrials.trials [350].Execute ();
-    }
-    [Test] public void Trial0351 () {
-        PerlTrials.trials [351].Execute ();
-    }
-    [Test] public void Trial0352 () {
-        PerlTrials.trials [352].Execute ();
-    }
-    [Test] public void Trial0353 () {
-        PerlTrials.trials [353].Execute ();
-    }
-    [Test] public void Trial0354 () {
-        PerlTrials.trials [354].Execute ();
-    }
-    [Test] public void Trial0355 () {
-        PerlTrials.trials [355].Execute ();
-    }
-    [Test] public void Trial0356 () {
-        PerlTrials.trials [356].Execute ();
-    }
-    [Test] public void Trial0357 () {
-        PerlTrials.trials [357].Execute ();
-    }
-    [Test] public void Trial0358 () {
-        PerlTrials.trials [358].Execute ();
-    }
-    [Test] public void Trial0359 () {
-        PerlTrials.trials [359].Execute ();
-    }
-    [Test] public void Trial0360 () {
-        PerlTrials.trials [360].Execute ();
-    }
-    [Test] public void Trial0361 () {
-        PerlTrials.trials [361].Execute ();
-    }
-    [Test] public void Trial0362 () {
-        PerlTrials.trials [362].Execute ();
-    }
-    [Test] public void Trial0363 () {
-        PerlTrials.trials [363].Execute ();
-    }
-    [Test] public void Trial0364 () {
-        PerlTrials.trials [364].Execute ();
-    }
-    [Test] public void Trial0365 () {
-        PerlTrials.trials [365].Execute ();
-    }
-    [Test] public void Trial0366 () {
-        PerlTrials.trials [366].Execute ();
-    }
-    [Test] public void Trial0367 () {
-        PerlTrials.trials [367].Execute ();
-    }
-    [Test] public void Trial0368 () {
-        PerlTrials.trials [368].Execute ();
-    }
-    [Test] public void Trial0369 () {
-        PerlTrials.trials [369].Execute ();
-    }
-    [Test] public void Trial0370 () {
-        PerlTrials.trials [370].Execute ();
-    }
-    [Test] public void Trial0371 () {
-        PerlTrials.trials [371].Execute ();
-    }
-    [Test] public void Trial0372 () {
-        PerlTrials.trials [372].Execute ();
-    }
-    [Test] public void Trial0373 () {
-        PerlTrials.trials [373].Execute ();
-    }
-    [Test] public void Trial0374 () {
-        PerlTrials.trials [374].Execute ();
-    }
-    [Test] public void Trial0375 () {
-        PerlTrials.trials [375].Execute ();
-    }
-    [Test] public void Trial0376 () {
-        PerlTrials.trials [376].Execute ();
-    }
-    [Test] public void Trial0377 () {
-        PerlTrials.trials [377].Execute ();
-    }
-    [Test] public void Trial0378 () {
-        PerlTrials.trials [378].Execute ();
-    }
-    [Test] public void Trial0379 () {
-        PerlTrials.trials [379].Execute ();
-    }
-    [Test] public void Trial0380 () {
-        PerlTrials.trials [380].Execute ();
-    }
-    [Test] public void Trial0381 () {
-        PerlTrials.trials [381].Execute ();
-    }
-    [Test] public void Trial0382 () {
-        PerlTrials.trials [382].Execute ();
-    }
-    [Test] public void Trial0383 () {
-        PerlTrials.trials [383].Execute ();
-    }
-    [Test] public void Trial0384 () {
-        PerlTrials.trials [384].Execute ();
-    }
-    [Test] public void Trial0385 () {
-        PerlTrials.trials [385].Execute ();
-    }
-    [Test] public void Trial0386 () {
-        PerlTrials.trials [386].Execute ();
-    }
-    [Test] public void Trial0387 () {
-        PerlTrials.trials [387].Execute ();
-    }
-    [Test] public void Trial0388 () {
-        PerlTrials.trials [388].Execute ();
-    }
-    [Test] public void Trial0389 () {
-        PerlTrials.trials [389].Execute ();
-    }
-    [Test] public void Trial0390 () {
-        PerlTrials.trials [390].Execute ();
-    }
-    [Test] public void Trial0391 () {
-        PerlTrials.trials [391].Execute ();
-    }
-    [Test] public void Trial0392 () {
-        PerlTrials.trials [392].Execute ();
-    }
-    [Test] public void Trial0393 () {
-        PerlTrials.trials [393].Execute ();
-    }
-    [Test] public void Trial0394 () {
-        PerlTrials.trials [394].Execute ();
-    }
-    [Test] public void Trial0395 () {
-        PerlTrials.trials [395].Execute ();
-    }
-    [Test] public void Trial0396 () {
-        PerlTrials.trials [396].Execute ();
-    }
-    [Test] public void Trial0397 () {
-        PerlTrials.trials [397].Execute ();
-    }
-    [Test] public void Trial0398 () {
-        PerlTrials.trials [398].Execute ();
-    }
-    [Test] public void Trial0399 () {
-        PerlTrials.trials [399].Execute ();
-    }
-    [Test] public void Trial0400 () {
-        PerlTrials.trials [400].Execute ();
-    }
-    [Test] public void Trial0401 () {
-        PerlTrials.trials [401].Execute ();
-    }
-    [Test] public void Trial0402 () {
-        PerlTrials.trials [402].Execute ();
-    }
-    [Test] public void Trial0403 () {
-        PerlTrials.trials [403].Execute ();
-    }
-    [Test] public void Trial0404 () {
-        PerlTrials.trials [404].Execute ();
-    }
-    [Test] public void Trial0405 () {
-        PerlTrials.trials [405].Execute ();
-    }
-    [Test] public void Trial0406 () {
-        PerlTrials.trials [406].Execute ();
-    }
-    [Test] public void Trial0407 () {
-        PerlTrials.trials [407].Execute ();
-    }
-    [Test] public void Trial0408 () {
-        PerlTrials.trials [408].Execute ();
-    }
-    [Test] public void Trial0409 () {
-        PerlTrials.trials [409].Execute ();
-    }
-    [Test] public void Trial0410 () {
-        PerlTrials.trials [410].Execute ();
-    }
-    [Test] public void Trial0411 () {
-        PerlTrials.trials [411].Execute ();
-    }
-    [Test] public void Trial0412 () {
-        PerlTrials.trials [412].Execute ();
-    }
-    [Test] public void Trial0413 () {
-        PerlTrials.trials [413].Execute ();
-    }
-    [Test] public void Trial0414 () {
-        PerlTrials.trials [414].Execute ();
-    }
-    [Test] public void Trial0415 () {
-        PerlTrials.trials [415].Execute ();
-    }
-    [Test] public void Trial0416 () {
-        PerlTrials.trials [416].Execute ();
-    }
-    [Test] public void Trial0417 () {
-        PerlTrials.trials [417].Execute ();
-    }
-    [Test] public void Trial0418 () {
-        PerlTrials.trials [418].Execute ();
-    }
-    [Test] public void Trial0419 () {
-        PerlTrials.trials [419].Execute ();
-    }
-    [Test] public void Trial0420 () {
-        PerlTrials.trials [420].Execute ();
-    }
-    [Test] public void Trial0421 () {
-        PerlTrials.trials [421].Execute ();
-    }
-    [Test] public void Trial0422 () {
-        PerlTrials.trials [422].Execute ();
-    }
-    [Test] public void Trial0423 () {
-        PerlTrials.trials [423].Execute ();
-    }
-    [Test] public void Trial0424 () {
-        PerlTrials.trials [424].Execute ();
-    }
-    [Test] public void Trial0425 () {
-        PerlTrials.trials [425].Execute ();
-    }
-    [Test] public void Trial0426 () {
-        PerlTrials.trials [426].Execute ();
-    }
-    [Test] public void Trial0427 () {
-        PerlTrials.trials [427].Execute ();
-    }
-    [Test] public void Trial0428 () {
-        PerlTrials.trials [428].Execute ();
-    }
-    [Test] public void Trial0429 () {
-        PerlTrials.trials [429].Execute ();
-    }
-    [Test] public void Trial0430 () {
-        PerlTrials.trials [430].Execute ();
-    }
-    [Test] public void Trial0431 () {
-        PerlTrials.trials [431].Execute ();
-    }
-    [Test] public void Trial0432 () {
-        PerlTrials.trials [432].Execute ();
-    }
-    [Test] public void Trial0433 () {
-        PerlTrials.trials [433].Execute ();
-    }
-    [Test] public void Trial0434 () {
-        PerlTrials.trials [434].Execute ();
-    }
-    [Test] public void Trial0435 () {
-        PerlTrials.trials [435].Execute ();
-    }
-    [Test] public void Trial0436 () {
-        PerlTrials.trials [436].Execute ();
-    }
-    [Test] public void Trial0437 () {
-        PerlTrials.trials [437].Execute ();
-    }
-    [Test] public void Trial0438 () {
-        PerlTrials.trials [438].Execute ();
-    }
-    [Test] public void Trial0439 () {
-        PerlTrials.trials [439].Execute ();
-    }
-    [Test] public void Trial0440 () {
-        PerlTrials.trials [440].Execute ();
-    }
-    [Test] public void Trial0441 () {
-        PerlTrials.trials [441].Execute ();
-    }
-    [Test] public void Trial0442 () {
-        PerlTrials.trials [442].Execute ();
-    }
-    [Test] public void Trial0443 () {
-        PerlTrials.trials [443].Execute ();
-    }
-    [Test] public void Trial0444 () {
-        PerlTrials.trials [444].Execute ();
-    }
-    [Test] public void Trial0445 () {
-        PerlTrials.trials [445].Execute ();
-    }
-    [Test] public void Trial0446 () {
-        PerlTrials.trials [446].Execute ();
-    }
-    [Test] public void Trial0447 () {
-        PerlTrials.trials [447].Execute ();
-    }
-    [Test] public void Trial0448 () {
-        PerlTrials.trials [448].Execute ();
-    }
-    [Test] public void Trial0449 () {
-        PerlTrials.trials [449].Execute ();
-    }
-    [Test] public void Trial0450 () {
-        PerlTrials.trials [450].Execute ();
-    }
-    [Test] public void Trial0451 () {
-        PerlTrials.trials [451].Execute ();
-    }
-    [Test] public void Trial0452 () {
-        PerlTrials.trials [452].Execute ();
-    }
-    [Test] public void Trial0453 () {
-        PerlTrials.trials [453].Execute ();
-    }
-    [Test] public void Trial0454 () {
-        PerlTrials.trials [454].Execute ();
-    }
-    [Test] public void Trial0455 () {
-        PerlTrials.trials [455].Execute ();
-    }
-    [Test] public void Trial0456 () {
-        PerlTrials.trials [456].Execute ();
-    }
-    [Test] public void Trial0457 () {
-        PerlTrials.trials [457].Execute ();
-    }
-    [Test] public void Trial0458 () {
-        PerlTrials.trials [458].Execute ();
-    }
-    [Test] public void Trial0459 () {
-        PerlTrials.trials [459].Execute ();
-    }
-    [Test] public void Trial0460 () {
-        PerlTrials.trials [460].Execute ();
-    }
-    [Test] public void Trial0461 () {
-        PerlTrials.trials [461].Execute ();
-    }
-    [Test] public void Trial0462 () {
-        PerlTrials.trials [462].Execute ();
-    }
-    [Test] public void Trial0463 () {
-        PerlTrials.trials [463].Execute ();
-    }
-    [Test] public void Trial0464 () {
-        PerlTrials.trials [464].Execute ();
-    }
-    [Test] public void Trial0465 () {
-        PerlTrials.trials [465].Execute ();
-    }
-    [Test] public void Trial0466 () {
-        PerlTrials.trials [466].Execute ();
-    }
-    [Test] public void Trial0467 () {
-        PerlTrials.trials [467].Execute ();
-    }
-    [Test] public void Trial0468 () {
-        PerlTrials.trials [468].Execute ();
-    }
-    [Test] public void Trial0469 () {
-        PerlTrials.trials [469].Execute ();
-    }
-    [Test] public void Trial0470 () {
-        PerlTrials.trials [470].Execute ();
-    }
-    [Test] public void Trial0471 () {
-        PerlTrials.trials [471].Execute ();
-    }
-    [Test] public void Trial0472 () {
-        PerlTrials.trials [472].Execute ();
-    }
-    [Test] public void Trial0473 () {
-        PerlTrials.trials [473].Execute ();
-    }
-    [Test] public void Trial0474 () {
-        PerlTrials.trials [474].Execute ();
-    }
-    [Test] public void Trial0475 () {
-        PerlTrials.trials [475].Execute ();
-    }
-    [Test] public void Trial0476 () {
-        PerlTrials.trials [476].Execute ();
-    }
-    [Test] public void Trial0477 () {
-        PerlTrials.trials [477].Execute ();
-    }
-    [Test] public void Trial0478 () {
-        PerlTrials.trials [478].Execute ();
-    }
-    [Test] public void Trial0479 () {
-        PerlTrials.trials [479].Execute ();
-    }
-    [Test] public void Trial0480 () {
-        PerlTrials.trials [480].Execute ();
-    }
-    [Test] public void Trial0481 () {
-        PerlTrials.trials [481].Execute ();
-    }
-    [Test] public void Trial0482 () {
-        PerlTrials.trials [482].Execute ();
-    }
-    [Test] public void Trial0483 () {
-        PerlTrials.trials [483].Execute ();
-    }
-    [Test] public void Trial0484 () {
-        PerlTrials.trials [484].Execute ();
-    }
-    [Test] public void Trial0485 () {
-        PerlTrials.trials [485].Execute ();
-    }
-    [Test] public void Trial0486 () {
-        PerlTrials.trials [486].Execute ();
-    }
-    [Test] public void Trial0487 () {
-        PerlTrials.trials [487].Execute ();
-    }
-    [Test] public void Trial0488 () {
-        PerlTrials.trials [488].Execute ();
-    }
-    [Test] public void Trial0489 () {
-        PerlTrials.trials [489].Execute ();
-    }
-    [Test] public void Trial0490 () {
-        PerlTrials.trials [490].Execute ();
-    }
-    [Test] public void Trial0491 () {
-        PerlTrials.trials [491].Execute ();
-    }
-    [Test] public void Trial0492 () {
-        PerlTrials.trials [492].Execute ();
-    }
-    [Test] public void Trial0493 () {
-        PerlTrials.trials [493].Execute ();
-    }
-    [Test] public void Trial0494 () {
-        PerlTrials.trials [494].Execute ();
-    }
-    [Test] public void Trial0495 () {
-        PerlTrials.trials [495].Execute ();
-    }
-    [Test] public void Trial0496 () {
-        PerlTrials.trials [496].Execute ();
-    }
-    [Test] public void Trial0497 () {
-        PerlTrials.trials [497].Execute ();
-    }
-    [Test] public void Trial0498 () {
-        PerlTrials.trials [498].Execute ();
-    }
-    [Test] public void Trial0499 () {
-        PerlTrials.trials [499].Execute ();
-    }
-    [Test] public void Trial0500 () {
-        PerlTrials.trials [500].Execute ();
-    }
-    [Test] public void Trial0501 () {
-        PerlTrials.trials [501].Execute ();
-    }
-    [Test] public void Trial0502 () {
-        PerlTrials.trials [502].Execute ();
-    }
-    [Test] public void Trial0503 () {
-        PerlTrials.trials [503].Execute ();
-    }
-    [Test] public void Trial0504 () {
-        PerlTrials.trials [504].Execute ();
-    }
-    [Test] public void Trial0505 () {
-        PerlTrials.trials [505].Execute ();
-    }
-    [Test] public void Trial0506 () {
-        PerlTrials.trials [506].Execute ();
-    }
-    [Test] public void Trial0507 () {
-        PerlTrials.trials [507].Execute ();
-    }
-    [Test] public void Trial0508 () {
-        PerlTrials.trials [508].Execute ();
-    }
-    [Test] public void Trial0509 () {
-        PerlTrials.trials [509].Execute ();
-    }
-    [Test] public void Trial0510 () {
-        PerlTrials.trials [510].Execute ();
-    }
-    [Test] public void Trial0511 () {
-        PerlTrials.trials [511].Execute ();
-    }
-    [Test] public void Trial0512 () {
-        PerlTrials.trials [512].Execute ();
-    }
-    [Test] public void Trial0513 () {
-        PerlTrials.trials [513].Execute ();
-    }
-    [Test] public void Trial0514 () {
-        PerlTrials.trials [514].Execute ();
-    }
-    [Test] public void Trial0515 () {
-        PerlTrials.trials [515].Execute ();
-    }
-    [Test] public void Trial0516 () {
-        PerlTrials.trials [516].Execute ();
-    }
-    [Test] public void Trial0517 () {
-        PerlTrials.trials [517].Execute ();
-    }
-    [Test] public void Trial0518 () {
-        PerlTrials.trials [518].Execute ();
-    }
-    [Test] public void Trial0519 () {
-        PerlTrials.trials [519].Execute ();
-    }
-    [Test] public void Trial0520 () {
-        PerlTrials.trials [520].Execute ();
-    }
-    [Test] public void Trial0521 () {
-        PerlTrials.trials [521].Execute ();
-    }
-    [Test] public void Trial0522 () {
-        PerlTrials.trials [522].Execute ();
-    }
-    [Test] public void Trial0523 () {
-        PerlTrials.trials [523].Execute ();
-    }
-    [Test] public void Trial0524 () {
-        PerlTrials.trials [524].Execute ();
-    }
-    [Test] public void Trial0525 () {
-        PerlTrials.trials [525].Execute ();
-    }
-    [Test] public void Trial0526 () {
-        PerlTrials.trials [526].Execute ();
-    }
-    [Test] public void Trial0527 () {
-        PerlTrials.trials [527].Execute ();
-    }
-    [Test] public void Trial0528 () {
-        PerlTrials.trials [528].Execute ();
-    }
-    [Test] public void Trial0529 () {
-        PerlTrials.trials [529].Execute ();
-    }
-    [Test] public void Trial0530 () {
-        PerlTrials.trials [530].Execute ();
-    }
-    [Test] public void Trial0531 () {
-        PerlTrials.trials [531].Execute ();
-    }
-    [Test] public void Trial0532 () {
-        PerlTrials.trials [532].Execute ();
-    }
-    [Test] public void Trial0533 () {
-        PerlTrials.trials [533].Execute ();
-    }
-    [Test] public void Trial0534 () {
-        PerlTrials.trials [534].Execute ();
-    }
-    [Test] public void Trial0535 () {
-        PerlTrials.trials [535].Execute ();
-    }
-    [Test] public void Trial0536 () {
-        PerlTrials.trials [536].Execute ();
-    }
-    [Test] public void Trial0537 () {
-        PerlTrials.trials [537].Execute ();
-    }
-    [Test] public void Trial0538 () {
-        PerlTrials.trials [538].Execute ();
-    }
-    [Test] public void Trial0539 () {
-        PerlTrials.trials [539].Execute ();
-    }
-    [Test] public void Trial0540 () {
-        PerlTrials.trials [540].Execute ();
-    }
-    [Test] public void Trial0541 () {
-        PerlTrials.trials [541].Execute ();
-    }
-    [Test] public void Trial0542 () {
-        PerlTrials.trials [542].Execute ();
-    }
-    [Test] public void Trial0543 () {
-        PerlTrials.trials [543].Execute ();
-    }
-    [Test] public void Trial0544 () {
-        PerlTrials.trials [544].Execute ();
-    }
-    [Test] public void Trial0545 () {
-        PerlTrials.trials [545].Execute ();
-    }
-    [Test] public void Trial0546 () {
-        PerlTrials.trials [546].Execute ();
-    }
-    [Test] public void Trial0547 () {
-        PerlTrials.trials [547].Execute ();
-    }
-    [Test] public void Trial0548 () {
-        PerlTrials.trials [548].Execute ();
-    }
-    [Test] public void Trial0549 () {
-        PerlTrials.trials [549].Execute ();
-    }
-    [Test] public void Trial0550 () {
-        PerlTrials.trials [550].Execute ();
-    }
-    [Test] public void Trial0551 () {
-        PerlTrials.trials [551].Execute ();
-    }
-    [Test] public void Trial0552 () {
-        PerlTrials.trials [552].Execute ();
-    }
-    [Test] public void Trial0553 () {
-        PerlTrials.trials [553].Execute ();
-    }
-    [Test] public void Trial0554 () {
-        PerlTrials.trials [554].Execute ();
-    }
-    [Test] public void Trial0555 () {
-        PerlTrials.trials [555].Execute ();
-    }
-    [Test] public void Trial0556 () {
-        PerlTrials.trials [556].Execute ();
-    }
-    [Test] public void Trial0557 () {
-        PerlTrials.trials [557].Execute ();
-    }
-    [Test] public void Trial0558 () {
-        PerlTrials.trials [558].Execute ();
-    }
-    [Test] public void Trial0559 () {
-        PerlTrials.trials [559].Execute ();
-    }
-    [Test] public void Trial0560 () {
-        PerlTrials.trials [560].Execute ();
-    }
-    [Test] public void Trial0561 () {
-        PerlTrials.trials [561].Execute ();
-    }
-    [Test] public void Trial0562 () {
-        PerlTrials.trials [562].Execute ();
-    }
-    [Test] public void Trial0563 () {
-        PerlTrials.trials [563].Execute ();
-    }
-    [Test] public void Trial0564 () {
-        PerlTrials.trials [564].Execute ();
-    }
-    [Test] public void Trial0565 () {
-        PerlTrials.trials [565].Execute ();
-    }
-    [Test] public void Trial0566 () {
-        PerlTrials.trials [566].Execute ();
-    }
-    [Test] public void Trial0567 () {
-        PerlTrials.trials [567].Execute ();
-    }
-    [Test] public void Trial0568 () {
-        PerlTrials.trials [568].Execute ();
-    }
-    [Test] public void Trial0569 () {
-        PerlTrials.trials [569].Execute ();
-    }
-    [Test] public void Trial0570 () {
-        PerlTrials.trials [570].Execute ();
-    }
-    [Test] public void Trial0571 () {
-        PerlTrials.trials [571].Execute ();
-    }
-    [Test] public void Trial0572 () {
-        PerlTrials.trials [572].Execute ();
-    }
-    [Test] public void Trial0573 () {
-        PerlTrials.trials [573].Execute ();
-    }
-    [Test] public void Trial0574 () {
-        PerlTrials.trials [574].Execute ();
-    }
-    [Test] public void Trial0575 () {
-        PerlTrials.trials [575].Execute ();
-    }
-    [Test] public void Trial0576 () {
-        PerlTrials.trials [576].Execute ();
-    }
-    [Test] public void Trial0577 () {
-        PerlTrials.trials [577].Execute ();
-    }
-    [Test] public void Trial0578 () {
-        PerlTrials.trials [578].Execute ();
-    }
-    [Test] public void Trial0579 () {
-        PerlTrials.trials [579].Execute ();
-    }
-    [Test] public void Trial0580 () {
-        PerlTrials.trials [580].Execute ();
-    }
-    [Test] public void Trial0581 () {
-        PerlTrials.trials [581].Execute ();
-    }
-    [Test] public void Trial0582 () {
-        PerlTrials.trials [582].Execute ();
-    }
-    [Test] public void Trial0583 () {
-        PerlTrials.trials [583].Execute ();
-    }
-    [Test] public void Trial0584 () {
-        PerlTrials.trials [584].Execute ();
-    }
-    [Test] public void Trial0585 () {
-        PerlTrials.trials [585].Execute ();
-    }
-    [Test] public void Trial0586 () {
-        PerlTrials.trials [586].Execute ();
-    }
-    [Test] public void Trial0587 () {
-        PerlTrials.trials [587].Execute ();
-    }
-    [Test] public void Trial0588 () {
-        PerlTrials.trials [588].Execute ();
-    }
-    [Test] public void Trial0589 () {
-        PerlTrials.trials [589].Execute ();
-    }
-    [Test] public void Trial0590 () {
-        PerlTrials.trials [590].Execute ();
-    }
-    [Test] public void Trial0591 () {
-        PerlTrials.trials [591].Execute ();
-    }
-    [Test] public void Trial0592 () {
-        PerlTrials.trials [592].Execute ();
-    }
-    [Test] public void Trial0593 () {
-        PerlTrials.trials [593].Execute ();
-    }
-    [Test] public void Trial0594 () {
-        PerlTrials.trials [594].Execute ();
-    }
-    [Test] public void Trial0595 () {
-        PerlTrials.trials [595].Execute ();
-    }
-    [Test] public void Trial0596 () {
-        PerlTrials.trials [596].Execute ();
-    }
-    [Test] public void Trial0597 () {
-        PerlTrials.trials [597].Execute ();
-    }
-    [Test] public void Trial0598 () {
-        PerlTrials.trials [598].Execute ();
-    }
-    [Test] public void Trial0599 () {
-        PerlTrials.trials [599].Execute ();
-    }
-    [Test] public void Trial0600 () {
-        PerlTrials.trials [600].Execute ();
-    }
-    [Test] public void Trial0601 () {
-        PerlTrials.trials [601].Execute ();
-    }
-    [Test] public void Trial0602 () {
-        PerlTrials.trials [602].Execute ();
-    }
-    [Test] public void Trial0603 () {
-        PerlTrials.trials [603].Execute ();
-    }
-    [Test] public void Trial0604 () {
-        PerlTrials.trials [604].Execute ();
-    }
-    [Test] public void Trial0605 () {
-        PerlTrials.trials [605].Execute ();
-    }
-    [Test] public void Trial0606 () {
-        PerlTrials.trials [606].Execute ();
-    }
-    [Test] public void Trial0607 () {
-        PerlTrials.trials [607].Execute ();
-    }
-    [Test] public void Trial0608 () {
-        PerlTrials.trials [608].Execute ();
-    }
-    [Test] public void Trial0609 () {
-        PerlTrials.trials [609].Execute ();
-    }
-    [Test] public void Trial0610 () {
-        PerlTrials.trials [610].Execute ();
-    }
-    [Test] public void Trial0611 () {
-        PerlTrials.trials [611].Execute ();
-    }
-    [Test] public void Trial0612 () {
-        PerlTrials.trials [612].Execute ();
-    }
-    [Test] public void Trial0613 () {
-        PerlTrials.trials [613].Execute ();
-    }
-    [Test] public void Trial0614 () {
-        PerlTrials.trials [614].Execute ();
-    }
-    [Test] public void Trial0615 () {
-        PerlTrials.trials [615].Execute ();
-    }
-    [Test] public void Trial0616 () {
-        PerlTrials.trials [616].Execute ();
-    }
-    [Test] public void Trial0617 () {
-        PerlTrials.trials [617].Execute ();
-    }
-    [Test] public void Trial0618 () {
-        PerlTrials.trials [618].Execute ();
-    }
-    [Test] public void Trial0619 () {
-        PerlTrials.trials [619].Execute ();
-    }
-    [Test] public void Trial0620 () {
-        PerlTrials.trials [620].Execute ();
-    }
-    [Test] public void Trial0621 () {
-        PerlTrials.trials [621].Execute ();
-    }
-    [Test] public void Trial0622 () {
-        PerlTrials.trials [622].Execute ();
-    }
-    [Test] public void Trial0623 () {
-        PerlTrials.trials [623].Execute ();
-    }
-    [Test] public void Trial0624 () {
-        PerlTrials.trials [624].Execute ();
-    }
-    [Test] public void Trial0625 () {
-        PerlTrials.trials [625].Execute ();
-    }
-    [Test] public void Trial0626 () {
-        PerlTrials.trials [626].Execute ();
-    }
-    [Test] public void Trial0627 () {
-        PerlTrials.trials [627].Execute ();
-    }
-    [Test] public void Trial0628 () {
-        PerlTrials.trials [628].Execute ();
-    }
-    [Test] public void Trial0629 () {
-        PerlTrials.trials [629].Execute ();
-    }
-    [Test] public void Trial0630 () {
-        PerlTrials.trials [630].Execute ();
-    }
-    [Test] public void Trial0631 () {
-        PerlTrials.trials [631].Execute ();
-    }
-    [Test] public void Trial0632 () {
-        PerlTrials.trials [632].Execute ();
-    }
-    [Test] public void Trial0633 () {
-        PerlTrials.trials [633].Execute ();
-    }
-    [Test] public void Trial0634 () {
-        PerlTrials.trials [634].Execute ();
-    }
-    [Test] public void Trial0635 () {
-        PerlTrials.trials [635].Execute ();
-    }
-    [Test] public void Trial0636 () {
-        PerlTrials.trials [636].Execute ();
-    }
-    [Test] public void Trial0637 () {
-        PerlTrials.trials [637].Execute ();
-    }
-    [Test] public void Trial0638 () {
-        PerlTrials.trials [638].Execute ();
-    }
-    [Test] public void Trial0639 () {
-        PerlTrials.trials [639].Execute ();
-    }
-    [Test] public void Trial0640 () {
-        PerlTrials.trials [640].Execute ();
-    }
-    [Test] public void Trial0641 () {
-        PerlTrials.trials [641].Execute ();
-    }
-    [Test] public void Trial0642 () {
-        PerlTrials.trials [642].Execute ();
-    }
-    [Test] public void Trial0643 () {
-        PerlTrials.trials [643].Execute ();
-    }
-    [Test] public void Trial0644 () {
-        PerlTrials.trials [644].Execute ();
-    }
-    [Test] public void Trial0645 () {
-        PerlTrials.trials [645].Execute ();
-    }
-    [Test] public void Trial0646 () {
-        PerlTrials.trials [646].Execute ();
-    }
-    [Test] public void Trial0647 () {
-        PerlTrials.trials [647].Execute ();
-    }
-    [Test] public void Trial0648 () {
-        PerlTrials.trials [648].Execute ();
-    }
-    [Test] public void Trial0649 () {
-        PerlTrials.trials [649].Execute ();
-    }
-    [Test] public void Trial0650 () {
-        PerlTrials.trials [650].Execute ();
-    }
-    [Test] public void Trial0651 () {
-        PerlTrials.trials [651].Execute ();
-    }
-    [Test] public void Trial0652 () {
-        PerlTrials.trials [652].Execute ();
-    }
-    [Test] public void Trial0653 () {
-        PerlTrials.trials [653].Execute ();
-    }
-    [Test] public void Trial0654 () {
-        PerlTrials.trials [654].Execute ();
-    }
-    [Test] public void Trial0655 () {
-        PerlTrials.trials [655].Execute ();
-    }
-    [Test] public void Trial0656 () {
-        PerlTrials.trials [656].Execute ();
-    }
-    [Test] public void Trial0657 () {
-        PerlTrials.trials [657].Execute ();
-    }
-    [Test] public void Trial0658 () {
-        PerlTrials.trials [658].Execute ();
-    }
-    [Test] public void Trial0659 () {
-        PerlTrials.trials [659].Execute ();
-    }
-    [Test] public void Trial0660 () {
-        PerlTrials.trials [660].Execute ();
-    }
-    [Test] public void Trial0661 () {
-        PerlTrials.trials [661].Execute ();
-    }
-    [Test] public void Trial0662 () {
-        PerlTrials.trials [662].Execute ();
-    }
-    [Test] public void Trial0663 () {
-        PerlTrials.trials [663].Execute ();
-    }
-    [Test] public void Trial0664 () {
-        PerlTrials.trials [664].Execute ();
-    }
-    [Test] public void Trial0665 () {
-        PerlTrials.trials [665].Execute ();
-    }
-    [Test] public void Trial0666 () {
-        PerlTrials.trials [666].Execute ();
-    }
-    [Test] public void Trial0667 () {
-        PerlTrials.trials [667].Execute ();
-    }
-    [Test] public void Trial0668 () {
-        PerlTrials.trials [668].Execute ();
-    }
-    [Test] public void Trial0669 () {
-        PerlTrials.trials [669].Execute ();
-    }
-    [Test] public void Trial0670 () {
-        PerlTrials.trials [670].Execute ();
-    }
-    [Test] public void Trial0671 () {
-        PerlTrials.trials [671].Execute ();
-    }
-    [Test] public void Trial0672 () {
-        PerlTrials.trials [672].Execute ();
-    }
-    [Test] public void Trial0673 () {
-        PerlTrials.trials [673].Execute ();
-    }
-    [Test] public void Trial0674 () {
-        PerlTrials.trials [674].Execute ();
-    }
-    [Test] public void Trial0675 () {
-        PerlTrials.trials [675].Execute ();
-    }
-    [Test] public void Trial0676 () {
-        PerlTrials.trials [676].Execute ();
-    }
-    [Test] public void Trial0677 () {
-        PerlTrials.trials [677].Execute ();
-    }
-    [Test] public void Trial0678 () {
-        PerlTrials.trials [678].Execute ();
-    }
-    [Test] public void Trial0679 () {
-        PerlTrials.trials [679].Execute ();
-    }
-    [Test] public void Trial0680 () {
-        PerlTrials.trials [680].Execute ();
-    }
-    [Test] public void Trial0681 () {
-        PerlTrials.trials [681].Execute ();
-    }
-    [Test] public void Trial0682 () {
-        PerlTrials.trials [682].Execute ();
-    }
-    [Test] public void Trial0683 () {
-        PerlTrials.trials [683].Execute ();
-    }
-    [Test] public void Trial0684 () {
-        PerlTrials.trials [684].Execute ();
-    }
-    [Test] public void Trial0685 () {
-        PerlTrials.trials [685].Execute ();
-    }
-    [Test] public void Trial0686 () {
-        PerlTrials.trials [686].Execute ();
-    }
-    [Test] public void Trial0687 () {
-        PerlTrials.trials [687].Execute ();
-    }
-    [Test] public void Trial0688 () {
-        PerlTrials.trials [688].Execute ();
-    }
-    [Test] public void Trial0689 () {
-        PerlTrials.trials [689].Execute ();
-    }
-    [Test] public void Trial0690 () {
-        PerlTrials.trials [690].Execute ();
-    }
-    [Test] public void Trial0691 () {
-        PerlTrials.trials [691].Execute ();
-    }
-    [Test] public void Trial0692 () {
-        PerlTrials.trials [692].Execute ();
-    }
-    [Test] public void Trial0693 () {
-        PerlTrials.trials [693].Execute ();
-    }
-    [Test] public void Trial0694 () {
-        PerlTrials.trials [694].Execute ();
-    }
-    [Test] public void Trial0695 () {
-        PerlTrials.trials [695].Execute ();
-    }
-    [Test] public void Trial0696 () {
-        PerlTrials.trials [696].Execute ();
-    }
-    [Test] public void Trial0697 () {
-        PerlTrials.trials [697].Execute ();
-    }
-    [Test] public void Trial0698 () {
-        PerlTrials.trials [698].Execute ();
-    }
-    [Test] public void Trial0699 () {
-        PerlTrials.trials [699].Execute ();
-    }
-    [Test] public void Trial0700 () {
-        PerlTrials.trials [700].Execute ();
-    }
-    [Test] public void Trial0701 () {
-        PerlTrials.trials [701].Execute ();
-    }
-    [Test] public void Trial0702 () {
-        PerlTrials.trials [702].Execute ();
-    }
-    [Test] public void Trial0703 () {
-        PerlTrials.trials [703].Execute ();
-    }
-    [Test] public void Trial0704 () {
-        PerlTrials.trials [704].Execute ();
-    }
-    [Test] public void Trial0705 () {
-        PerlTrials.trials [705].Execute ();
-    }
-    [Test] public void Trial0706 () {
-        PerlTrials.trials [706].Execute ();
-    }
-    [Test] public void Trial0707 () {
-        PerlTrials.trials [707].Execute ();
-    }
-    [Test] public void Trial0708 () {
-        PerlTrials.trials [708].Execute ();
-    }
-    [Test] public void Trial0709 () {
-        PerlTrials.trials [709].Execute ();
-    }
-    [Test] public void Trial0710 () {
-        PerlTrials.trials [710].Execute ();
-    }
-    [Test] public void Trial0711 () {
-        PerlTrials.trials [711].Execute ();
-    }
-    [Test] public void Trial0712 () {
-        PerlTrials.trials [712].Execute ();
-    }
-    [Test] public void Trial0713 () {
-        PerlTrials.trials [713].Execute ();
-    }
-    [Test] public void Trial0714 () {
-        PerlTrials.trials [714].Execute ();
-    }
-    [Test] public void Trial0715 () {
-        PerlTrials.trials [715].Execute ();
-    }
-    [Test] public void Trial0716 () {
-        PerlTrials.trials [716].Execute ();
-    }
-    [Test] public void Trial0717 () {
-        PerlTrials.trials [717].Execute ();
-    }
-    [Test] public void Trial0718 () {
-        PerlTrials.trials [718].Execute ();
-    }
-    [Test] public void Trial0719 () {
-        PerlTrials.trials [719].Execute ();
-    }
-    [Test] public void Trial0720 () {
-        PerlTrials.trials [720].Execute ();
-    }
-    [Test] public void Trial0721 () {
-        PerlTrials.trials [721].Execute ();
-    }
-    [Test] public void Trial0722 () {
-        PerlTrials.trials [722].Execute ();
-    }
-    [Test] public void Trial0723 () {
-        PerlTrials.trials [723].Execute ();
-    }
-    [Test] public void Trial0724 () {
-        PerlTrials.trials [724].Execute ();
-    }
-    [Test] public void Trial0725 () {
-        PerlTrials.trials [725].Execute ();
-    }
-    [Test] public void Trial0726 () {
-        PerlTrials.trials [726].Execute ();
-    }
-    [Test] public void Trial0727 () {
-        PerlTrials.trials [727].Execute ();
-    }
-    [Test] public void Trial0728 () {
-        PerlTrials.trials [728].Execute ();
-    }
-    [Test] public void Trial0729 () {
-        PerlTrials.trials [729].Execute ();
-    }
-    [Test] public void Trial0730 () {
-        PerlTrials.trials [730].Execute ();
-    }
-    [Test] public void Trial0731 () {
-        PerlTrials.trials [731].Execute ();
-    }
-    [Test] public void Trial0732 () {
-        PerlTrials.trials [732].Execute ();
-    }
-    [Test] public void Trial0733 () {
-        PerlTrials.trials [733].Execute ();
-    }
-    [Test] public void Trial0734 () {
-        PerlTrials.trials [734].Execute ();
-    }
-    [Test] public void Trial0735 () {
-        PerlTrials.trials [735].Execute ();
-    }
-    [Test] public void Trial0736 () {
-        PerlTrials.trials [736].Execute ();
-    }
-    [Test] public void Trial0737 () {
-        PerlTrials.trials [737].Execute ();
-    }
-    [Test] public void Trial0738 () {
-        PerlTrials.trials [738].Execute ();
-    }
-    [Test] public void Trial0739 () {
-        PerlTrials.trials [739].Execute ();
-    }
-    [Test] public void Trial0740 () {
-        PerlTrials.trials [740].Execute ();
-    }
-    [Test] public void Trial0741 () {
-        PerlTrials.trials [741].Execute ();
-    }
-    [Test] public void Trial0742 () {
-        PerlTrials.trials [742].Execute ();
-    }
-    [Test] public void Trial0743 () {
-        PerlTrials.trials [743].Execute ();
-    }
-    [Test] public void Trial0744 () {
-        PerlTrials.trials [744].Execute ();
-    }
-    [Test] public void Trial0745 () {
-        PerlTrials.trials [745].Execute ();
-    }
-    [Test] public void Trial0746 () {
-        PerlTrials.trials [746].Execute ();
-    }
-    [Test] public void Trial0747 () {
-        PerlTrials.trials [747].Execute ();
-    }
-    [Test] public void Trial0748 () {
-        PerlTrials.trials [748].Execute ();
-    }
-    [Test] public void Trial0749 () {
-        PerlTrials.trials [749].Execute ();
-    }
-    [Test] public void Trial0750 () {
-        PerlTrials.trials [750].Execute ();
-    }
-    [Test] public void Trial0751 () {
-        PerlTrials.trials [751].Execute ();
-    }
-    [Test] public void Trial0752 () {
-        PerlTrials.trials [752].Execute ();
-    }
-    [Test] public void Trial0753 () {
-        PerlTrials.trials [753].Execute ();
-    }
-    [Test] public void Trial0754 () {
-        PerlTrials.trials [754].Execute ();
-    }
-    [Test] public void Trial0755 () {
-        PerlTrials.trials [755].Execute ();
-    }
-    [Test] public void Trial0756 () {
-        PerlTrials.trials [756].Execute ();
-    }
-    [Test] public void Trial0757 () {
-        PerlTrials.trials [757].Execute ();
-    }
-    [Test] public void Trial0758 () {
-        PerlTrials.trials [758].Execute ();
-    }
-    [Test] public void Trial0759 () {
-        PerlTrials.trials [759].Execute ();
-    }
-    [Test] public void Trial0760 () {
-        PerlTrials.trials [760].Execute ();
-    }
-    [Test] public void Trial0761 () {
-        PerlTrials.trials [761].Execute ();
-    }
-    [Test] public void Trial0762 () {
-        PerlTrials.trials [762].Execute ();
-    }
-    [Test] public void Trial0763 () {
-        PerlTrials.trials [763].Execute ();
-    }
-    [Test] public void Trial0764 () {
-        PerlTrials.trials [764].Execute ();
-    }
-    [Test] public void Trial0765 () {
-        PerlTrials.trials [765].Execute ();
-    }
-    [Test] public void Trial0766 () {
-        PerlTrials.trials [766].Execute ();
-    }
-    [Test] public void Trial0767 () {
-        PerlTrials.trials [767].Execute ();
-    }
-    [Test] public void Trial0768 () {
-        PerlTrials.trials [768].Execute ();
-    }
-    [Test] public void Trial0769 () {
-        PerlTrials.trials [769].Execute ();
-    }
-    [Test] public void Trial0770 () {
-        PerlTrials.trials [770].Execute ();
-    }
-    [Test] public void Trial0771 () {
-        PerlTrials.trials [771].Execute ();
-    }
-    [Test] public void Trial0772 () {
-        PerlTrials.trials [772].Execute ();
-    }
-    [Test] public void Trial0773 () {
-        PerlTrials.trials [773].Execute ();
-    }
-    [Test] public void Trial0774 () {
-        PerlTrials.trials [774].Execute ();
-    }
-    [Test] public void Trial0775 () {
-        PerlTrials.trials [775].Execute ();
-    }
-    [Test] public void Trial0776 () {
-        PerlTrials.trials [776].Execute ();
-    }
-    [Test] public void Trial0777 () {
-        PerlTrials.trials [777].Execute ();
-    }
-    [Test] public void Trial0778 () {
-        PerlTrials.trials [778].Execute ();
-    }
-    [Test] public void Trial0779 () {
-        PerlTrials.trials [779].Execute ();
-    }
-    [Test] public void Trial0780 () {
-        PerlTrials.trials [780].Execute ();
-    }
-    [Test] public void Trial0781 () {
-        PerlTrials.trials [781].Execute ();
-    }
-    [Test] public void Trial0782 () {
-        PerlTrials.trials [782].Execute ();
-    }
-    [Test] public void Trial0783 () {
-        PerlTrials.trials [783].Execute ();
-    }
-    [Test] public void Trial0784 () {
-        PerlTrials.trials [784].Execute ();
-    }
-    [Test] public void Trial0785 () {
-        PerlTrials.trials [785].Execute ();
-    }
-    [Test] public void Trial0786 () {
-        PerlTrials.trials [786].Execute ();
-    }
-    [Test] public void Trial0787 () {
-        PerlTrials.trials [787].Execute ();
-    }
-    [Test] public void Trial0788 () {
-        PerlTrials.trials [788].Execute ();
-    }
-    [Test] public void Trial0789 () {
-        PerlTrials.trials [789].Execute ();
-    }
-    [Test] public void Trial0790 () {
-        PerlTrials.trials [790].Execute ();
-    }
-    [Test] public void Trial0791 () {
-        PerlTrials.trials [791].Execute ();
-    }
-    [Test] public void Trial0792 () {
-        PerlTrials.trials [792].Execute ();
-    }
-    [Test] public void Trial0793 () {
-        PerlTrials.trials [793].Execute ();
-    }
-    [Test] public void Trial0794 () {
-        PerlTrials.trials [794].Execute ();
-    }
-    [Test] public void Trial0795 () {
-        PerlTrials.trials [795].Execute ();
-    }
-    [Test] public void Trial0796 () {
-        PerlTrials.trials [796].Execute ();
-    }
-    [Test] public void Trial0797 () {
-        PerlTrials.trials [797].Execute ();
-    }
-    [Test] public void Trial0798 () {
-        PerlTrials.trials [798].Execute ();
-    }
-    [Test] public void Trial0799 () {
-        PerlTrials.trials [799].Execute ();
-    }
-    [Test] public void Trial0800 () {
-        PerlTrials.trials [800].Execute ();
-    }
-    [Test] public void Trial0801 () {
-        PerlTrials.trials [801].Execute ();
-    }
-    [Test] public void Trial0802 () {
-        PerlTrials.trials [802].Execute ();
-    }
-    [Test] public void Trial0803 () {
-        PerlTrials.trials [803].Execute ();
-    }
-    [Test] public void Trial0804 () {
-        PerlTrials.trials [804].Execute ();
-    }
-    [Test] public void Trial0805 () {
-        PerlTrials.trials [805].Execute ();
-    }
-    [Test] public void Trial0806 () {
-        PerlTrials.trials [806].Execute ();
-    }
-    [Test] public void Trial0807 () {
-        PerlTrials.trials [807].Execute ();
-    }
-    [Test] public void Trial0808 () {
-        PerlTrials.trials [808].Execute ();
-    }
-    [Test] public void Trial0809 () {
-        PerlTrials.trials [809].Execute ();
-    }
-    [Test] public void Trial0810 () {
-        PerlTrials.trials [810].Execute ();
-    }
-    [Test] public void Trial0811 () {
-        PerlTrials.trials [811].Execute ();
-    }
-    [Test] public void Trial0812 () {
-        PerlTrials.trials [812].Execute ();
-    }
-    [Test] public void Trial0813 () {
-        PerlTrials.trials [813].Execute ();
-    }
-    [Test] public void Trial0814 () {
-        PerlTrials.trials [814].Execute ();
-    }
-    [Test] public void Trial0815 () {
-        PerlTrials.trials [815].Execute ();
-    }
-    [Test] public void Trial0816 () {
-        PerlTrials.trials [816].Execute ();
-    }
-    [Test] public void Trial0817 () {
-        PerlTrials.trials [817].Execute ();
-    }
-    [Test] public void Trial0818 () {
-        PerlTrials.trials [818].Execute ();
-    }
-    [Test] public void Trial0819 () {
-        PerlTrials.trials [819].Execute ();
-    }
-    [Test] public void Trial0820 () {
-        PerlTrials.trials [820].Execute ();
-    }
-    [Test] public void Trial0821 () {
-        PerlTrials.trials [821].Execute ();
-    }
-    [Test] public void Trial0822 () {
-        PerlTrials.trials [822].Execute ();
-    }
-    [Test] public void Trial0823 () {
-        PerlTrials.trials [823].Execute ();
-    }
-    [Test] public void Trial0824 () {
-        PerlTrials.trials [824].Execute ();
-    }
-    [Test] public void Trial0825 () {
-        PerlTrials.trials [825].Execute ();
-    }
-    [Test] public void Trial0826 () {
-        PerlTrials.trials [826].Execute ();
-    }
-    [Test] public void Trial0827 () {
-        PerlTrials.trials [827].Execute ();
-    }
-    [Test] public void Trial0828 () {
-        PerlTrials.trials [828].Execute ();
-    }
-    [Test] public void Trial0829 () {
-        PerlTrials.trials [829].Execute ();
-    }
-    [Test] public void Trial0830 () {
-        PerlTrials.trials [830].Execute ();
-    }
-    [Test] public void Trial0831 () {
-        PerlTrials.trials [831].Execute ();
-    }
-    [Test] public void Trial0832 () {
-        PerlTrials.trials [832].Execute ();
-    }
-    [Test] public void Trial0833 () {
-        PerlTrials.trials [833].Execute ();
-    }
-    [Test] public void Trial0834 () {
-        PerlTrials.trials [834].Execute ();
-    }
-    [Test] public void Trial0835 () {
-        PerlTrials.trials [835].Execute ();
-    }
-    [Test] public void Trial0836 () {
-        PerlTrials.trials [836].Execute ();
-    }
-    [Test] public void Trial0837 () {
-        PerlTrials.trials [837].Execute ();
-    }
-    [Test] public void Trial0838 () {
-        PerlTrials.trials [838].Execute ();
-    }
-    [Test] public void Trial0839 () {
-        PerlTrials.trials [839].Execute ();
-    }
-    [Test] public void Trial0840 () {
-        PerlTrials.trials [840].Execute ();
-    }
-    [Test] public void Trial0841 () {
-        PerlTrials.trials [841].Execute ();
-    }
-    [Test] public void Trial0842 () {
-        PerlTrials.trials [842].Execute ();
-    }
-    [Test] public void Trial0843 () {
-        PerlTrials.trials [843].Execute ();
-    }
-    [Test] public void Trial0844 () {
-        PerlTrials.trials [844].Execute ();
-    }
-    [Test] public void Trial0845 () {
-        PerlTrials.trials [845].Execute ();
-    }
-    [Test] public void Trial0846 () {
-        PerlTrials.trials [846].Execute ();
-    }
-    [Test] public void Trial0847 () {
-        PerlTrials.trials [847].Execute ();
-    }
-    [Test] public void Trial0848 () {
-        PerlTrials.trials [848].Execute ();
-    }
-    [Test] public void Trial0849 () {
-        PerlTrials.trials [849].Execute ();
-    }
-    [Test] public void Trial0850 () {
-        PerlTrials.trials [850].Execute ();
-    }
-    [Test] public void Trial0851 () {
-        PerlTrials.trials [851].Execute ();
-    }
-    [Test] public void Trial0852 () {
-        PerlTrials.trials [852].Execute ();
-    }
-    [Test] public void Trial0853 () {
-        PerlTrials.trials [853].Execute ();
-    }
-    [Test] public void Trial0854 () {
-        PerlTrials.trials [854].Execute ();
-    }
-    [Test] public void Trial0855 () {
-        PerlTrials.trials [855].Execute ();
-    }
-    [Test] public void Trial0856 () {
-        PerlTrials.trials [856].Execute ();
-    }
-    [Test] public void Trial0857 () {
-        PerlTrials.trials [857].Execute ();
-    }
-    [Test] public void Trial0858 () {
-        PerlTrials.trials [858].Execute ();
-    }
-    [Test] public void Trial0859 () {
-        PerlTrials.trials [859].Execute ();
-    }
-    [Test] public void Trial0860 () {
-        PerlTrials.trials [860].Execute ();
-    }
-    [Test] public void Trial0861 () {
-        PerlTrials.trials [861].Execute ();
-    }
-    [Test] public void Trial0862 () {
-        PerlTrials.trials [862].Execute ();
-    }
-    [Test] public void Trial0863 () {
-        PerlTrials.trials [863].Execute ();
-    }
-    [Test] public void Trial0864 () {
-        PerlTrials.trials [864].Execute ();
-    }
-    [Test] public void Trial0865 () {
-        PerlTrials.trials [865].Execute ();
-    }
-    [Test] public void Trial0866 () {
-        PerlTrials.trials [866].Execute ();
-    }
-    [Test] public void Trial0867 () {
-        PerlTrials.trials [867].Execute ();
-    }
-    [Test] public void Trial0868 () {
-        PerlTrials.trials [868].Execute ();
-    }
-    [Test] public void Trial0869 () {
-        PerlTrials.trials [869].Execute ();
-    }
-    [Test] public void Trial0870 () {
-        PerlTrials.trials [870].Execute ();
-    }
-    [Test] public void Trial0871 () {
-        PerlTrials.trials [871].Execute ();
-    }
-    [Test] public void Trial0872 () {
-        PerlTrials.trials [872].Execute ();
-    }
-    [Test] public void Trial0873 () {
-        PerlTrials.trials [873].Execute ();
-    }
-    [Test] public void Trial0874 () {
-        PerlTrials.trials [874].Execute ();
-    }
-    [Test] public void Trial0875 () {
-        PerlTrials.trials [875].Execute ();
-    }
-    [Test] public void Trial0876 () {
-        PerlTrials.trials [876].Execute ();
-    }
-    [Test] public void Trial0877 () {
-        PerlTrials.trials [877].Execute ();
-    }
-    [Test] public void Trial0878 () {
-        PerlTrials.trials [878].Execute ();
-    }
-    [Test] public void Trial0879 () {
-        PerlTrials.trials [879].Execute ();
-    }
-    [Test] public void Trial0880 () {
-        PerlTrials.trials [880].Execute ();
-    }
-    [Test] public void Trial0881 () {
-        PerlTrials.trials [881].Execute ();
-    }
-    [Test] public void Trial0882 () {
-        PerlTrials.trials [882].Execute ();
-    }
-    [Test] public void Trial0883 () {
-        PerlTrials.trials [883].Execute ();
-    }
-    [Test] public void Trial0884 () {
-        PerlTrials.trials [884].Execute ();
-    }
-    [Test] public void Trial0885 () {
-        PerlTrials.trials [885].Execute ();
-    }
-    [Test] public void Trial0886 () {
-        PerlTrials.trials [886].Execute ();
-    }
-    [Test] public void Trial0887 () {
-        PerlTrials.trials [887].Execute ();
-    }
-    [Test] public void Trial0888 () {
-        PerlTrials.trials [888].Execute ();
-    }
-    [Test] public void Trial0889 () {
-        PerlTrials.trials [889].Execute ();
-    }
-    [Test] public void Trial0890 () {
-        PerlTrials.trials [890].Execute ();
-    }
-    [Test] public void Trial0891 () {
-        PerlTrials.trials [891].Execute ();
-    }
-    [Test] public void Trial0892 () {
-        PerlTrials.trials [892].Execute ();
-    }
-    [Test] public void Trial0893 () {
-        PerlTrials.trials [893].Execute ();
-    }
-    [Test] public void Trial0894 () {
-        PerlTrials.trials [894].Execute ();
-    }
-    [Test] public void Trial0895 () {
-        PerlTrials.trials [895].Execute ();
-    }
-    [Test] public void Trial0896 () {
-        PerlTrials.trials [896].Execute ();
-    }
-    [Test] public void Trial0897 () {
-        PerlTrials.trials [897].Execute ();
-    }
-    [Test] public void Trial0898 () {
-        PerlTrials.trials [898].Execute ();
-    }
-    [Test] public void Trial0899 () {
-        PerlTrials.trials [899].Execute ();
-    }
-    [Test] public void Trial0900 () {
-        PerlTrials.trials [900].Execute ();
-    }
-    [Test] public void Trial0901 () {
-        PerlTrials.trials [901].Execute ();
-    }
-    [Test] public void Trial0902 () {
-        PerlTrials.trials [902].Execute ();
-    }
-    [Test] public void Trial0903 () {
-        PerlTrials.trials [903].Execute ();
-    }
-    [Test] public void Trial0904 () {
-        PerlTrials.trials [904].Execute ();
-    }
-    [Test] public void Trial0905 () {
-        PerlTrials.trials [905].Execute ();
-    }
-    [Test] public void Trial0906 () {
-        PerlTrials.trials [906].Execute ();
-    }
-    [Test] public void Trial0907 () {
-        PerlTrials.trials [907].Execute ();
-    }
-    [Test] public void Trial0908 () {
-        PerlTrials.trials [908].Execute ();
-    }
-    [Test] public void Trial0909 () {
-        PerlTrials.trials [909].Execute ();
-    }
-    [Test] public void Trial0910 () {
-        PerlTrials.trials [910].Execute ();
-    }
-    [Test] public void Trial0911 () {
-        PerlTrials.trials [911].Execute ();
-    }
-    [Test] public void Trial0912 () {
-        PerlTrials.trials [912].Execute ();
-    }
-    [Test] public void Trial0913 () {
-        PerlTrials.trials [913].Execute ();
-    }
-    [Test] public void Trial0914 () {
-        PerlTrials.trials [914].Execute ();
-    }
-    [Test] public void Trial0915 () {
-        PerlTrials.trials [915].Execute ();
-    }
-    [Test] public void Trial0916 () {
-        PerlTrials.trials [916].Execute ();
-    }
-    [Test] public void Trial0917 () {
-        PerlTrials.trials [917].Execute ();
-    }
-    [Test] public void Trial0918 () {
-        PerlTrials.trials [918].Execute ();
-    }
-    [Test] public void Trial0919 () {
-        PerlTrials.trials [919].Execute ();
-    }
-    [Test] public void Trial0920 () {
-        PerlTrials.trials [920].Execute ();
-    }
-    [Test] public void Trial0921 () {
-        PerlTrials.trials [921].Execute ();
-    }
-    [Test] public void Trial0922 () {
-        PerlTrials.trials [922].Execute ();
-    }
-    [Test] public void Trial0923 () {
-        PerlTrials.trials [923].Execute ();
-    }
-    [Test] public void Trial0924 () {
-        PerlTrials.trials [924].Execute ();
-    }
-    [Test] public void Trial0925 () {
-        PerlTrials.trials [925].Execute ();
-    }
-    [Test] public void Trial0926 () {
-        PerlTrials.trials [926].Execute ();
-    }
-    [Test] public void Trial0927 () {
-        PerlTrials.trials [927].Execute ();
-    }
-    [Test] public void Trial0928 () {
-        PerlTrials.trials [928].Execute ();
-    }
-    [Test] public void Trial0929 () {
-        PerlTrials.trials [929].Execute ();
-    }
-    [Test] public void Trial0930 () {
-        PerlTrials.trials [930].Execute ();
-    }
-    [Test] public void Trial0931 () {
-        PerlTrials.trials [931].Execute ();
-    }
-    [Test] public void Trial0932 () {
-        PerlTrials.trials [932].Execute ();
-    }
-    [Test] public void Trial0933 () {
-        PerlTrials.trials [933].Execute ();
-    }
-    [Test] public void Trial0934 () {
-        PerlTrials.trials [934].Execute ();
-    }
-    [Test] public void Trial0935 () {
-        PerlTrials.trials [935].Execute ();
-    }
-    [Test] public void Trial0936 () {
-        PerlTrials.trials [936].Execute ();
-    }
-    [Test] public void Trial0937 () {
-        PerlTrials.trials [937].Execute ();
-    }
-    [Test] public void Trial0938 () {
-        PerlTrials.trials [938].Execute ();
-    }
-    [Test] public void Trial0939 () {
-        PerlTrials.trials [939].Execute ();
-    }
-    [Test] public void Trial0940 () {
-        PerlTrials.trials [940].Execute ();
-    }
-    [Test] public void Trial0941 () {
-        PerlTrials.trials [941].Execute ();
-    }
-    [Test] public void Trial0942 () {
-        PerlTrials.trials [942].Execute ();
-    }
-    [Test] public void Trial0943 () {
-        PerlTrials.trials [943].Execute ();
-    }
-    [Test] public void Trial0944 () {
-        PerlTrials.trials [944].Execute ();
-    }
-    [Test] public void Trial0945 () {
-        PerlTrials.trials [945].Execute ();
-    }
-    [Test] public void Trial0946 () {
-        PerlTrials.trials [946].Execute ();
-    }
-    [Test] public void Trial0947 () {
-        PerlTrials.trials [947].Execute ();
-    }
-    [Test] public void Trial0948 () {
-        PerlTrials.trials [948].Execute ();
-    }
-    [Test] public void Trial0949 () {
-        PerlTrials.trials [949].Execute ();
-    }
-    [Test] public void Trial0950 () {
-        PerlTrials.trials [950].Execute ();
-    }
-    [Test] public void Trial0951 () {
-        PerlTrials.trials [951].Execute ();
-    }
-    [Test] public void Trial0952 () {
-        PerlTrials.trials [952].Execute ();
-    }
-    [Test] public void Trial0953 () {
-        PerlTrials.trials [953].Execute ();
-    }
-    [Test] public void Trial0954 () {
-        PerlTrials.trials [954].Execute ();
-    }
-    [Test] public void Trial0955 () {
-        PerlTrials.trials [955].Execute ();
-    }
-    [Test] public void Trial0956 () {
-        PerlTrials.trials [956].Execute ();
-    }
-    [Test] public void Trial0957 () {
-        PerlTrials.trials [957].Execute ();
-    }
-    [Test] public void Trial0958 () {
-        PerlTrials.trials [958].Execute ();
-    }
-    [Test] public void Trial0959 () {
-        PerlTrials.trials [959].Execute ();
-    }
-    [Test] public void Trial0960 () {
-        PerlTrials.trials [960].Execute ();
-    }
-    [Test] public void Trial0961 () {
-        PerlTrials.trials [961].Execute ();
-    }
-    [Test] public void Trial0962 () {
-        PerlTrials.trials [962].Execute ();
-    }
-    [Test] public void Trial0963 () {
-        PerlTrials.trials [963].Execute ();
-    }
-    [Test] public void Trial0964 () {
-        PerlTrials.trials [964].Execute ();
-    }
-    [Test] public void Trial0965 () {
-        PerlTrials.trials [965].Execute ();
-    }
-    [Test] public void Trial0966 () {
-        PerlTrials.trials [966].Execute ();
-    }
-    [Test] public void Trial0967 () {
-        PerlTrials.trials [967].Execute ();
-    }
-    [Test] public void Trial0968 () {
-        PerlTrials.trials [968].Execute ();
-    }
-    [Test] public void Trial0969 () {
-        PerlTrials.trials [969].Execute ();
-    }
-    [Test] public void Trial0970 () {
-        PerlTrials.trials [970].Execute ();
-    }
-    [Test] public void Trial0971 () {
-        PerlTrials.trials [971].Execute ();
-    }
-    [Test] public void Trial0972 () {
-        PerlTrials.trials [972].Execute ();
-    }
-    [Test] public void Trial0973 () {
-        PerlTrials.trials [973].Execute ();
-    }
-    [Test] public void Trial0974 () {
-        PerlTrials.trials [974].Execute ();
-    }
-    [Test] public void Trial0975 () {
-        PerlTrials.trials [975].Execute ();
-    }
-    [Test] public void Trial0976 () {
-        PerlTrials.trials [976].Execute ();
-    }
-    [Test] public void Trial0977 () {
-        PerlTrials.trials [977].Execute ();
-    }
-    [Test] public void Trial0978 () {
-        PerlTrials.trials [978].Execute ();
-    }
-    [Test] public void Trial0979 () {
-        PerlTrials.trials [979].Execute ();
-    }
-    [Test] public void Trial0980 () {
-        PerlTrials.trials [980].Execute ();
-    }
-    [Test] public void Trial0981 () {
-        PerlTrials.trials [981].Execute ();
-    }
-    [Test] public void Trial0982 () {
-        PerlTrials.trials [982].Execute ();
-    }
-    [Test] public void Trial0983 () {
-        PerlTrials.trials [983].Execute ();
-    }
-    [Test] public void Trial0984 () {
-        PerlTrials.trials [984].Execute ();
-    }
-    [Test] public void Trial0985 () {
-        PerlTrials.trials [985].Execute ();
-    }
-    [Test] public void Trial0986 () {
-        PerlTrials.trials [986].Execute ();
-    }
-    [Test] public void Trial0987 () {
-        PerlTrials.trials [987].Execute ();
-    }
-    [Test] public void Trial0988 () {
-        PerlTrials.trials [988].Execute ();
-    }
-    [Test] public void Trial0989 () {
-        PerlTrials.trials [989].Execute ();
-    }
-    [Test] public void Trial0990 () {
-        PerlTrials.trials [990].Execute ();
-    }
-    [Test] public void Trial0991 () {
-        PerlTrials.trials [991].Execute ();
-    }
-}
+               // We choose to run the trials in separate tests rather than in a loop, since we want all trials to be run.
+               // A failing assertion in a test aborts the rest of the trials in that test.  So, we put one trial in each test.
+               [Test] public void Trial0000 () { PerlTrials.trials [0].Execute (); }
+               [Test] public void Trial0001 () { PerlTrials.trials [1].Execute (); }
+               [Test] public void Trial0002 () { PerlTrials.trials [2].Execute (); }
+               [Test] public void Trial0003 () { PerlTrials.trials [3].Execute (); }
+               [Test] public void Trial0004 () { PerlTrials.trials [4].Execute (); }
+               [Test] public void Trial0005 () { PerlTrials.trials [5].Execute (); }
+               [Test] public void Trial0006 () { PerlTrials.trials [6].Execute (); }
+               [Test] public void Trial0007 () { PerlTrials.trials [7].Execute (); }
+               [Test] public void Trial0008 () { PerlTrials.trials [8].Execute (); }
+               [Test] public void Trial0009 () { PerlTrials.trials [9].Execute (); }
+               [Test] public void Trial0010 () { PerlTrials.trials [10].Execute (); }
+               [Test] public void Trial0011 () { PerlTrials.trials [11].Execute (); }
+               [Test] public void Trial0012 () { PerlTrials.trials [12].Execute (); }
+               [Test] public void Trial0013 () { PerlTrials.trials [13].Execute (); }
+               [Test] public void Trial0014 () { PerlTrials.trials [14].Execute (); }
+               [Test] public void Trial0015 () { PerlTrials.trials [15].Execute (); }
+               [Test] public void Trial0016 () { PerlTrials.trials [16].Execute (); }
+               [Test] public void Trial0017 () { PerlTrials.trials [17].Execute (); }
+               [Test] public void Trial0018 () { PerlTrials.trials [18].Execute (); }
+               [Test] public void Trial0019 () { PerlTrials.trials [19].Execute (); }
+               [Test] public void Trial0020 () { PerlTrials.trials [20].Execute (); }
+               [Test] public void Trial0021 () { PerlTrials.trials [21].Execute (); }
+               [Test] public void Trial0022 () { PerlTrials.trials [22].Execute (); }
+               [Test] public void Trial0023 () { PerlTrials.trials [23].Execute (); }
+               [Test] public void Trial0024 () { PerlTrials.trials [24].Execute (); }
+               [Test] public void Trial0025 () { PerlTrials.trials [25].Execute (); }
+               [Test] public void Trial0026 () { PerlTrials.trials [26].Execute (); }
+               [Test] public void Trial0027 () { PerlTrials.trials [27].Execute (); }
+               [Test] public void Trial0028 () { PerlTrials.trials [28].Execute (); }
+               [Test] public void Trial0029 () { PerlTrials.trials [29].Execute (); }
+               [Test] public void Trial0030 () { PerlTrials.trials [30].Execute (); }
+               [Test] public void Trial0031 () { PerlTrials.trials [31].Execute (); }
+               [Test] public void Trial0032 () { PerlTrials.trials [32].Execute (); }
+               [Test] public void Trial0033 () { PerlTrials.trials [33].Execute (); }
+               [Test] public void Trial0034 () { PerlTrials.trials [34].Execute (); }
+               [Test] public void Trial0035 () { PerlTrials.trials [35].Execute (); }
+               [Test] public void Trial0036 () { PerlTrials.trials [36].Execute (); }
+               [Test] public void Trial0037 () { PerlTrials.trials [37].Execute (); }
+               [Test] public void Trial0038 () { PerlTrials.trials [38].Execute (); }
+               [Test] public void Trial0039 () { PerlTrials.trials [39].Execute (); }
+               [Test] public void Trial0040 () { PerlTrials.trials [40].Execute (); }
+               [Test] public void Trial0041 () { PerlTrials.trials [41].Execute (); }
+               [Test] public void Trial0042 () { PerlTrials.trials [42].Execute (); }
+               [Test] public void Trial0043 () { PerlTrials.trials [43].Execute (); }
+               [Test] public void Trial0044 () { PerlTrials.trials [44].Execute (); }
+               [Test] public void Trial0045 () { PerlTrials.trials [45].Execute (); }
+               [Test] public void Trial0046 () { PerlTrials.trials [46].Execute (); }
+               [Test] public void Trial0047 () { PerlTrials.trials [47].Execute (); }
+               [Test] public void Trial0048 () { PerlTrials.trials [48].Execute (); }
+               [Test] public void Trial0049 () { PerlTrials.trials [49].Execute (); }
+               [Test] public void Trial0050 () { PerlTrials.trials [50].Execute (); }
+               [Test] public void Trial0051 () { PerlTrials.trials [51].Execute (); }
+               [Test] public void Trial0052 () { PerlTrials.trials [52].Execute (); }
+               [Test] public void Trial0053 () { PerlTrials.trials [53].Execute (); }
+               [Test] public void Trial0054 () { PerlTrials.trials [54].Execute (); }
+               [Test] public void Trial0055 () { PerlTrials.trials [55].Execute (); }
+               [Test] public void Trial0056 () { PerlTrials.trials [56].Execute (); }
+               [Test] public void Trial0057 () { PerlTrials.trials [57].Execute (); }
+               [Test] public void Trial0058 () { PerlTrials.trials [58].Execute (); }
+               [Test] public void Trial0059 () { PerlTrials.trials [59].Execute (); }
+               [Test] public void Trial0060 () { PerlTrials.trials [60].Execute (); }
+               [Test] public void Trial0061 () { PerlTrials.trials [61].Execute (); }
+               [Test] public void Trial0062 () { PerlTrials.trials [62].Execute (); }
+               [Test] public void Trial0063 () { PerlTrials.trials [63].Execute (); }
+               [Test] public void Trial0064 () { PerlTrials.trials [64].Execute (); }
+               [Test] public void Trial0065 () { PerlTrials.trials [65].Execute (); }
+               [Test] public void Trial0066 () { PerlTrials.trials [66].Execute (); }
+               [Test] public void Trial0067 () { PerlTrials.trials [67].Execute (); }
+               [Test] public void Trial0068 () { PerlTrials.trials [68].Execute (); }
+               [Test] public void Trial0069 () { PerlTrials.trials [69].Execute (); }
+               [Test] public void Trial0070 () { PerlTrials.trials [70].Execute (); }
+               [Test] public void Trial0071 () { PerlTrials.trials [71].Execute (); }
+               [Test] public void Trial0072 () { PerlTrials.trials [72].Execute (); }
+               [Test] public void Trial0073 () { PerlTrials.trials [73].Execute (); }
+               [Test] public void Trial0074 () { PerlTrials.trials [74].Execute (); }
+               [Test] public void Trial0075 () { PerlTrials.trials [75].Execute (); }
+               [Test] public void Trial0076 () { PerlTrials.trials [76].Execute (); }
+               [Test] public void Trial0077 () { PerlTrials.trials [77].Execute (); }
+               [Test] public void Trial0078 () { PerlTrials.trials [78].Execute (); }
+               [Test] public void Trial0079 () { PerlTrials.trials [79].Execute (); }
+               [Test] public void Trial0080 () { PerlTrials.trials [80].Execute (); }
+               [Test] public void Trial0081 () { PerlTrials.trials [81].Execute (); }
+               [Test] public void Trial0082 () { PerlTrials.trials [82].Execute (); }
+               [Test] public void Trial0083 () { PerlTrials.trials [83].Execute (); }
+               [Test] public void Trial0084 () { PerlTrials.trials [84].Execute (); }
+               [Test] public void Trial0085 () { PerlTrials.trials [85].Execute (); }
+               [Test] public void Trial0086 () { PerlTrials.trials [86].Execute (); }
+               [Test] public void Trial0087 () { PerlTrials.trials [87].Execute (); }
+               [Test] public void Trial0088 () { PerlTrials.trials [88].Execute (); }
+               [Test] public void Trial0089 () { PerlTrials.trials [89].Execute (); }
+               [Test] public void Trial0090 () { PerlTrials.trials [90].Execute (); }
+               [Test] public void Trial0091 () { PerlTrials.trials [91].Execute (); }
+               [Test] public void Trial0092 () { PerlTrials.trials [92].Execute (); }
+               [Test] public void Trial0093 () { PerlTrials.trials [93].Execute (); }
+               [Test] public void Trial0094 () { PerlTrials.trials [94].Execute (); }
+               [Test] public void Trial0095 () { PerlTrials.trials [95].Execute (); }
+               [Test] public void Trial0096 () { PerlTrials.trials [96].Execute (); }
+               [Test] public void Trial0097 () { PerlTrials.trials [97].Execute (); }
+               [Test] public void Trial0098 () { PerlTrials.trials [98].Execute (); }
+               [Test] public void Trial0099 () { PerlTrials.trials [99].Execute (); }
+               [Test] public void Trial0100 () { PerlTrials.trials [100].Execute (); }
+               [Test] public void Trial0101 () { PerlTrials.trials [101].Execute (); }
+               [Test] public void Trial0102 () { PerlTrials.trials [102].Execute (); }
+               [Test] public void Trial0103 () { PerlTrials.trials [103].Execute (); }
+               [Test] public void Trial0104 () { PerlTrials.trials [104].Execute (); }
+               [Test] public void Trial0105 () { PerlTrials.trials [105].Execute (); }
+               [Test] public void Trial0106 () { PerlTrials.trials [106].Execute (); }
+               [Test] public void Trial0107 () { PerlTrials.trials [107].Execute (); }
+               [Test] public void Trial0108 () { PerlTrials.trials [108].Execute (); }
+               [Test] public void Trial0109 () { PerlTrials.trials [109].Execute (); }
+               [Test] public void Trial0110 () { PerlTrials.trials [110].Execute (); }
+               [Test] public void Trial0111 () { PerlTrials.trials [111].Execute (); }
+               [Test] public void Trial0112 () { PerlTrials.trials [112].Execute (); }
+               [Test] public void Trial0113 () { PerlTrials.trials [113].Execute (); }
+               [Test] public void Trial0114 () { PerlTrials.trials [114].Execute (); }
+               [Test] public void Trial0115 () { PerlTrials.trials [115].Execute (); }
+               [Test] public void Trial0116 () { PerlTrials.trials [116].Execute (); }
+               [Test] public void Trial0117 () { PerlTrials.trials [117].Execute (); }
+               [Test] public void Trial0118 () { PerlTrials.trials [118].Execute (); }
+               [Test] public void Trial0119 () { PerlTrials.trials [119].Execute (); }
+               [Test] public void Trial0120 () { PerlTrials.trials [120].Execute (); }
+               [Test] public void Trial0121 () { PerlTrials.trials [121].Execute (); }
+               [Test] public void Trial0122 () { PerlTrials.trials [122].Execute (); }
+               [Test] public void Trial0123 () { PerlTrials.trials [123].Execute (); }
+               [Test] public void Trial0124 () { PerlTrials.trials [124].Execute (); }
+               [Test] public void Trial0125 () { PerlTrials.trials [125].Execute (); }
+               [Test] public void Trial0126 () { PerlTrials.trials [126].Execute (); }
+               [Test] public void Trial0127 () { PerlTrials.trials [127].Execute (); }
+               [Test] public void Trial0128 () { PerlTrials.trials [128].Execute (); }
+               [Test] public void Trial0129 () { PerlTrials.trials [129].Execute (); }
+               [Test] public void Trial0130 () { PerlTrials.trials [130].Execute (); }
+               [Test] public void Trial0131 () { PerlTrials.trials [131].Execute (); }
+               [Test] public void Trial0132 () { PerlTrials.trials [132].Execute (); }
+               [Test] public void Trial0133 () { PerlTrials.trials [133].Execute (); }
+               [Test] public void Trial0134 () { PerlTrials.trials [134].Execute (); }
+               [Test] public void Trial0135 () { PerlTrials.trials [135].Execute (); }
+               [Test] public void Trial0136 () { PerlTrials.trials [136].Execute (); }
+               [Test] public void Trial0137 () { PerlTrials.trials [137].Execute (); }
+               [Test] public void Trial0138 () { PerlTrials.trials [138].Execute (); }
+               [Test] public void Trial0139 () { PerlTrials.trials [139].Execute (); }
+               [Test] public void Trial0140 () { PerlTrials.trials [140].Execute (); }
+               [Test] public void Trial0141 () { PerlTrials.trials [141].Execute (); }
+               [Test] public void Trial0142 () { PerlTrials.trials [142].Execute (); }
+               [Test] public void Trial0143 () { PerlTrials.trials [143].Execute (); }
+               [Test] public void Trial0144 () { PerlTrials.trials [144].Execute (); }
+               [Test] public void Trial0145 () { PerlTrials.trials [145].Execute (); }
+               [Test] public void Trial0146 () { PerlTrials.trials [146].Execute (); }
+               [Test] public void Trial0147 () { PerlTrials.trials [147].Execute (); }
+               [Test] public void Trial0148 () { PerlTrials.trials [148].Execute (); }
+               [Test] public void Trial0149 () { PerlTrials.trials [149].Execute (); }
+               [Test] public void Trial0150 () { PerlTrials.trials [150].Execute (); }
+               [Test] public void Trial0151 () { PerlTrials.trials [151].Execute (); }
+               [Test] public void Trial0152 () { PerlTrials.trials [152].Execute (); }
+               [Test] public void Trial0153 () { PerlTrials.trials [153].Execute (); }
+               [Test] public void Trial0154 () { PerlTrials.trials [154].Execute (); }
+               [Test] public void Trial0155 () { PerlTrials.trials [155].Execute (); }
+               [Test] public void Trial0156 () { PerlTrials.trials [156].Execute (); }
+               [Test] public void Trial0157 () { PerlTrials.trials [157].Execute (); }
+               [Test] public void Trial0158 () { PerlTrials.trials [158].Execute (); }
+               [Test] public void Trial0159 () { PerlTrials.trials [159].Execute (); }
+               [Test] public void Trial0160 () { PerlTrials.trials [160].Execute (); }
+               [Test] public void Trial0161 () { PerlTrials.trials [161].Execute (); }
+               [Test] public void Trial0162 () { PerlTrials.trials [162].Execute (); }
+               [Test] public void Trial0163 () { PerlTrials.trials [163].Execute (); }
+               [Test] public void Trial0164 () { PerlTrials.trials [164].Execute (); }
+               [Test] public void Trial0165 () { PerlTrials.trials [165].Execute (); }
+               [Test] public void Trial0166 () { PerlTrials.trials [166].Execute (); }
+               [Test] public void Trial0167 () { PerlTrials.trials [167].Execute (); }
+               [Test] public void Trial0168 () { PerlTrials.trials [168].Execute (); }
+               [Test] public void Trial0169 () { PerlTrials.trials [169].Execute (); }
+               [Test] public void Trial0170 () { PerlTrials.trials [170].Execute (); }
+               [Test] public void Trial0171 () { PerlTrials.trials [171].Execute (); }
+               [Test] public void Trial0172 () { PerlTrials.trials [172].Execute (); }
+               [Test] public void Trial0173 () { PerlTrials.trials [173].Execute (); }
+               [Test] public void Trial0174 () { PerlTrials.trials [174].Execute (); }
+               [Test] public void Trial0175 () { PerlTrials.trials [175].Execute (); }
+               [Test] public void Trial0176 () { PerlTrials.trials [176].Execute (); }
+               [Test] public void Trial0177 () { PerlTrials.trials [177].Execute (); }
+               [Test] public void Trial0178 () { PerlTrials.trials [178].Execute (); }
+               [Test] public void Trial0179 () { PerlTrials.trials [179].Execute (); }
+               [Test] public void Trial0180 () { PerlTrials.trials [180].Execute (); }
+               [Test] public void Trial0181 () { PerlTrials.trials [181].Execute (); }
+               [Test] public void Trial0182 () { PerlTrials.trials [182].Execute (); }
+               [Test] public void Trial0183 () { PerlTrials.trials [183].Execute (); }
+               [Test] public void Trial0184 () { PerlTrials.trials [184].Execute (); }
+               [Test] public void Trial0185 () { PerlTrials.trials [185].Execute (); }
+               [Test] public void Trial0186 () { PerlTrials.trials [186].Execute (); }
+               [Test] public void Trial0187 () { PerlTrials.trials [187].Execute (); }
+               [Test] public void Trial0188 () { PerlTrials.trials [188].Execute (); }
+               [Test] public void Trial0189 () { PerlTrials.trials [189].Execute (); }
+               [Test] public void Trial0190 () { PerlTrials.trials [190].Execute (); }
+               [Test] public void Trial0191 () { PerlTrials.trials [191].Execute (); }
+               [Test] public void Trial0192 () { PerlTrials.trials [192].Execute (); }
+               [Test] public void Trial0193 () { PerlTrials.trials [193].Execute (); }
+               [Test] public void Trial0194 () { PerlTrials.trials [194].Execute (); }
+               [Test] public void Trial0195 () { PerlTrials.trials [195].Execute (); }
+               [Test] public void Trial0196 () { PerlTrials.trials [196].Execute (); }
+               [Test] public void Trial0197 () { PerlTrials.trials [197].Execute (); }
+               [Test] public void Trial0198 () { PerlTrials.trials [198].Execute (); }
+               [Test] public void Trial0199 () { PerlTrials.trials [199].Execute (); }
+               [Test] public void Trial0200 () { PerlTrials.trials [200].Execute (); }
+               [Test] public void Trial0201 () { PerlTrials.trials [201].Execute (); }
+               [Test] public void Trial0202 () { PerlTrials.trials [202].Execute (); }
+               [Test] public void Trial0203 () { PerlTrials.trials [203].Execute (); }
+               [Test] public void Trial0204 () { PerlTrials.trials [204].Execute (); }
+               [Test] public void Trial0205 () { PerlTrials.trials [205].Execute (); }
+               [Test] public void Trial0206 () { PerlTrials.trials [206].Execute (); }
+               [Test] public void Trial0207 () { PerlTrials.trials [207].Execute (); }
+               [Test] public void Trial0208 () { PerlTrials.trials [208].Execute (); }
+               [Test] public void Trial0209 () { PerlTrials.trials [209].Execute (); }
+               [Test] public void Trial0210 () { PerlTrials.trials [210].Execute (); }
+               [Test] public void Trial0211 () { PerlTrials.trials [211].Execute (); }
+               [Test] public void Trial0212 () { PerlTrials.trials [212].Execute (); }
+               [Test] public void Trial0213 () { PerlTrials.trials [213].Execute (); }
+               [Test] public void Trial0214 () { PerlTrials.trials [214].Execute (); }
+               [Test] public void Trial0215 () { PerlTrials.trials [215].Execute (); }
+               [Test] public void Trial0216 () { PerlTrials.trials [216].Execute (); }
+               [Test] public void Trial0217 () { PerlTrials.trials [217].Execute (); }
+               [Test] public void Trial0218 () { PerlTrials.trials [218].Execute (); }
+               [Test] public void Trial0219 () { PerlTrials.trials [219].Execute (); }
+               [Test] public void Trial0220 () { PerlTrials.trials [220].Execute (); }
+               [Test] public void Trial0221 () { PerlTrials.trials [221].Execute (); }
+               [Test] public void Trial0222 () { PerlTrials.trials [222].Execute (); }
+               [Test] public void Trial0223 () { PerlTrials.trials [223].Execute (); }
+               [Test] public void Trial0224 () { PerlTrials.trials [224].Execute (); }
+               [Test] public void Trial0225 () { PerlTrials.trials [225].Execute (); }
+               [Test] public void Trial0226 () { PerlTrials.trials [226].Execute (); }
+               [Test] public void Trial0227 () { PerlTrials.trials [227].Execute (); }
+               [Test] public void Trial0228 () { PerlTrials.trials [228].Execute (); }
+               [Test] public void Trial0229 () { PerlTrials.trials [229].Execute (); }
+               [Test] public void Trial0230 () { PerlTrials.trials [230].Execute (); }
+               [Test] public void Trial0231 () { PerlTrials.trials [231].Execute (); }
+               [Test] public void Trial0232 () { PerlTrials.trials [232].Execute (); }
+               [Test] public void Trial0233 () { PerlTrials.trials [233].Execute (); }
+               [Test] public void Trial0234 () { PerlTrials.trials [234].Execute (); }
+               [Test] public void Trial0235 () { PerlTrials.trials [235].Execute (); }
+               [Test] public void Trial0236 () { PerlTrials.trials [236].Execute (); }
+               [Test] public void Trial0237 () { PerlTrials.trials [237].Execute (); }
+               [Test] public void Trial0238 () { PerlTrials.trials [238].Execute (); }
+               [Test] public void Trial0239 () { PerlTrials.trials [239].Execute (); }
+               [Test] public void Trial0240 () { PerlTrials.trials [240].Execute (); }
+               [Test] public void Trial0241 () { PerlTrials.trials [241].Execute (); }
+               [Test] public void Trial0242 () { PerlTrials.trials [242].Execute (); }
+               [Test] public void Trial0243 () { PerlTrials.trials [243].Execute (); }
+               [Test] public void Trial0244 () { PerlTrials.trials [244].Execute (); }
+               [Test] public void Trial0245 () { PerlTrials.trials [245].Execute (); }
+               [Test] public void Trial0246 () { PerlTrials.trials [246].Execute (); }
+               [Test] public void Trial0247 () { PerlTrials.trials [247].Execute (); }
+               [Test] public void Trial0248 () { PerlTrials.trials [248].Execute (); }
+               [Test] public void Trial0249 () { PerlTrials.trials [249].Execute (); }
+               [Test] public void Trial0250 () { PerlTrials.trials [250].Execute (); }
+               [Test] public void Trial0251 () { PerlTrials.trials [251].Execute (); }
+               [Test] public void Trial0252 () { PerlTrials.trials [252].Execute (); }
+               [Test] public void Trial0253 () { PerlTrials.trials [253].Execute (); }
+               [Test] public void Trial0254 () { PerlTrials.trials [254].Execute (); }
+               [Test] public void Trial0255 () { PerlTrials.trials [255].Execute (); }
+               [Test] public void Trial0256 () { PerlTrials.trials [256].Execute (); }
+               [Test] public void Trial0257 () { PerlTrials.trials [257].Execute (); }
+               [Test] public void Trial0258 () { PerlTrials.trials [258].Execute (); }
+               [Test] public void Trial0259 () { PerlTrials.trials [259].Execute (); }
+               [Test] public void Trial0260 () { PerlTrials.trials [260].Execute (); }
+               [Test] public void Trial0261 () { PerlTrials.trials [261].Execute (); }
+               [Test] public void Trial0262 () { PerlTrials.trials [262].Execute (); }
+               [Test] public void Trial0263 () { PerlTrials.trials [263].Execute (); }
+               [Test] public void Trial0264 () { PerlTrials.trials [264].Execute (); }
+               [Test] public void Trial0265 () { PerlTrials.trials [265].Execute (); }
+               [Test] public void Trial0266 () { PerlTrials.trials [266].Execute (); }
+               [Test] public void Trial0267 () { PerlTrials.trials [267].Execute (); }
+               [Test] public void Trial0268 () { PerlTrials.trials [268].Execute (); }
+               [Test] public void Trial0269 () { PerlTrials.trials [269].Execute (); }
+               [Test] public void Trial0270 () { PerlTrials.trials [270].Execute (); }
+               [Test] public void Trial0271 () { PerlTrials.trials [271].Execute (); }
+               [Test] public void Trial0272 () { PerlTrials.trials [272].Execute (); }
+               [Test] public void Trial0273 () { PerlTrials.trials [273].Execute (); }
+               [Test] public void Trial0274 () { PerlTrials.trials [274].Execute (); }
+               [Test] public void Trial0275 () { PerlTrials.trials [275].Execute (); }
+               [Test] public void Trial0276 () { PerlTrials.trials [276].Execute (); }
+               [Test] public void Trial0277 () { PerlTrials.trials [277].Execute (); }
+               [Test] public void Trial0278 () { PerlTrials.trials [278].Execute (); }
+               [Test] public void Trial0279 () { PerlTrials.trials [279].Execute (); }
+               [Test] public void Trial0280 () { PerlTrials.trials [280].Execute (); }
+               [Test] public void Trial0281 () { PerlTrials.trials [281].Execute (); }
+               [Test] public void Trial0282 () { PerlTrials.trials [282].Execute (); }
+               [Test] public void Trial0283 () { PerlTrials.trials [283].Execute (); }
+               [Test] public void Trial0284 () { PerlTrials.trials [284].Execute (); }
+               [Test] public void Trial0285 () { PerlTrials.trials [285].Execute (); }
+               [Test] public void Trial0286 () { PerlTrials.trials [286].Execute (); }
+               [Test] public void Trial0287 () { PerlTrials.trials [287].Execute (); }
+               [Test] public void Trial0288 () { PerlTrials.trials [288].Execute (); }
+               [Test] public void Trial0289 () { PerlTrials.trials [289].Execute (); }
+               [Test] public void Trial0290 () { PerlTrials.trials [290].Execute (); }
+               [Test] public void Trial0291 () { PerlTrials.trials [291].Execute (); }
+               [Test] public void Trial0292 () { PerlTrials.trials [292].Execute (); }
+               [Test] public void Trial0293 () { PerlTrials.trials [293].Execute (); }
+               [Test] public void Trial0294 () { PerlTrials.trials [294].Execute (); }
+               [Test] public void Trial0295 () { PerlTrials.trials [295].Execute (); }
+               [Test] public void Trial0296 () { PerlTrials.trials [296].Execute (); }
+               [Test] public void Trial0297 () { PerlTrials.trials [297].Execute (); }
+               [Test] public void Trial0298 () { PerlTrials.trials [298].Execute (); }
+               [Test] public void Trial0299 () { PerlTrials.trials [299].Execute (); }
+               [Test] public void Trial0300 () { PerlTrials.trials [300].Execute (); }
+               [Test] public void Trial0301 () { PerlTrials.trials [301].Execute (); }
+               [Test] public void Trial0302 () { PerlTrials.trials [302].Execute (); }
+               [Test] public void Trial0303 () { PerlTrials.trials [303].Execute (); }
+               [Test] public void Trial0304 () { PerlTrials.trials [304].Execute (); }
+               [Test] public void Trial0305 () { PerlTrials.trials [305].Execute (); }
+               [Test] public void Trial0306 () { PerlTrials.trials [306].Execute (); }
+               [Test] public void Trial0307 () { PerlTrials.trials [307].Execute (); }
+               [Test] public void Trial0308 () { PerlTrials.trials [308].Execute (); }
+               [Test] public void Trial0309 () { PerlTrials.trials [309].Execute (); }
+               [Test] public void Trial0310 () { PerlTrials.trials [310].Execute (); }
+               [Test] public void Trial0311 () { PerlTrials.trials [311].Execute (); }
+               [Test] public void Trial0312 () { PerlTrials.trials [312].Execute (); }
+               [Test] public void Trial0313 () { PerlTrials.trials [313].Execute (); }
+               [Test] public void Trial0314 () { PerlTrials.trials [314].Execute (); }
+               [Test] public void Trial0315 () { PerlTrials.trials [315].Execute (); }
+               [Test] public void Trial0316 () { PerlTrials.trials [316].Execute (); }
+               [Test] public void Trial0317 () { PerlTrials.trials [317].Execute (); }
+               [Test] public void Trial0318 () { PerlTrials.trials [318].Execute (); }
+               [Test] public void Trial0319 () { PerlTrials.trials [319].Execute (); }
+               [Test] public void Trial0320 () { PerlTrials.trials [320].Execute (); }
+               [Test] public void Trial0321 () { PerlTrials.trials [321].Execute (); }
+               [Test] public void Trial0322 () { PerlTrials.trials [322].Execute (); }
+               [Test] public void Trial0323 () { PerlTrials.trials [323].Execute (); }
+               [Test] public void Trial0324 () { PerlTrials.trials [324].Execute (); }
+               [Test] public void Trial0325 () { PerlTrials.trials [325].Execute (); }
+               [Test] public void Trial0326 () { PerlTrials.trials [326].Execute (); }
+               [Test] public void Trial0327 () { PerlTrials.trials [327].Execute (); }
+               [Test] public void Trial0328 () { PerlTrials.trials [328].Execute (); }
+               [Test] public void Trial0329 () { PerlTrials.trials [329].Execute (); }
+               [Test] public void Trial0330 () { PerlTrials.trials [330].Execute (); }
+               [Test] public void Trial0331 () { PerlTrials.trials [331].Execute (); }
+               [Test] public void Trial0332 () { PerlTrials.trials [332].Execute (); }
+               [Test] public void Trial0333 () { PerlTrials.trials [333].Execute (); }
+               [Test] public void Trial0334 () { PerlTrials.trials [334].Execute (); }
+               [Test] public void Trial0335 () { PerlTrials.trials [335].Execute (); }
+               [Test] public void Trial0336 () { PerlTrials.trials [336].Execute (); }
+               [Test] public void Trial0337 () { PerlTrials.trials [337].Execute (); }
+               [Test] public void Trial0338 () { PerlTrials.trials [338].Execute (); }
+               [Test] public void Trial0339 () { PerlTrials.trials [339].Execute (); }
+               [Test] public void Trial0340 () { PerlTrials.trials [340].Execute (); }
+               [Test] public void Trial0341 () { PerlTrials.trials [341].Execute (); }
+               [Test] public void Trial0342 () { PerlTrials.trials [342].Execute (); }
+               [Test] public void Trial0343 () { PerlTrials.trials [343].Execute (); }
+               [Test] public void Trial0344 () { PerlTrials.trials [344].Execute (); }
+               [Test] public void Trial0345 () { PerlTrials.trials [345].Execute (); }
+               [Test] public void Trial0346 () { PerlTrials.trials [346].Execute (); }
+               [Test] public void Trial0347 () { PerlTrials.trials [347].Execute (); }
+               [Test] public void Trial0348 () { PerlTrials.trials [348].Execute (); }
+               [Test] public void Trial0349 () { PerlTrials.trials [349].Execute (); }
+               [Test] public void Trial0350 () { PerlTrials.trials [350].Execute (); }
+               [Test] public void Trial0351 () { PerlTrials.trials [351].Execute (); }
+               [Test] public void Trial0352 () { PerlTrials.trials [352].Execute (); }
+               [Test] public void Trial0353 () { PerlTrials.trials [353].Execute (); }
+               [Test] public void Trial0354 () { PerlTrials.trials [354].Execute (); }
+               [Test] public void Trial0355 () { PerlTrials.trials [355].Execute (); }
+               [Test] public void Trial0356 () { PerlTrials.trials [356].Execute (); }
+               [Test] public void Trial0357 () { PerlTrials.trials [357].Execute (); }
+               [Test] public void Trial0358 () { PerlTrials.trials [358].Execute (); }
+               [Test] public void Trial0359 () { PerlTrials.trials [359].Execute (); }
+               [Test] public void Trial0360 () { PerlTrials.trials [360].Execute (); }
+               [Test] public void Trial0361 () { PerlTrials.trials [361].Execute (); }
+               [Test] public void Trial0362 () { PerlTrials.trials [362].Execute (); }
+               [Test] public void Trial0363 () { PerlTrials.trials [363].Execute (); }
+               [Test] public void Trial0364 () { PerlTrials.trials [364].Execute (); }
+               [Test] public void Trial0365 () { PerlTrials.trials [365].Execute (); }
+               [Test] public void Trial0366 () { PerlTrials.trials [366].Execute (); }
+               [Test] public void Trial0367 () { PerlTrials.trials [367].Execute (); }
+               [Test] public void Trial0368 () { PerlTrials.trials [368].Execute (); }
+               [Test] public void Trial0369 () { PerlTrials.trials [369].Execute (); }
+               [Test] public void Trial0370 () { PerlTrials.trials [370].Execute (); }
+               [Test] public void Trial0371 () { PerlTrials.trials [371].Execute (); }
+               [Test] public void Trial0372 () { PerlTrials.trials [372].Execute (); }
+               [Test] public void Trial0373 () { PerlTrials.trials [373].Execute (); }
+               [Test] public void Trial0374 () { PerlTrials.trials [374].Execute (); }
+               [Test] public void Trial0375 () { PerlTrials.trials [375].Execute (); }
+               [Test] public void Trial0376 () { PerlTrials.trials [376].Execute (); }
+               [Test] public void Trial0377 () { PerlTrials.trials [377].Execute (); }
+               [Test] public void Trial0378 () { PerlTrials.trials [378].Execute (); }
+               [Test] public void Trial0379 () { PerlTrials.trials [379].Execute (); }
+               [Test] public void Trial0380 () { PerlTrials.trials [380].Execute (); }
+               [Test] public void Trial0381 () { PerlTrials.trials [381].Execute (); }
+               [Test] public void Trial0382 () { PerlTrials.trials [382].Execute (); }
+               [Test] public void Trial0383 () { PerlTrials.trials [383].Execute (); }
+               [Test] public void Trial0384 () { PerlTrials.trials [384].Execute (); }
+               [Test] public void Trial0385 () { PerlTrials.trials [385].Execute (); }
+               [Test] public void Trial0386 () { PerlTrials.trials [386].Execute (); }
+               [Test] public void Trial0387 () { PerlTrials.trials [387].Execute (); }
+               [Test] public void Trial0388 () { PerlTrials.trials [388].Execute (); }
+               [Test] public void Trial0389 () { PerlTrials.trials [389].Execute (); }
+               [Test] public void Trial0390 () { PerlTrials.trials [390].Execute (); }
+               [Test] public void Trial0391 () { PerlTrials.trials [391].Execute (); }
+               [Test] public void Trial0392 () { PerlTrials.trials [392].Execute (); }
+               [Test] public void Trial0393 () { PerlTrials.trials [393].Execute (); }
+               [Test] public void Trial0394 () { PerlTrials.trials [394].Execute (); }
+               [Test] public void Trial0395 () { PerlTrials.trials [395].Execute (); }
+               [Test] public void Trial0396 () { PerlTrials.trials [396].Execute (); }
+               [Test] public void Trial0397 () { PerlTrials.trials [397].Execute (); }
+               [Test] public void Trial0398 () { PerlTrials.trials [398].Execute (); }
+               [Test] public void Trial0399 () { PerlTrials.trials [399].Execute (); }
+               [Test] public void Trial0400 () { PerlTrials.trials [400].Execute (); }
+               [Test] public void Trial0401 () { PerlTrials.trials [401].Execute (); }
+               [Test] public void Trial0402 () { PerlTrials.trials [402].Execute (); }
+               [Test] public void Trial0403 () { PerlTrials.trials [403].Execute (); }
+               [Test] public void Trial0404 () { PerlTrials.trials [404].Execute (); }
+               [Test] public void Trial0405 () { PerlTrials.trials [405].Execute (); }
+               [Test] public void Trial0406 () { PerlTrials.trials [406].Execute (); }
+               [Test] public void Trial0407 () { PerlTrials.trials [407].Execute (); }
+               [Test] public void Trial0408 () { PerlTrials.trials [408].Execute (); }
+               [Test] public void Trial0409 () { PerlTrials.trials [409].Execute (); }
+               [Test] public void Trial0410 () { PerlTrials.trials [410].Execute (); }
+               [Test] public void Trial0411 () { PerlTrials.trials [411].Execute (); }
+               [Test] public void Trial0412 () { PerlTrials.trials [412].Execute (); }
+               [Test] public void Trial0413 () { PerlTrials.trials [413].Execute (); }
+               [Test] public void Trial0414 () { PerlTrials.trials [414].Execute (); }
+               [Test] public void Trial0415 () { PerlTrials.trials [415].Execute (); }
+               [Test] public void Trial0416 () { PerlTrials.trials [416].Execute (); }
+               [Test] public void Trial0417 () { PerlTrials.trials [417].Execute (); }
+               [Test] public void Trial0418 () { PerlTrials.trials [418].Execute (); }
+               [Test] public void Trial0419 () { PerlTrials.trials [419].Execute (); }
+               [Test] public void Trial0420 () { PerlTrials.trials [420].Execute (); }
+               [Test] public void Trial0421 () { PerlTrials.trials [421].Execute (); }
+               [Test] public void Trial0422 () { PerlTrials.trials [422].Execute (); }
+               [Test] public void Trial0423 () { PerlTrials.trials [423].Execute (); }
+               [Test] public void Trial0424 () { PerlTrials.trials [424].Execute (); }
+               [Test] public void Trial0425 () { PerlTrials.trials [425].Execute (); }
+               [Test] public void Trial0426 () { PerlTrials.trials [426].Execute (); }
+               [Test] public void Trial0427 () { PerlTrials.trials [427].Execute (); }
+               [Test] public void Trial0428 () { PerlTrials.trials [428].Execute (); }
+               [Test] public void Trial0429 () { PerlTrials.trials [429].Execute (); }
+               [Test] public void Trial0430 () { PerlTrials.trials [430].Execute (); }
+               [Test] public void Trial0431 () { PerlTrials.trials [431].Execute (); }
+               [Test] public void Trial0432 () { PerlTrials.trials [432].Execute (); }
+               [Test] public void Trial0433 () { PerlTrials.trials [433].Execute (); }
+               [Test] public void Trial0434 () { PerlTrials.trials [434].Execute (); }
+               [Test] public void Trial0435 () { PerlTrials.trials [435].Execute (); }
+               [Test] public void Trial0436 () { PerlTrials.trials [436].Execute (); }
+               [Test] public void Trial0437 () { PerlTrials.trials [437].Execute (); }
+               [Test] public void Trial0438 () { PerlTrials.trials [438].Execute (); }
+               [Test] public void Trial0439 () { PerlTrials.trials [439].Execute (); }
+               [Test] public void Trial0440 () { PerlTrials.trials [440].Execute (); }
+               [Test] public void Trial0441 () { PerlTrials.trials [441].Execute (); }
+               [Test] public void Trial0442 () { PerlTrials.trials [442].Execute (); }
+               [Test] public void Trial0443 () { PerlTrials.trials [443].Execute (); }
+               [Test] public void Trial0444 () { PerlTrials.trials [444].Execute (); }
+               [Test] public void Trial0445 () { PerlTrials.trials [445].Execute (); }
+               [Test] public void Trial0446 () { PerlTrials.trials [446].Execute (); }
+               [Test] public void Trial0447 () { PerlTrials.trials [447].Execute (); }
+               [Test] public void Trial0448 () { PerlTrials.trials [448].Execute (); }
+               [Test] public void Trial0449 () { PerlTrials.trials [449].Execute (); }
+               [Test] public void Trial0450 () { PerlTrials.trials [450].Execute (); }
+               [Test] public void Trial0451 () { PerlTrials.trials [451].Execute (); }
+               [Test] public void Trial0452 () { PerlTrials.trials [452].Execute (); }
+               [Test] public void Trial0453 () { PerlTrials.trials [453].Execute (); }
+               [Test] public void Trial0454 () { PerlTrials.trials [454].Execute (); }
+               [Test] public void Trial0455 () { PerlTrials.trials [455].Execute (); }
+               [Test] public void Trial0456 () { PerlTrials.trials [456].Execute (); }
+               [Test] public void Trial0457 () { PerlTrials.trials [457].Execute (); }
+               [Test] public void Trial0458 () { PerlTrials.trials [458].Execute (); }
+               [Test] public void Trial0459 () { PerlTrials.trials [459].Execute (); }
+               [Test] public void Trial0460 () { PerlTrials.trials [460].Execute (); }
+               [Test] public void Trial0461 () { PerlTrials.trials [461].Execute (); }
+               [Test] public void Trial0462 () { PerlTrials.trials [462].Execute (); }
+               [Test] public void Trial0463 () { PerlTrials.trials [463].Execute (); }
+               [Test] public void Trial0464 () { PerlTrials.trials [464].Execute (); }
+               [Test] public void Trial0465 () { PerlTrials.trials [465].Execute (); }
+               [Test] public void Trial0466 () { PerlTrials.trials [466].Execute (); }
+               [Test] public void Trial0467 () { PerlTrials.trials [467].Execute (); }
+               [Test] public void Trial0468 () { PerlTrials.trials [468].Execute (); }
+               [Test] public void Trial0469 () { PerlTrials.trials [469].Execute (); }
+               [Test] public void Trial0470 () { PerlTrials.trials [470].Execute (); }
+               [Test] public void Trial0471 () { PerlTrials.trials [471].Execute (); }
+               [Test] public void Trial0472 () { PerlTrials.trials [472].Execute (); }
+               [Test] public void Trial0473 () { PerlTrials.trials [473].Execute (); }
+               [Test] public void Trial0474 () { PerlTrials.trials [474].Execute (); }
+               [Test] public void Trial0475 () { PerlTrials.trials [475].Execute (); }
+               [Test] public void Trial0476 () { PerlTrials.trials [476].Execute (); }
+               [Test] public void Trial0477 () { PerlTrials.trials [477].Execute (); }
+               [Test] public void Trial0478 () { PerlTrials.trials [478].Execute (); }
+               [Test] public void Trial0479 () { PerlTrials.trials [479].Execute (); }
+               [Test] public void Trial0480 () { PerlTrials.trials [480].Execute (); }
+               [Test] public void Trial0481 () { PerlTrials.trials [481].Execute (); }
+               [Test] public void Trial0482 () { PerlTrials.trials [482].Execute (); }
+               [Test] public void Trial0483 () { PerlTrials.trials [483].Execute (); }
+               [Test] public void Trial0484 () { PerlTrials.trials [484].Execute (); }
+               [Test] public void Trial0485 () { PerlTrials.trials [485].Execute (); }
+               [Test] public void Trial0486 () { PerlTrials.trials [486].Execute (); }
+               [Test] public void Trial0487 () { PerlTrials.trials [487].Execute (); }
+               [Test] public void Trial0488 () { PerlTrials.trials [488].Execute (); }
+               [Test] public void Trial0489 () { PerlTrials.trials [489].Execute (); }
+               [Test] public void Trial0490 () { PerlTrials.trials [490].Execute (); }
+               [Test] public void Trial0491 () { PerlTrials.trials [491].Execute (); }
+               [Test] public void Trial0492 () { PerlTrials.trials [492].Execute (); }
+               [Test] public void Trial0493 () { PerlTrials.trials [493].Execute (); }
+               [Test] public void Trial0494 () { PerlTrials.trials [494].Execute (); }
+               [Test] public void Trial0495 () { PerlTrials.trials [495].Execute (); }
+               [Test] public void Trial0496 () { PerlTrials.trials [496].Execute (); }
+               [Test] public void Trial0497 () { PerlTrials.trials [497].Execute (); }
+               [Test] public void Trial0498 () { PerlTrials.trials [498].Execute (); }
+               [Test] public void Trial0499 () { PerlTrials.trials [499].Execute (); }
+               [Test] public void Trial0500 () { PerlTrials.trials [500].Execute (); }
+               [Test] public void Trial0501 () { PerlTrials.trials [501].Execute (); }
+               [Test] public void Trial0502 () { PerlTrials.trials [502].Execute (); }
+               [Test] public void Trial0503 () { PerlTrials.trials [503].Execute (); }
+               [Test] public void Trial0504 () { PerlTrials.trials [504].Execute (); }
+               [Test] public void Trial0505 () { PerlTrials.trials [505].Execute (); }
+               [Test] public void Trial0506 () { PerlTrials.trials [506].Execute (); }
+               [Test] public void Trial0507 () { PerlTrials.trials [507].Execute (); }
+               [Test] public void Trial0508 () { PerlTrials.trials [508].Execute (); }
+               [Test] public void Trial0509 () { PerlTrials.trials [509].Execute (); }
+               [Test] public void Trial0510 () { PerlTrials.trials [510].Execute (); }
+               [Test] public void Trial0511 () { PerlTrials.trials [511].Execute (); }
+               [Test] public void Trial0512 () { PerlTrials.trials [512].Execute (); }
+               [Test] public void Trial0513 () { PerlTrials.trials [513].Execute (); }
+               [Test] public void Trial0514 () { PerlTrials.trials [514].Execute (); }
+               [Test] public void Trial0515 () { PerlTrials.trials [515].Execute (); }
+               [Test] public void Trial0516 () { PerlTrials.trials [516].Execute (); }
+               [Test] public void Trial0517 () { PerlTrials.trials [517].Execute (); }
+               [Test] public void Trial0518 () { PerlTrials.trials [518].Execute (); }
+               [Test] public void Trial0519 () { PerlTrials.trials [519].Execute (); }
+               [Test] public void Trial0520 () { PerlTrials.trials [520].Execute (); }
+               [Test] public void Trial0521 () { PerlTrials.trials [521].Execute (); }
+               [Test] public void Trial0522 () { PerlTrials.trials [522].Execute (); }
+               [Test] public void Trial0523 () { PerlTrials.trials [523].Execute (); }
+               [Test] public void Trial0524 () { PerlTrials.trials [524].Execute (); }
+               [Test] public void Trial0525 () { PerlTrials.trials [525].Execute (); }
+               [Test] public void Trial0526 () { PerlTrials.trials [526].Execute (); }
+               [Test] public void Trial0527 () { PerlTrials.trials [527].Execute (); }
+               [Test] public void Trial0528 () { PerlTrials.trials [528].Execute (); }
+               [Test] public void Trial0529 () { PerlTrials.trials [529].Execute (); }
+               [Test] public void Trial0530 () { PerlTrials.trials [530].Execute (); }
+               [Test] public void Trial0531 () { PerlTrials.trials [531].Execute (); }
+               [Test] public void Trial0532 () { PerlTrials.trials [532].Execute (); }
+               [Test] public void Trial0533 () { PerlTrials.trials [533].Execute (); }
+               [Test] public void Trial0534 () { PerlTrials.trials [534].Execute (); }
+               [Test] public void Trial0535 () { PerlTrials.trials [535].Execute (); }
+               [Test] public void Trial0536 () { PerlTrials.trials [536].Execute (); }
+               [Test] public void Trial0537 () { PerlTrials.trials [537].Execute (); }
+               [Test] public void Trial0538 () { PerlTrials.trials [538].Execute (); }
+               [Test] public void Trial0539 () { PerlTrials.trials [539].Execute (); }
+               [Test] public void Trial0540 () { PerlTrials.trials [540].Execute (); }
+               [Test] public void Trial0541 () { PerlTrials.trials [541].Execute (); }
+               [Test] public void Trial0542 () { PerlTrials.trials [542].Execute (); }
+               [Test] public void Trial0543 () { PerlTrials.trials [543].Execute (); }
+               [Test] public void Trial0544 () { PerlTrials.trials [544].Execute (); }
+               [Test] public void Trial0545 () { PerlTrials.trials [545].Execute (); }
+               [Test] public void Trial0546 () { PerlTrials.trials [546].Execute (); }
+               [Test] public void Trial0547 () { PerlTrials.trials [547].Execute (); }
+               [Test] public void Trial0548 () { PerlTrials.trials [548].Execute (); }
+               [Test] public void Trial0549 () { PerlTrials.trials [549].Execute (); }
+               [Test] public void Trial0550 () { PerlTrials.trials [550].Execute (); }
+               [Test] public void Trial0551 () { PerlTrials.trials [551].Execute (); }
+               [Test] public void Trial0552 () { PerlTrials.trials [552].Execute (); }
+               [Test] public void Trial0553 () { PerlTrials.trials [553].Execute (); }
+               [Test] public void Trial0554 () { PerlTrials.trials [554].Execute (); }
+               [Test] public void Trial0555 () { PerlTrials.trials [555].Execute (); }
+               [Test] public void Trial0556 () { PerlTrials.trials [556].Execute (); }
+               [Test] public void Trial0557 () { PerlTrials.trials [557].Execute (); }
+               [Test] public void Trial0558 () { PerlTrials.trials [558].Execute (); }
+               [Test] public void Trial0559 () { PerlTrials.trials [559].Execute (); }
+               [Test] public void Trial0560 () { PerlTrials.trials [560].Execute (); }
+               [Test] public void Trial0561 () { PerlTrials.trials [561].Execute (); }
+               [Test] public void Trial0562 () { PerlTrials.trials [562].Execute (); }
+               [Test] public void Trial0563 () { PerlTrials.trials [563].Execute (); }
+               [Test] public void Trial0564 () { PerlTrials.trials [564].Execute (); }
+               [Test] public void Trial0565 () { PerlTrials.trials [565].Execute (); }
+               [Test] public void Trial0566 () { PerlTrials.trials [566].Execute (); }
+               [Test] public void Trial0567 () { PerlTrials.trials [567].Execute (); }
+               [Test] public void Trial0568 () { PerlTrials.trials [568].Execute (); }
+               [Test] public void Trial0569 () { PerlTrials.trials [569].Execute (); }
+               [Test] public void Trial0570 () { PerlTrials.trials [570].Execute (); }
+               [Test] public void Trial0571 () { PerlTrials.trials [571].Execute (); }
+               [Test] public void Trial0572 () { PerlTrials.trials [572].Execute (); }
+               [Test] public void Trial0573 () { PerlTrials.trials [573].Execute (); }
+               [Test] public void Trial0574 () { PerlTrials.trials [574].Execute (); }
+               [Test] public void Trial0575 () { PerlTrials.trials [575].Execute (); }
+               [Test] public void Trial0576 () { PerlTrials.trials [576].Execute (); }
+               [Test] public void Trial0577 () { PerlTrials.trials [577].Execute (); }
+               [Test] public void Trial0578 () { PerlTrials.trials [578].Execute (); }
+               [Test] public void Trial0579 () { PerlTrials.trials [579].Execute (); }
+               [Test] public void Trial0580 () { PerlTrials.trials [580].Execute (); }
+               [Test] public void Trial0581 () { PerlTrials.trials [581].Execute (); }
+               [Test] public void Trial0582 () { PerlTrials.trials [582].Execute (); }
+               [Test] public void Trial0583 () { PerlTrials.trials [583].Execute (); }
+               [Test] public void Trial0584 () { PerlTrials.trials [584].Execute (); }
+               [Test] public void Trial0585 () { PerlTrials.trials [585].Execute (); }
+               [Test] public void Trial0586 () { PerlTrials.trials [586].Execute (); }
+               [Test] public void Trial0587 () { PerlTrials.trials [587].Execute (); }
+               [Test] public void Trial0588 () { PerlTrials.trials [588].Execute (); }
+               [Test] public void Trial0589 () { PerlTrials.trials [589].Execute (); }
+               [Test] public void Trial0590 () { PerlTrials.trials [590].Execute (); }
+               [Test] public void Trial0591 () { PerlTrials.trials [591].Execute (); }
+               [Test] public void Trial0592 () { PerlTrials.trials [592].Execute (); }
+               [Test] public void Trial0593 () { PerlTrials.trials [593].Execute (); }
+               [Test] public void Trial0594 () { PerlTrials.trials [594].Execute (); }
+               [Test] public void Trial0595 () { PerlTrials.trials [595].Execute (); }
+               [Test] public void Trial0596 () { PerlTrials.trials [596].Execute (); }
+               [Test] public void Trial0597 () { PerlTrials.trials [597].Execute (); }
+               [Test] public void Trial0598 () { PerlTrials.trials [598].Execute (); }
+               [Test] public void Trial0599 () { PerlTrials.trials [599].Execute (); }
+               [Test] public void Trial0600 () { PerlTrials.trials [600].Execute (); }
+               [Test] public void Trial0601 () { PerlTrials.trials [601].Execute (); }
+               [Test] public void Trial0602 () { PerlTrials.trials [602].Execute (); }
+               [Test] public void Trial0603 () { PerlTrials.trials [603].Execute (); }
+               [Test] public void Trial0604 () { PerlTrials.trials [604].Execute (); }
+               [Test] public void Trial0605 () { PerlTrials.trials [605].Execute (); }
+               [Test] public void Trial0606 () { PerlTrials.trials [606].Execute (); }
+               [Test] public void Trial0607 () { PerlTrials.trials [607].Execute (); }
+               [Test] public void Trial0608 () { PerlTrials.trials [608].Execute (); }
+               [Test] public void Trial0609 () { PerlTrials.trials [609].Execute (); }
+               [Test] public void Trial0610 () { PerlTrials.trials [610].Execute (); }
+               [Test] public void Trial0611 () { PerlTrials.trials [611].Execute (); }
+               [Test] public void Trial0612 () { PerlTrials.trials [612].Execute (); }
+               [Test] public void Trial0613 () { PerlTrials.trials [613].Execute (); }
+               [Test] public void Trial0614 () { PerlTrials.trials [614].Execute (); }
+               [Test] public void Trial0615 () { PerlTrials.trials [615].Execute (); }
+               [Test] public void Trial0616 () { PerlTrials.trials [616].Execute (); }
+               [Test] public void Trial0617 () { PerlTrials.trials [617].Execute (); }
+               [Test] public void Trial0618 () { PerlTrials.trials [618].Execute (); }
+               [Test] public void Trial0619 () { PerlTrials.trials [619].Execute (); }
+               [Test] public void Trial0620 () { PerlTrials.trials [620].Execute (); }
+               [Test] public void Trial0621 () { PerlTrials.trials [621].Execute (); }
+               [Test] public void Trial0622 () { PerlTrials.trials [622].Execute (); }
+               [Test] public void Trial0623 () { PerlTrials.trials [623].Execute (); }
+               [Test] public void Trial0624 () { PerlTrials.trials [624].Execute (); }
+               [Test] public void Trial0625 () { PerlTrials.trials [625].Execute (); }
+               [Test] public void Trial0626 () { PerlTrials.trials [626].Execute (); }
+               [Test] public void Trial0627 () { PerlTrials.trials [627].Execute (); }
+               [Test] public void Trial0628 () { PerlTrials.trials [628].Execute (); }
+               [Test] public void Trial0629 () { PerlTrials.trials [629].Execute (); }
+               [Test] public void Trial0630 () { PerlTrials.trials [630].Execute (); }
+               [Test] public void Trial0631 () { PerlTrials.trials [631].Execute (); }
+               [Test] public void Trial0632 () { PerlTrials.trials [632].Execute (); }
+               [Test] public void Trial0633 () { PerlTrials.trials [633].Execute (); }
+               [Test] public void Trial0634 () { PerlTrials.trials [634].Execute (); }
+               [Test] public void Trial0635 () { PerlTrials.trials [635].Execute (); }
+               [Test] public void Trial0636 () { PerlTrials.trials [636].Execute (); }
+               [Test] public void Trial0637 () { PerlTrials.trials [637].Execute (); }
+               [Test] public void Trial0638 () { PerlTrials.trials [638].Execute (); }
+               [Test] public void Trial0639 () { PerlTrials.trials [639].Execute (); }
+               [Test] public void Trial0640 () { PerlTrials.trials [640].Execute (); }
+               [Test] public void Trial0641 () { PerlTrials.trials [641].Execute (); }
+               [Test] public void Trial0642 () { PerlTrials.trials [642].Execute (); }
+               [Test] public void Trial0643 () { PerlTrials.trials [643].Execute (); }
+               [Test] public void Trial0644 () { PerlTrials.trials [644].Execute (); }
+               [Test] public void Trial0645 () { PerlTrials.trials [645].Execute (); }
+               [Test] public void Trial0646 () { PerlTrials.trials [646].Execute (); }
+               [Test] public void Trial0647 () { PerlTrials.trials [647].Execute (); }
+               [Test] public void Trial0648 () { PerlTrials.trials [648].Execute (); }
+               [Test] public void Trial0649 () { PerlTrials.trials [649].Execute (); }
+               [Test] public void Trial0650 () { PerlTrials.trials [650].Execute (); }
+               [Test] public void Trial0651 () { PerlTrials.trials [651].Execute (); }
+               [Test] public void Trial0652 () { PerlTrials.trials [652].Execute (); }
+               [Test] public void Trial0653 () { PerlTrials.trials [653].Execute (); }
+               [Test] public void Trial0654 () { PerlTrials.trials [654].Execute (); }
+               [Test] public void Trial0655 () { PerlTrials.trials [655].Execute (); }
+               [Test] public void Trial0656 () { PerlTrials.trials [656].Execute (); }
+               [Test] public void Trial0657 () { PerlTrials.trials [657].Execute (); }
+               [Test] public void Trial0658 () { PerlTrials.trials [658].Execute (); }
+               [Test] public void Trial0659 () { PerlTrials.trials [659].Execute (); }
+               [Test] public void Trial0660 () { PerlTrials.trials [660].Execute (); }
+               [Test] public void Trial0661 () { PerlTrials.trials [661].Execute (); }
+               [Test] public void Trial0662 () { PerlTrials.trials [662].Execute (); }
+               [Test] public void Trial0663 () { PerlTrials.trials [663].Execute (); }
+               [Test] public void Trial0664 () { PerlTrials.trials [664].Execute (); }
+               [Test] public void Trial0665 () { PerlTrials.trials [665].Execute (); }
+               [Test] public void Trial0666 () { PerlTrials.trials [666].Execute (); }
+               [Test] public void Trial0667 () { PerlTrials.trials [667].Execute (); }
+               [Test] public void Trial0668 () { PerlTrials.trials [668].Execute (); }
+               [Test] public void Trial0669 () { PerlTrials.trials [669].Execute (); }
+               [Test] public void Trial0670 () { PerlTrials.trials [670].Execute (); }
+               [Test] public void Trial0671 () { PerlTrials.trials [671].Execute (); }
+               [Test] public void Trial0672 () { PerlTrials.trials [672].Execute (); }
+               [Test] public void Trial0673 () { PerlTrials.trials [673].Execute (); }
+               [Test] public void Trial0674 () { PerlTrials.trials [674].Execute (); }
+               [Test] public void Trial0675 () { PerlTrials.trials [675].Execute (); }
+               [Test] public void Trial0676 () { PerlTrials.trials [676].Execute (); }
+               [Test] public void Trial0677 () { PerlTrials.trials [677].Execute (); }
+               [Test] public void Trial0678 () { PerlTrials.trials [678].Execute (); }
+               [Test] public void Trial0679 () { PerlTrials.trials [679].Execute (); }
+               [Test] public void Trial0680 () { PerlTrials.trials [680].Execute (); }
+               [Test] public void Trial0681 () { PerlTrials.trials [681].Execute (); }
+               [Test] public void Trial0682 () { PerlTrials.trials [682].Execute (); }
+               [Test] public void Trial0683 () { PerlTrials.trials [683].Execute (); }
+               [Test] public void Trial0684 () { PerlTrials.trials [684].Execute (); }
+               [Test] public void Trial0685 () { PerlTrials.trials [685].Execute (); }
+               [Test] public void Trial0686 () { PerlTrials.trials [686].Execute (); }
+               [Test] public void Trial0687 () { PerlTrials.trials [687].Execute (); }
+               [Test] public void Trial0688 () { PerlTrials.trials [688].Execute (); }
+               [Test] public void Trial0689 () { PerlTrials.trials [689].Execute (); }
+               [Test] public void Trial0690 () { PerlTrials.trials [690].Execute (); }
+               [Test] public void Trial0691 () { PerlTrials.trials [691].Execute (); }
+               [Test] public void Trial0692 () { PerlTrials.trials [692].Execute (); }
+               [Test] public void Trial0693 () { PerlTrials.trials [693].Execute (); }
+               [Test] public void Trial0694 () { PerlTrials.trials [694].Execute (); }
+               [Test] public void Trial0695 () { PerlTrials.trials [695].Execute (); }
+               [Test] public void Trial0696 () { PerlTrials.trials [696].Execute (); }
+               [Test] public void Trial0697 () { PerlTrials.trials [697].Execute (); }
+               [Test] public void Trial0698 () { PerlTrials.trials [698].Execute (); }
+               [Test] public void Trial0699 () { PerlTrials.trials [699].Execute (); }
+               [Test] public void Trial0700 () { PerlTrials.trials [700].Execute (); }
+               [Test] public void Trial0701 () { PerlTrials.trials [701].Execute (); }
+               [Test] public void Trial0702 () { PerlTrials.trials [702].Execute (); }
+               [Test] public void Trial0703 () { PerlTrials.trials [703].Execute (); }
+               [Test] public void Trial0704 () { PerlTrials.trials [704].Execute (); }
+               [Test] public void Trial0705 () { PerlTrials.trials [705].Execute (); }
+               [Test] public void Trial0706 () { PerlTrials.trials [706].Execute (); }
+               [Test] public void Trial0707 () { PerlTrials.trials [707].Execute (); }
+               [Test] public void Trial0708 () { PerlTrials.trials [708].Execute (); }
+               [Test] public void Trial0709 () { PerlTrials.trials [709].Execute (); }
+               [Test] public void Trial0710 () { PerlTrials.trials [710].Execute (); }
+               [Test] public void Trial0711 () { PerlTrials.trials [711].Execute (); }
+               [Test] public void Trial0712 () { PerlTrials.trials [712].Execute (); }
+               [Test] public void Trial0713 () { PerlTrials.trials [713].Execute (); }
+               [Test] public void Trial0714 () { PerlTrials.trials [714].Execute (); }
+               [Test] public void Trial0715 () { PerlTrials.trials [715].Execute (); }
+               [Test] public void Trial0716 () { PerlTrials.trials [716].Execute (); }
+               [Test] public void Trial0717 () { PerlTrials.trials [717].Execute (); }
+               [Test] public void Trial0718 () { PerlTrials.trials [718].Execute (); }
+               [Test] public void Trial0719 () { PerlTrials.trials [719].Execute (); }
+               [Test] public void Trial0720 () { PerlTrials.trials [720].Execute (); }
+               [Test] public void Trial0721 () { PerlTrials.trials [721].Execute (); }
+               [Test] public void Trial0722 () { PerlTrials.trials [722].Execute (); }
+               [Test] public void Trial0723 () { PerlTrials.trials [723].Execute (); }
+               [Test] public void Trial0724 () { PerlTrials.trials [724].Execute (); }
+               [Test] public void Trial0725 () { PerlTrials.trials [725].Execute (); }
+               [Test] public void Trial0726 () { PerlTrials.trials [726].Execute (); }
+               [Test] public void Trial0727 () { PerlTrials.trials [727].Execute (); }
+               [Test] public void Trial0728 () { PerlTrials.trials [728].Execute (); }
+               [Test] public void Trial0729 () { PerlTrials.trials [729].Execute (); }
+               [Test] public void Trial0730 () { PerlTrials.trials [730].Execute (); }
+               [Test] public void Trial0731 () { PerlTrials.trials [731].Execute (); }
+               [Test] public void Trial0732 () { PerlTrials.trials [732].Execute (); }
+               [Test] public void Trial0733 () { PerlTrials.trials [733].Execute (); }
+               [Test] public void Trial0734 () { PerlTrials.trials [734].Execute (); }
+               [Test] public void Trial0735 () { PerlTrials.trials [735].Execute (); }
+               [Test] public void Trial0736 () { PerlTrials.trials [736].Execute (); }
+               [Test] public void Trial0737 () { PerlTrials.trials [737].Execute (); }
+               [Test] public void Trial0738 () { PerlTrials.trials [738].Execute (); }
+               [Test] public void Trial0739 () { PerlTrials.trials [739].Execute (); }
+               [Test] public void Trial0740 () { PerlTrials.trials [740].Execute (); }
+               [Test] public void Trial0741 () { PerlTrials.trials [741].Execute (); }
+               [Test] public void Trial0742 () { PerlTrials.trials [742].Execute (); }
+               [Test] public void Trial0743 () { PerlTrials.trials [743].Execute (); }
+               [Test] public void Trial0744 () { PerlTrials.trials [744].Execute (); }
+               [Test] public void Trial0745 () { PerlTrials.trials [745].Execute (); }
+               [Test] public void Trial0746 () { PerlTrials.trials [746].Execute (); }
+               [Test] public void Trial0747 () { PerlTrials.trials [747].Execute (); }
+               [Test] public void Trial0748 () { PerlTrials.trials [748].Execute (); }
+               [Test] public void Trial0749 () { PerlTrials.trials [749].Execute (); }
+               [Test] public void Trial0750 () { PerlTrials.trials [750].Execute (); }
+               [Test] public void Trial0751 () { PerlTrials.trials [751].Execute (); }
+               [Test] public void Trial0752 () { PerlTrials.trials [752].Execute (); }
+               [Test] public void Trial0753 () { PerlTrials.trials [753].Execute (); }
+               [Test] public void Trial0754 () { PerlTrials.trials [754].Execute (); }
+               [Test] public void Trial0755 () { PerlTrials.trials [755].Execute (); }
+               [Test] public void Trial0756 () { PerlTrials.trials [756].Execute (); }
+               [Test] public void Trial0757 () { PerlTrials.trials [757].Execute (); }
+               [Test] public void Trial0758 () { PerlTrials.trials [758].Execute (); }
+               [Test] public void Trial0759 () { PerlTrials.trials [759].Execute (); }
+               [Test] public void Trial0760 () { PerlTrials.trials [760].Execute (); }
+               [Test] public void Trial0761 () { PerlTrials.trials [761].Execute (); }
+               [Test] public void Trial0762 () { PerlTrials.trials [762].Execute (); }
+               [Test] public void Trial0763 () { PerlTrials.trials [763].Execute (); }
+               [Test] public void Trial0764 () { PerlTrials.trials [764].Execute (); }
+               [Test] public void Trial0765 () { PerlTrials.trials [765].Execute (); }
+               [Test] public void Trial0766 () { PerlTrials.trials [766].Execute (); }
+               [Test] public void Trial0767 () { PerlTrials.trials [767].Execute (); }
+               [Test] public void Trial0768 () { PerlTrials.trials [768].Execute (); }
+               [Test] public void Trial0769 () { PerlTrials.trials [769].Execute (); }
+               [Test] public void Trial0770 () { PerlTrials.trials [770].Execute (); }
+               [Test] public void Trial0771 () { PerlTrials.trials [771].Execute (); }
+               [Test] public void Trial0772 () { PerlTrials.trials [772].Execute (); }
+               [Test] public void Trial0773 () { PerlTrials.trials [773].Execute (); }
+               [Test] public void Trial0774 () { PerlTrials.trials [774].Execute (); }
+               [Test] public void Trial0775 () { PerlTrials.trials [775].Execute (); }
+               [Test] public void Trial0776 () { PerlTrials.trials [776].Execute (); }
+               [Test] public void Trial0777 () { PerlTrials.trials [777].Execute (); }
+               [Test] public void Trial0778 () { PerlTrials.trials [778].Execute (); }
+               [Test] public void Trial0779 () { PerlTrials.trials [779].Execute (); }
+               [Test] public void Trial0780 () { PerlTrials.trials [780].Execute (); }
+               [Test] public void Trial0781 () { PerlTrials.trials [781].Execute (); }
+               [Test] public void Trial0782 () { PerlTrials.trials [782].Execute (); }
+               [Test] public void Trial0783 () { PerlTrials.trials [783].Execute (); }
+               [Test] public void Trial0784 () { PerlTrials.trials [784].Execute (); }
+               [Test] public void Trial0785 () { PerlTrials.trials [785].Execute (); }
+               [Test] public void Trial0786 () { PerlTrials.trials [786].Execute (); }
+               [Test] public void Trial0787 () { PerlTrials.trials [787].Execute (); }
+               [Test] public void Trial0788 () { PerlTrials.trials [788].Execute (); }
+               [Test] public void Trial0789 () { PerlTrials.trials [789].Execute (); }
+               [Test] public void Trial0790 () { PerlTrials.trials [790].Execute (); }
+               [Test] public void Trial0791 () { PerlTrials.trials [791].Execute (); }
+               [Test] public void Trial0792 () { PerlTrials.trials [792].Execute (); }
+               [Test] public void Trial0793 () { PerlTrials.trials [793].Execute (); }
+               [Test] public void Trial0794 () { PerlTrials.trials [794].Execute (); }
+               [Test] public void Trial0795 () { PerlTrials.trials [795].Execute (); }
+               [Test] public void Trial0796 () { PerlTrials.trials [796].Execute (); }
+               [Test] public void Trial0797 () { PerlTrials.trials [797].Execute (); }
+               [Test] public void Trial0798 () { PerlTrials.trials [798].Execute (); }
+               [Test] public void Trial0799 () { PerlTrials.trials [799].Execute (); }
+               [Test] public void Trial0800 () { PerlTrials.trials [800].Execute (); }
+               [Test] public void Trial0801 () { PerlTrials.trials [801].Execute (); }
+               [Test] public void Trial0802 () { PerlTrials.trials [802].Execute (); }
+               [Test] public void Trial0803 () { PerlTrials.trials [803].Execute (); }
+               [Test] public void Trial0804 () { PerlTrials.trials [804].Execute (); }
+               [Test] public void Trial0805 () { PerlTrials.trials [805].Execute (); }
+               [Test] public void Trial0806 () { PerlTrials.trials [806].Execute (); }
+               [Test] public void Trial0807 () { PerlTrials.trials [807].Execute (); }
+               [Test] public void Trial0808 () { PerlTrials.trials [808].Execute (); }
+               [Test] public void Trial0809 () { PerlTrials.trials [809].Execute (); }
+               [Test] public void Trial0810 () { PerlTrials.trials [810].Execute (); }
+               [Test] public void Trial0811 () { PerlTrials.trials [811].Execute (); }
+               [Test] public void Trial0812 () { PerlTrials.trials [812].Execute (); }
+               [Test] public void Trial0813 () { PerlTrials.trials [813].Execute (); }
+               [Test] public void Trial0814 () { PerlTrials.trials [814].Execute (); }
+               [Test] public void Trial0815 () { PerlTrials.trials [815].Execute (); }
+               [Test] public void Trial0816 () { PerlTrials.trials [816].Execute (); }
+               [Test] public void Trial0817 () { PerlTrials.trials [817].Execute (); }
+               [Test] public void Trial0818 () { PerlTrials.trials [818].Execute (); }
+               [Test] public void Trial0819 () { PerlTrials.trials [819].Execute (); }
+               [Test] public void Trial0820 () { PerlTrials.trials [820].Execute (); }
+               [Test] public void Trial0821 () { PerlTrials.trials [821].Execute (); }
+               [Test] public void Trial0822 () { PerlTrials.trials [822].Execute (); }
+               [Test] public void Trial0823 () { PerlTrials.trials [823].Execute (); }
+               [Test] public void Trial0824 () { PerlTrials.trials [824].Execute (); }
+               [Test] public void Trial0825 () { PerlTrials.trials [825].Execute (); }
+               [Test] public void Trial0826 () { PerlTrials.trials [826].Execute (); }
+               [Test] public void Trial0827 () { PerlTrials.trials [827].Execute (); }
+               [Test] public void Trial0828 () { PerlTrials.trials [828].Execute (); }
+               [Test] public void Trial0829 () { PerlTrials.trials [829].Execute (); }
+               [Test] public void Trial0830 () { PerlTrials.trials [830].Execute (); }
+               [Test] public void Trial0831 () { PerlTrials.trials [831].Execute (); }
+               [Test] public void Trial0832 () { PerlTrials.trials [832].Execute (); }
+               [Test] public void Trial0833 () { PerlTrials.trials [833].Execute (); }
+               [Test] public void Trial0834 () { PerlTrials.trials [834].Execute (); }
+               [Test] public void Trial0835 () { PerlTrials.trials [835].Execute (); }
+               [Test] public void Trial0836 () { PerlTrials.trials [836].Execute (); }
+               [Test] public void Trial0837 () { PerlTrials.trials [837].Execute (); }
+               [Test] public void Trial0838 () { PerlTrials.trials [838].Execute (); }
+               [Test] public void Trial0839 () { PerlTrials.trials [839].Execute (); }
+               [Test] public void Trial0840 () { PerlTrials.trials [840].Execute (); }
+               [Test] public void Trial0841 () { PerlTrials.trials [841].Execute (); }
+               [Test] public void Trial0842 () { PerlTrials.trials [842].Execute (); }
+               [Test] public void Trial0843 () { PerlTrials.trials [843].Execute (); }
+               [Test] public void Trial0844 () { PerlTrials.trials [844].Execute (); }
+               [Test] public void Trial0845 () { PerlTrials.trials [845].Execute (); }
+               [Test] public void Trial0846 () { PerlTrials.trials [846].Execute (); }
+               [Test] public void Trial0847 () { PerlTrials.trials [847].Execute (); }
+               [Test] public void Trial0848 () { PerlTrials.trials [848].Execute (); }
+               [Test] public void Trial0849 () { PerlTrials.trials [849].Execute (); }
+               [Test] public void Trial0850 () { PerlTrials.trials [850].Execute (); }
+               [Test] public void Trial0851 () { PerlTrials.trials [851].Execute (); }
+               [Test] public void Trial0852 () { PerlTrials.trials [852].Execute (); }
+               [Test] public void Trial0853 () { PerlTrials.trials [853].Execute (); }
+               [Test] public void Trial0854 () { PerlTrials.trials [854].Execute (); }
+               [Test] public void Trial0855 () { PerlTrials.trials [855].Execute (); }
+               [Test] public void Trial0856 () { PerlTrials.trials [856].Execute (); }
+               [Test] public void Trial0857 () { PerlTrials.trials [857].Execute (); }
+               [Test] public void Trial0858 () { PerlTrials.trials [858].Execute (); }
+               [Test] public void Trial0859 () { PerlTrials.trials [859].Execute (); }
+               [Test] public void Trial0860 () { PerlTrials.trials [860].Execute (); }
+               [Test] public void Trial0861 () { PerlTrials.trials [861].Execute (); }
+               [Test] public void Trial0862 () { PerlTrials.trials [862].Execute (); }
+               [Test] public void Trial0863 () { PerlTrials.trials [863].Execute (); }
+               [Test] public void Trial0864 () { PerlTrials.trials [864].Execute (); }
+               [Test] public void Trial0865 () { PerlTrials.trials [865].Execute (); }
+               [Test] public void Trial0866 () { PerlTrials.trials [866].Execute (); }
+               [Test] public void Trial0867 () { PerlTrials.trials [867].Execute (); }
+               [Test] public void Trial0868 () { PerlTrials.trials [868].Execute (); }
+               [Test] public void Trial0869 () { PerlTrials.trials [869].Execute (); }
+               [Test] public void Trial0870 () { PerlTrials.trials [870].Execute (); }
+               [Test] public void Trial0871 () { PerlTrials.trials [871].Execute (); }
+               [Test] public void Trial0872 () { PerlTrials.trials [872].Execute (); }
+               [Test] public void Trial0873 () { PerlTrials.trials [873].Execute (); }
+               [Test] public void Trial0874 () { PerlTrials.trials [874].Execute (); }
+               [Test] public void Trial0875 () { PerlTrials.trials [875].Execute (); }
+               [Test] public void Trial0876 () { PerlTrials.trials [876].Execute (); }
+               [Test] public void Trial0877 () { PerlTrials.trials [877].Execute (); }
+               [Test] public void Trial0878 () { PerlTrials.trials [878].Execute (); }
+               [Test] public void Trial0879 () { PerlTrials.trials [879].Execute (); }
+               [Test] public void Trial0880 () { PerlTrials.trials [880].Execute (); }
+               [Test] public void Trial0881 () { PerlTrials.trials [881].Execute (); }
+               [Test] public void Trial0882 () { PerlTrials.trials [882].Execute (); }
+               [Test] public void Trial0883 () { PerlTrials.trials [883].Execute (); }
+               [Test] public void Trial0884 () { PerlTrials.trials [884].Execute (); }
+               [Test] public void Trial0885 () { PerlTrials.trials [885].Execute (); }
+               [Test] public void Trial0886 () { PerlTrials.trials [886].Execute (); }
+               [Test] public void Trial0887 () { PerlTrials.trials [887].Execute (); }
+               [Test] public void Trial0888 () { PerlTrials.trials [888].Execute (); }
+               [Test] public void Trial0889 () { PerlTrials.trials [889].Execute (); }
+               [Test] public void Trial0890 () { PerlTrials.trials [890].Execute (); }
+               [Test] public void Trial0891 () { PerlTrials.trials [891].Execute (); }
+               [Test] public void Trial0892 () { PerlTrials.trials [892].Execute (); }
+               [Test] public void Trial0893 () { PerlTrials.trials [893].Execute (); }
+               [Test] public void Trial0894 () { PerlTrials.trials [894].Execute (); }
+               [Test] public void Trial0895 () { PerlTrials.trials [895].Execute (); }
+               [Test] public void Trial0896 () { PerlTrials.trials [896].Execute (); }
+               [Test] public void Trial0897 () { PerlTrials.trials [897].Execute (); }
+               [Test] public void Trial0898 () { PerlTrials.trials [898].Execute (); }
+               [Test] public void Trial0899 () { PerlTrials.trials [899].Execute (); }
+               [Test] public void Trial0900 () { PerlTrials.trials [900].Execute (); }
+               [Test] public void Trial0901 () { PerlTrials.trials [901].Execute (); }
+               [Test] public void Trial0902 () { PerlTrials.trials [902].Execute (); }
+               [Test] public void Trial0903 () { PerlTrials.trials [903].Execute (); }
+               [Test] public void Trial0904 () { PerlTrials.trials [904].Execute (); }
+               [Test] public void Trial0905 () { PerlTrials.trials [905].Execute (); }
+               [Test] public void Trial0906 () { PerlTrials.trials [906].Execute (); }
+               [Test] public void Trial0907 () { PerlTrials.trials [907].Execute (); }
+               [Test] public void Trial0908 () { PerlTrials.trials [908].Execute (); }
+               [Test] public void Trial0909 () { PerlTrials.trials [909].Execute (); }
+               [Test] public void Trial0910 () { PerlTrials.trials [910].Execute (); }
+               [Test] public void Trial0911 () { PerlTrials.trials [911].Execute (); }
+               [Test] public void Trial0912 () { PerlTrials.trials [912].Execute (); }
+               [Test] public void Trial0913 () { PerlTrials.trials [913].Execute (); }
+               [Test] public void Trial0914 () { PerlTrials.trials [914].Execute (); }
+               [Test] public void Trial0915 () { PerlTrials.trials [915].Execute (); }
+               [Test] public void Trial0916 () { PerlTrials.trials [916].Execute (); }
+               [Test] public void Trial0917 () { PerlTrials.trials [917].Execute (); }
+               [Test] public void Trial0918 () { PerlTrials.trials [918].Execute (); }
+               [Test] public void Trial0919 () { PerlTrials.trials [919].Execute (); }
+               [Test] public void Trial0920 () { PerlTrials.trials [920].Execute (); }
+               [Test] public void Trial0921 () { PerlTrials.trials [921].Execute (); }
+               [Test] public void Trial0922 () { PerlTrials.trials [922].Execute (); }
+               [Test] public void Trial0923 () { PerlTrials.trials [923].Execute (); }
+               [Test] public void Trial0924 () { PerlTrials.trials [924].Execute (); }
+               [Test] public void Trial0925 () { PerlTrials.trials [925].Execute (); }
+               [Test] public void Trial0926 () { PerlTrials.trials [926].Execute (); }
+               [Test] public void Trial0927 () { PerlTrials.trials [927].Execute (); }
+               [Test] public void Trial0928 () { PerlTrials.trials [928].Execute (); }
+               [Test] public void Trial0929 () { PerlTrials.trials [929].Execute (); }
+               [Test] public void Trial0930 () { PerlTrials.trials [930].Execute (); }
+               [Test] public void Trial0931 () { PerlTrials.trials [931].Execute (); }
+               [Test] public void Trial0932 () { PerlTrials.trials [932].Execute (); }
+               [Test] public void Trial0933 () { PerlTrials.trials [933].Execute (); }
+               [Test] public void Trial0934 () { PerlTrials.trials [934].Execute (); }
+               [Test] public void Trial0935 () { PerlTrials.trials [935].Execute (); }
+               [Test] public void Trial0936 () { PerlTrials.trials [936].Execute (); }
+               [Test] public void Trial0937 () { PerlTrials.trials [937].Execute (); }
+               [Test] public void Trial0938 () { PerlTrials.trials [938].Execute (); }
+               [Test] public void Trial0939 () { PerlTrials.trials [939].Execute (); }
+               [Test] public void Trial0940 () { PerlTrials.trials [940].Execute (); }
+               [Test] public void Trial0941 () { PerlTrials.trials [941].Execute (); }
+               [Test] public void Trial0942 () { PerlTrials.trials [942].Execute (); }
+               [Test] public void Trial0943 () { PerlTrials.trials [943].Execute (); }
+               [Test] public void Trial0944 () { PerlTrials.trials [944].Execute (); }
+               [Test] public void Trial0945 () { PerlTrials.trials [945].Execute (); }
+               [Test] public void Trial0946 () { PerlTrials.trials [946].Execute (); }
+               [Test] public void Trial0947 () { PerlTrials.trials [947].Execute (); }
+               [Test] public void Trial0948 () { PerlTrials.trials [948].Execute (); }
+               [Test] public void Trial0949 () { PerlTrials.trials [949].Execute (); }
+               [Test] public void Trial0950 () { PerlTrials.trials [950].Execute (); }
+               [Test] public void Trial0951 () { PerlTrials.trials [951].Execute (); }
+               [Test] public void Trial0952 () { PerlTrials.trials [952].Execute (); }
+               [Test] public void Trial0953 () { PerlTrials.trials [953].Execute (); }
+               [Test] public void Trial0954 () { PerlTrials.trials [954].Execute (); }
+               [Test] public void Trial0955 () { PerlTrials.trials [955].Execute (); }
+               [Test] public void Trial0956 () { PerlTrials.trials [956].Execute (); }
+               [Test] public void Trial0957 () { PerlTrials.trials [957].Execute (); }
+               [Test] public void Trial0958 () { PerlTrials.trials [958].Execute (); }
+               [Test] public void Trial0959 () { PerlTrials.trials [959].Execute (); }
+               [Test] public void Trial0960 () { PerlTrials.trials [960].Execute (); }
+               [Test] public void Trial0961 () { PerlTrials.trials [961].Execute (); }
+               [Test] public void Trial0962 () { PerlTrials.trials [962].Execute (); }
+               [Test] public void Trial0963 () { PerlTrials.trials [963].Execute (); }
+               [Test] public void Trial0964 () { PerlTrials.trials [964].Execute (); }
+               [Test] public void Trial0965 () { PerlTrials.trials [965].Execute (); }
+               [Test] public void Trial0966 () { PerlTrials.trials [966].Execute (); }
+               [Test] public void Trial0967 () { PerlTrials.trials [967].Execute (); }
+               [Test] public void Trial0968 () { PerlTrials.trials [968].Execute (); }
+               [Test] public void Trial0969 () { PerlTrials.trials [969].Execute (); }
+               [Test] public void Trial0970 () { PerlTrials.trials [970].Execute (); }
+               [Test] public void Trial0971 () { PerlTrials.trials [971].Execute (); }
+               [Test] public void Trial0972 () { PerlTrials.trials [972].Execute (); }
+               [Test] public void Trial0973 () { PerlTrials.trials [973].Execute (); }
+               [Test] public void Trial0974 () { PerlTrials.trials [974].Execute (); }
+               [Test] public void Trial0975 () { PerlTrials.trials [975].Execute (); }
+               [Test] public void Trial0976 () { PerlTrials.trials [976].Execute (); }
+               [Test] public void Trial0977 () { PerlTrials.trials [977].Execute (); }
+               [Test] public void Trial0978 () { PerlTrials.trials [978].Execute (); }
+               [Test] public void Trial0979 () { PerlTrials.trials [979].Execute (); }
+               [Test] public void Trial0980 () { PerlTrials.trials [980].Execute (); }
+               [Test] public void Trial0981 () { PerlTrials.trials [981].Execute (); }
+               [Test] public void Trial0982 () { PerlTrials.trials [982].Execute (); }
+               [Test] public void Trial0983 () { PerlTrials.trials [983].Execute (); }
+               [Test] public void Trial0984 () { PerlTrials.trials [984].Execute (); }
+               [Test] public void Trial0985 () { PerlTrials.trials [985].Execute (); }
+               [Test] public void Trial0986 () { PerlTrials.trials [986].Execute (); }
+               [Test] public void Trial0987 () { PerlTrials.trials [987].Execute (); }
+               [Test] public void Trial0988 () { PerlTrials.trials [988].Execute (); }
+               [Test] public void Trial0989 () { PerlTrials.trials [989].Execute (); }
+               [Test] public void Trial0990 () { PerlTrials.trials [990].Execute (); }
+               [Test] public void Trial0991 () { PerlTrials.trials [991].Execute (); }
+       }
 }
index 8d8f2ceafd09d93d829b058e3f5c80f63c7cc480..6b3af6bd969a7cef583f7d1ce92e09d6cba8a273 100644 (file)
@@ -10,1030 +10,1030 @@ using System.Text.RegularExpressions;
 
 namespace MonoTests.System.Text.RegularExpressions {
 
-class PerlTrials {
-    // ported from perl-5.6.1/t/op/re_tests
+       class PerlTrials {
+               // ported from perl-5.6.1/t/op/re_tests
 
-    public static RegexTrial[] trials = new RegexTrial[] {
-        new RegexTrial (@"abc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"abc", RegexOptions.None, "xbc", "Fail."),
-        new RegexTrial (@"abc", RegexOptions.None, "axc", "Fail."),
-        new RegexTrial (@"abc", RegexOptions.None, "abx", "Fail."),
-        new RegexTrial (@"abc", RegexOptions.None, "xabcy", "Pass. Group[0]=(1,3)"),
-        new RegexTrial (@"abc", RegexOptions.None, "ababc", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"ab*c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab*bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab*bc", RegexOptions.None, "abbc", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab*bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@".{1}", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@".{3,4}", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab{0,}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab+bc", RegexOptions.None, "abbc", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab+bc", RegexOptions.None, "abc", "Fail."),
-        new RegexTrial (@"ab+bc", RegexOptions.None, "abq", "Fail."),
-        new RegexTrial (@"ab{1,}bc", RegexOptions.None, "abq", "Fail."),
-        new RegexTrial (@"ab+bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{1,}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{1,3}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{3,4}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{4,5}bc", RegexOptions.None, "abbbbc", "Fail."),
-        new RegexTrial (@"ab?bc", RegexOptions.None, "abbc", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab?bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab{0,1}bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab?bc", RegexOptions.None, "abbbbc", "Fail."),
-        new RegexTrial (@"ab?c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab{0,1}c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^abc$", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^abc$", RegexOptions.None, "abcc", "Fail."),
-        new RegexTrial (@"^abc", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^abc$", RegexOptions.None, "aabc", "Fail."),
-        new RegexTrial (@"abc$", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),
-        new RegexTrial (@"abc$", RegexOptions.None, "aabcd", "Fail."),
-        new RegexTrial (@"^", RegexOptions.None, "abc", "Pass. Group[0]=(0,0)"),
-        new RegexTrial (@"$", RegexOptions.None, "abc", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"a.c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a.c", RegexOptions.None, "axc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a.*c", RegexOptions.None, "axyzc", "Pass. Group[0]=(0,5)"),
-        new RegexTrial (@"a.*c", RegexOptions.None, "axyzd", "Fail."),
-        new RegexTrial (@"a[bc]d", RegexOptions.None, "abc", "Fail."),
-        new RegexTrial (@"a[bc]d", RegexOptions.None, "abd", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[b-d]e", RegexOptions.None, "abd", "Fail."),
-        new RegexTrial (@"a[b-d]e", RegexOptions.None, "ace", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[b-d]", RegexOptions.None, "aac", "Pass. Group[0]=(1,2)"),
-        new RegexTrial (@"a[-b]", RegexOptions.None, "a-", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a[b-]", RegexOptions.None, "a-", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a[b-a]", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"a[]b", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"a[", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"a]", RegexOptions.None, "a]", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a[]]b", RegexOptions.None, "a]b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[^bc]d", RegexOptions.None, "aed", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[^bc]d", RegexOptions.None, "abd", "Fail."),
-        new RegexTrial (@"a[^-b]c", RegexOptions.None, "adc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[^-b]c", RegexOptions.None, "a-c", "Fail."),
-        new RegexTrial (@"a[^]b]c", RegexOptions.None, "a]c", "Fail."),
-        new RegexTrial (@"a[^]b]c", RegexOptions.None, "adc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"\ba\b", RegexOptions.None, "a-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\ba\b", RegexOptions.None, "-a", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"\ba\b", RegexOptions.None, "-a-", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"\by\b", RegexOptions.None, "xy", "Fail."),
-        new RegexTrial (@"\by\b", RegexOptions.None, "yz", "Fail."),
-        new RegexTrial (@"\by\b", RegexOptions.None, "xyz", "Fail."),
-        new RegexTrial (@"\Ba\B", RegexOptions.None, "a-", "Fail."),
-        new RegexTrial (@"\Ba\B", RegexOptions.None, "-a", "Fail."),
-        new RegexTrial (@"\Ba\B", RegexOptions.None, "-a-", "Fail."),
-        new RegexTrial (@"\By\b", RegexOptions.None, "xy", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"\by\B", RegexOptions.None, "yz", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\By\B", RegexOptions.None, "xyz", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"\w", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\w", RegexOptions.None, "-", "Fail."),
-        new RegexTrial (@"\W", RegexOptions.None, "a", "Fail."),
-        new RegexTrial (@"\W", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"a\sb", RegexOptions.None, "a b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a\sb", RegexOptions.None, "a-b", "Fail."),
-        new RegexTrial (@"a\Sb", RegexOptions.None, "a b", "Fail."),
-        new RegexTrial (@"a\Sb", RegexOptions.None, "a-b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"\d", RegexOptions.None, "1", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\d", RegexOptions.None, "-", "Fail."),
-        new RegexTrial (@"\D", RegexOptions.None, "1", "Fail."),
-        new RegexTrial (@"\D", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"[\w]", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"[\w]", RegexOptions.None, "-", "Fail."),
-        new RegexTrial (@"[\W]", RegexOptions.None, "a", "Fail."),
-        new RegexTrial (@"[\W]", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"a[\s]b", RegexOptions.None, "a b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[\s]b", RegexOptions.None, "a-b", "Fail."),
-        new RegexTrial (@"a[\S]b", RegexOptions.None, "a b", "Fail."),
-        new RegexTrial (@"a[\S]b", RegexOptions.None, "a-b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"[\d]", RegexOptions.None, "1", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"[\d]", RegexOptions.None, "-", "Fail."),
-        new RegexTrial (@"[\D]", RegexOptions.None, "1", "Fail."),
-        new RegexTrial (@"[\D]", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"ab|cd", RegexOptions.None, "abc", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"ab|cd", RegexOptions.None, "abcd", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"()ef", RegexOptions.None, "def", "Pass. Group[0]=(1,2) Group[1]=(1,0)"),
-        new RegexTrial (@"*a", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"(*)b", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"$b", RegexOptions.None, "b", "Fail."),
-        new RegexTrial (@"a\", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"a\(b", RegexOptions.None, "a(b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a\(*b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a\(*b", RegexOptions.None, "a((b", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"a\\b", RegexOptions.None, "a\\b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"abc)", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"(abc", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"((a))", RegexOptions.None, "abc", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1)"),
-        new RegexTrial (@"(a)b(c)", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
-        new RegexTrial (@"a+b+c", RegexOptions.None, "aabbabc", "Pass. Group[0]=(4,3)"),
-        new RegexTrial (@"a{1,}b{1,}c", RegexOptions.None, "aabbabc", "Pass. Group[0]=(4,3)"),
-        new RegexTrial (@"a**", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"a.+?c", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"(a+|b)*", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
-        new RegexTrial (@"(a+|b){0,}", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
-        new RegexTrial (@"(a+|b)+", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
-        new RegexTrial (@"(a+|b){1,}", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
-        new RegexTrial (@"(a+|b)?", RegexOptions.None, "ab", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
-        new RegexTrial (@"(a+|b){0,1}", RegexOptions.None, "ab", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
-        new RegexTrial (@")(", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"[^ab]*", RegexOptions.None, "cde", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"abc", RegexOptions.None, "", "Fail."),
-        new RegexTrial (@"a*", RegexOptions.None, "", "Pass. Group[0]=(0,0)"),
-        new RegexTrial (@"([abc])*d", RegexOptions.None, "abbbcd", "Pass. Group[0]=(0,6) Group[1]=(0,1)(1,1)(2,1)(3,1)(4,1)"),
-        new RegexTrial (@"([abc])*bcd", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,1)"),
-        new RegexTrial (@"a|b|c|d|e", RegexOptions.None, "e", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.None, "ef", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"abcd*efg", RegexOptions.None, "abcdefg", "Pass. Group[0]=(0,7)"),
-        new RegexTrial (@"ab*", RegexOptions.None, "xabyabbbz", "Pass. Group[0]=(1,2)"),
-        new RegexTrial (@"ab*", RegexOptions.None, "xayabbbz", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"(ab|cd)e", RegexOptions.None, "abcde", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
-        new RegexTrial (@"[abhgefdc]ij", RegexOptions.None, "hij", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^(ab|cd)e", RegexOptions.None, "abcde", "Fail."),
-        new RegexTrial (@"(abc|)ef", RegexOptions.None, "abcdef", "Pass. Group[0]=(4,2) Group[1]=(4,0)"),
-        new RegexTrial (@"(a|b)c*d", RegexOptions.None, "abcd", "Pass. Group[0]=(1,3) Group[1]=(1,1)"),
-        new RegexTrial (@"(ab|ab*)bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
-        new RegexTrial (@"a([bc]*)c*", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,2)"),
-        new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
-        new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
-        new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
-        new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.None, "adcdcde", "Pass. Group[0]=(0,7)"),
-        new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.None, "adcdcde", "Fail."),
-        new RegexTrial (@"(ab|a)b*c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,2)"),
-        new RegexTrial (@"((a)(b)c)(d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]=(0,1) Group[3]=(1,1) Group[4]=(3,1)"),
-        new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.None, "alpha", "Pass. Group[0]=(0,5)"),
-        new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.None, "abh", "Pass. Group[0]=(1,2) Group[1]="),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "effgz", "Pass. Group[0]=(0,5) Group[1]=(0,5) Group[2]="),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "ij", "Pass. Group[0]=(0,2) Group[1]=(0,2) Group[2]=(1,1)"),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "effg", "Fail."),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "bcdd", "Fail."),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "reffgz", "Pass. Group[0]=(1,5) Group[1]=(1,5) Group[2]="),
-        new RegexTrial (@"((((((((((a))))))))))", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
-        new RegexTrial (@"((((((((((a))))))))))\10", RegexOptions.None, "aa", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
-        new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.None, "aa", "Fail."),
-        new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.None, "a!", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
-        new RegexTrial (@"(((((((((a)))))))))", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1)"),
-        new RegexTrial (@"multiple words of text", RegexOptions.None, "uh-uh", "Fail."),
-        new RegexTrial (@"multiple words", RegexOptions.None, "multiple words, yeah", "Pass. Group[0]=(0,14)"),
-        new RegexTrial (@"(.*)c(.*)", RegexOptions.None, "abcde", "Pass. Group[0]=(0,5) Group[1]=(0,2) Group[2]=(3,2)"),
-        new RegexTrial (@"\((.*), (.*)\)", RegexOptions.None, "(a, b)", "Pass. Group[0]=(0,6) Group[1]=(1,1) Group[2]=(4,1)"),
-        new RegexTrial (@"[k]", RegexOptions.None, "ab", "Fail."),
-        new RegexTrial (@"abcd", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"a(bc)d", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
-        new RegexTrial (@"a[-]?c", RegexOptions.None, "ac", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"(abc)\1", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
-        new RegexTrial (@"([a-c]*)\1", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
-        new RegexTrial (@"\1", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"\2", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"(a)|\1", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
-        new RegexTrial (@"(a)|\1", RegexOptions.None, "x", "Fail."),
-        new RegexTrial (@"(a)|\2", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"(([a-c])b*?\2)*", RegexOptions.None, "ababbbcbc", "Pass. Group[0]=(0,5) Group[1]=(0,3)(3,2) Group[2]=(0,1)(3,1)"),
-        new RegexTrial (@"(([a-c])b*?\2){3}", RegexOptions.None, "ababbbcbc", "Pass. Group[0]=(0,9) Group[1]=(0,3)(3,3)(6,3) Group[2]=(0,1)(3,1)(6,1)"),
-        new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.None, "aaxabxbaxbbx", "Fail."),
-        new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.None, "aaaxabaxbaaxbbax", "Pass. Group[0]=(12,4) Group[1]=(12,4) Group[2]=(12,1) Group[3]=(14,1)"),
-        new RegexTrial (@"((\3|b)\2(a)){2,}", RegexOptions.None, "bbaababbabaaaaabbaaaabba", "Pass. Group[0]=(15,9) Group[1]=(15,3)(18,3)(21,3) Group[2]=(15,1)(18,1)(21,1) Group[3]=(17,1)(20,1)(23,1)"),
-        new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"abc", RegexOptions.IgnoreCase, "XBC", "Fail."),
-        new RegexTrial (@"abc", RegexOptions.IgnoreCase, "AXC", "Fail."),
-        new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABX", "Fail."),
-        new RegexTrial (@"abc", RegexOptions.IgnoreCase, "XABCY", "Pass. Group[0]=(1,3)"),
-        new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABABC", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"ab*c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab*bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab*bc", RegexOptions.IgnoreCase, "ABBC", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab*?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{0,}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab+?bc", RegexOptions.IgnoreCase, "ABBC", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABC", "Fail."),
-        new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABQ", "Fail."),
-        new RegexTrial (@"ab{1,}bc", RegexOptions.IgnoreCase, "ABQ", "Fail."),
-        new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{1,}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{1,3}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{3,4}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{4,5}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Fail."),
-        new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABBC", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab{0,1}?bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABBBBC", "Fail."),
-        new RegexTrial (@"ab??c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab{0,1}?c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "ABCC", "Fail."),
-        new RegexTrial (@"^abc", RegexOptions.IgnoreCase, "ABCC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "AABC", "Fail."),
-        new RegexTrial (@"abc$", RegexOptions.IgnoreCase, "AABC", "Pass. Group[0]=(1,3)"),
-        new RegexTrial (@"^", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,0)"),
-        new RegexTrial (@"$", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"a.c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a.c", RegexOptions.IgnoreCase, "AXC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a.*?c", RegexOptions.IgnoreCase, "AXYZC", "Pass. Group[0]=(0,5)"),
-        new RegexTrial (@"a.*c", RegexOptions.IgnoreCase, "AXYZD", "Fail."),
-        new RegexTrial (@"a[bc]d", RegexOptions.IgnoreCase, "ABC", "Fail."),
-        new RegexTrial (@"a[bc]d", RegexOptions.IgnoreCase, "ABD", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[b-d]e", RegexOptions.IgnoreCase, "ABD", "Fail."),
-        new RegexTrial (@"a[b-d]e", RegexOptions.IgnoreCase, "ACE", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[b-d]", RegexOptions.IgnoreCase, "AAC", "Pass. Group[0]=(1,2)"),
-        new RegexTrial (@"a[-b]", RegexOptions.IgnoreCase, "A-", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a[b-]", RegexOptions.IgnoreCase, "A-", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a[b-a]", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"a[]b", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"a[", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"a]", RegexOptions.IgnoreCase, "A]", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a[]]b", RegexOptions.IgnoreCase, "A]B", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[^bc]d", RegexOptions.IgnoreCase, "AED", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[^bc]d", RegexOptions.IgnoreCase, "ABD", "Fail."),
-        new RegexTrial (@"a[^-b]c", RegexOptions.IgnoreCase, "ADC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[^-b]c", RegexOptions.IgnoreCase, "A-C", "Fail."),
-        new RegexTrial (@"a[^]b]c", RegexOptions.IgnoreCase, "A]C", "Fail."),
-        new RegexTrial (@"a[^]b]c", RegexOptions.IgnoreCase, "ADC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab|cd", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"ab|cd", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"()ef", RegexOptions.IgnoreCase, "DEF", "Pass. Group[0]=(1,2) Group[1]=(1,0)"),
-        new RegexTrial (@"*a", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"(*)b", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"$b", RegexOptions.IgnoreCase, "B", "Fail."),
-        new RegexTrial (@"a\", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"a\(b", RegexOptions.IgnoreCase, "A(B", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a\(*b", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a\(*b", RegexOptions.IgnoreCase, "A((B", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"a\\b", RegexOptions.IgnoreCase, "A\\B", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"abc)", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"(abc", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"((a))", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1)"),
-        new RegexTrial (@"(a)b(c)", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
-        new RegexTrial (@"a+b+c", RegexOptions.IgnoreCase, "AABBABC", "Pass. Group[0]=(4,3)"),
-        new RegexTrial (@"a{1,}b{1,}c", RegexOptions.IgnoreCase, "AABBABC", "Pass. Group[0]=(4,3)"),
-        new RegexTrial (@"a**", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"a.+?c", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a.*?c", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a.{0,5}?c", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"(a+|b)*", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
-        new RegexTrial (@"(a+|b){0,}", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
-        new RegexTrial (@"(a+|b)+", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
-        new RegexTrial (@"(a+|b){1,}", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
-        new RegexTrial (@"(a+|b)?", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
-        new RegexTrial (@"(a+|b){0,1}", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
-        new RegexTrial (@"(a+|b){0,1}?", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,0) Group[1]="),
-        new RegexTrial (@")(", RegexOptions.IgnoreCase, "-", "Error."),
-        new RegexTrial (@"[^ab]*", RegexOptions.IgnoreCase, "CDE", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"abc", RegexOptions.IgnoreCase, "", "Fail."),
-        new RegexTrial (@"a*", RegexOptions.IgnoreCase, "", "Pass. Group[0]=(0,0)"),
-        new RegexTrial (@"([abc])*d", RegexOptions.IgnoreCase, "ABBBCD", "Pass. Group[0]=(0,6) Group[1]=(0,1)(1,1)(2,1)(3,1)(4,1)"),
-        new RegexTrial (@"([abc])*bcd", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(0,1)"),
-        new RegexTrial (@"a|b|c|d|e", RegexOptions.IgnoreCase, "E", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.IgnoreCase, "EF", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"abcd*efg", RegexOptions.IgnoreCase, "ABCDEFG", "Pass. Group[0]=(0,7)"),
-        new RegexTrial (@"ab*", RegexOptions.IgnoreCase, "XABYABBBZ", "Pass. Group[0]=(1,2)"),
-        new RegexTrial (@"ab*", RegexOptions.IgnoreCase, "XAYABBBZ", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"(ab|cd)e", RegexOptions.IgnoreCase, "ABCDE", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
-        new RegexTrial (@"[abhgefdc]ij", RegexOptions.IgnoreCase, "HIJ", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^(ab|cd)e", RegexOptions.IgnoreCase, "ABCDE", "Fail."),
-        new RegexTrial (@"(abc|)ef", RegexOptions.IgnoreCase, "ABCDEF", "Pass. Group[0]=(4,2) Group[1]=(4,0)"),
-        new RegexTrial (@"(a|b)c*d", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(1,3) Group[1]=(1,1)"),
-        new RegexTrial (@"(ab|ab*)bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
-        new RegexTrial (@"a([bc]*)c*", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(1,2)"),
-        new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
-        new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
-        new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
-        new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.IgnoreCase, "ADCDCDE", "Pass. Group[0]=(0,7)"),
-        new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.IgnoreCase, "ADCDCDE", "Fail."),
-        new RegexTrial (@"(ab|a)b*c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(0,2)"),
-        new RegexTrial (@"((a)(b)c)(d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]=(0,1) Group[3]=(1,1) Group[4]=(3,1)"),
-        new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.IgnoreCase, "ALPHA", "Pass. Group[0]=(0,5)"),
-        new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.IgnoreCase, "ABH", "Pass. Group[0]=(1,2) Group[1]="),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "EFFGZ", "Pass. Group[0]=(0,5) Group[1]=(0,5) Group[2]="),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "IJ", "Pass. Group[0]=(0,2) Group[1]=(0,2) Group[2]=(1,1)"),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "EFFG", "Fail."),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "BCDD", "Fail."),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "REFFGZ", "Pass. Group[0]=(1,5) Group[1]=(1,5) Group[2]="),
-        new RegexTrial (@"((((((((((a))))))))))", RegexOptions.IgnoreCase, "A", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
-        new RegexTrial (@"((((((((((a))))))))))\10", RegexOptions.IgnoreCase, "AA", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
-        new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.IgnoreCase, "AA", "Fail."),
-        new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.IgnoreCase, "A!", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
-        new RegexTrial (@"(((((((((a)))))))))", RegexOptions.IgnoreCase, "A", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1)"),
-        new RegexTrial (@"(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))", RegexOptions.IgnoreCase, "A", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
-        new RegexTrial (@"(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))", RegexOptions.IgnoreCase, "C", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
-        new RegexTrial (@"multiple words of text", RegexOptions.IgnoreCase, "UH-UH", "Fail."),
-        new RegexTrial (@"multiple words", RegexOptions.IgnoreCase, "MULTIPLE WORDS, YEAH", "Pass. Group[0]=(0,14)"),
-        new RegexTrial (@"(.*)c(.*)", RegexOptions.IgnoreCase, "ABCDE", "Pass. Group[0]=(0,5) Group[1]=(0,2) Group[2]=(3,2)"),
-        new RegexTrial (@"\((.*), (.*)\)", RegexOptions.IgnoreCase, "(A, B)", "Pass. Group[0]=(0,6) Group[1]=(1,1) Group[2]=(4,1)"),
-        new RegexTrial (@"[k]", RegexOptions.IgnoreCase, "AB", "Fail."),
-        new RegexTrial (@"abcd", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"a(bc)d", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
-        new RegexTrial (@"a[-]?c", RegexOptions.IgnoreCase, "AC", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"(abc)\1", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
-        new RegexTrial (@"([a-c]*)\1", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
-        new RegexTrial (@"a(?!b).", RegexOptions.None, "abad", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"a(?=d).", RegexOptions.None, "abad", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"a(?=c|d).", RegexOptions.None, "abad", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"a(?:b|c|d)(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
-        new RegexTrial (@"a(?:b|c|d)*(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
-        new RegexTrial (@"a(?:b|c|d)+?(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
-        new RegexTrial (@"a(?:b|c|d)+?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
-        new RegexTrial (@"a(?:b|c|d)+(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
-        new RegexTrial (@"a(?:b|c|d){2}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,4) Group[1]=(3,1)"),
-        new RegexTrial (@"a(?:b|c|d){4,5}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,7) Group[1]=(6,1)"),
-        new RegexTrial (@"a(?:b|c|d){4,5}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,6) Group[1]=(5,1)"),
-        new RegexTrial (@"((foo)|(bar))*", RegexOptions.None, "foobar", "Pass. Group[0]=(0,6) Group[1]=(0,3)(3,3) Group[2]=(0,3) Group[3]=(3,3)"),
-        new RegexTrial (@":(?:", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"a(?:b|c|d){6,7}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
-        new RegexTrial (@"a(?:b|c|d){6,7}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
-        new RegexTrial (@"a(?:b|c|d){5,6}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
-        new RegexTrial (@"a(?:b|c|d){5,6}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,7) Group[1]=(6,1)"),
-        new RegexTrial (@"a(?:b|c|d){5,7}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
-        new RegexTrial (@"a(?:b|c|d){5,7}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,7) Group[1]=(6,1)"),
-        new RegexTrial (@"a(?:b|(c|e){1,2}?|d)+?(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(1,1) Group[2]=(2,1)"),
-        new RegexTrial (@"^(.+)?B", RegexOptions.None, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"^([^a-z])|(\^)$", RegexOptions.None, ".", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]="),
-        new RegexTrial (@"^[<>]&", RegexOptions.None, "<&OUT", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,10) Group[1]=(0,1)(1,2)(3,3)(6,4)"),
-        new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaa", "Fail."),
-        new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaaaa", "Fail."),
-        new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,10) Group[1]=(0,1)(1,2)(3,3)(6,4)"),
-        new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaa", "Fail."),
-        new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaaaa", "Fail."),
-        new RegexTrial (@"((a{4})+)", RegexOptions.None, "aaaaaaaaa", "Pass. Group[0]=(0,8) Group[1]=(0,8) Group[2]=(0,4)(4,4)"),
-        new RegexTrial (@"(((aa){2})+)", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,8) Group[1]=(0,8) Group[2]=(0,4)(4,4) Group[3]=(0,2)(2,2)(4,2)(6,2)"),
-        new RegexTrial (@"(((a{2}){2})+)", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,8) Group[1]=(0,8) Group[2]=(0,4)(4,4) Group[3]=(0,2)(2,2)(4,2)(6,2)"),
-        new RegexTrial (@"(?:(f)(o)(o)|(b)(a)(r))*", RegexOptions.None, "foobar", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(1,1) Group[3]=(2,1) Group[4]=(3,1) Group[5]=(4,1) Group[6]=(5,1)"),
-        new RegexTrial (@"(?<=a)b", RegexOptions.None, "ab", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"(?<=a)b", RegexOptions.None, "cb", "Fail."),
-        new RegexTrial (@"(?<=a)b", RegexOptions.None, "b", "Fail."),
-        new RegexTrial (@"(?<!c)b", RegexOptions.None, "ab", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"(?<!c)b", RegexOptions.None, "cb", "Fail."),
-        new RegexTrial (@"(?<!c)b", RegexOptions.None, "b", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"(?<!c)b", RegexOptions.None, "b", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"(?<%)b", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"(?:..)*a", RegexOptions.None, "aba", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"(?:..)*?a", RegexOptions.None, "aba", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"^(?:b|a(?=(.)))*\1", RegexOptions.None, "abc", "Pass. Group[0]=(0,2) Group[1]=(1,1)"),
-        new RegexTrial (@"^(){3,5}", RegexOptions.None, "abc", "Pass. Group[0]=(0,0) Group[1]=(0,0)(0,0)(0,0)"),
-        new RegexTrial (@"^(a+)*ax", RegexOptions.None, "aax", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
-        new RegexTrial (@"^((a|b)+)*ax", RegexOptions.None, "aax", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(0,1)"),
-        new RegexTrial (@"^((a|bc)+)*ax", RegexOptions.None, "aax", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(0,1)"),
-        new RegexTrial (@"(a|x)*ab", RegexOptions.None, "cab", "Pass. Group[0]=(1,2) Group[1]="),
-        new RegexTrial (@"(a)*ab", RegexOptions.None, "cab", "Pass. Group[0]=(1,2) Group[1]="),
-        new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?i)a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?i)a)b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "aB", "Fail."),
-        new RegexTrial (@"((?i)a)b", RegexOptions.None, "aB", "Fail."),
-        new RegexTrial (@"(?i:a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?i:a))b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?i:a)b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?i:a))b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?i:a)b", RegexOptions.None, "aB", "Fail."),
-        new RegexTrial (@"((?i:a))b", RegexOptions.None, "aB", "Fail."),
-        new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "Ab", "Fail."),
-        new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "Ab", "Fail."),
-        new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "AB", "Fail."),
-        new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "AB", "Fail."),
-        new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "Ab", "Fail."),
-        new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "Ab", "Fail."),
-        new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "AB", "Fail."),
-        new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "AB", "Fail."),
-        new RegexTrial (@"((?-i:a.))b", RegexOptions.IgnoreCase, "a\nB", "Fail."),
-        new RegexTrial (@"((?s-i:a.))b", RegexOptions.IgnoreCase, "a\nB", "Pass. Group[0]=(0,3) Group[1]=(0,2)"),
-        new RegexTrial (@"((?s-i:a.))b", RegexOptions.IgnoreCase, "B\nB", "Fail."),
-        new RegexTrial (@"(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))", RegexOptions.None, "cabbbb", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))", RegexOptions.None, "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "Pass. Group[0]=(0,41)"),
-        new RegexTrial (@"(ab)\d\1", RegexOptions.IgnoreCase, "Ab4ab", "Pass. Group[0]=(0,5) Group[1]=(0,2)"),
-        new RegexTrial (@"(ab)\d\1", RegexOptions.IgnoreCase, "ab4Ab", "Pass. Group[0]=(0,5) Group[1]=(0,2)"),
-        new RegexTrial (@"foo\w*\d{4}baz", RegexOptions.None, "foobar1234baz", "Pass. Group[0]=(0,13)"),
-        new RegexTrial (@"x(~~)*(?:(?:F)?)?", RegexOptions.None, "x~~", "Pass. Group[0]=(0,3) Group[1]=(1,2)"),
-        new RegexTrial (@"^a(?#xxx){3}c", RegexOptions.None, "aaac", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"(?<![cd])b", RegexOptions.None, "dbcb", "Fail."),
-        new RegexTrial (@"(?<![cd])[ab]", RegexOptions.None, "dbaacb", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"(?<!(c|d))b", RegexOptions.None, "dbcb", "Fail."),
-        new RegexTrial (@"(?<!(c|d))[ab]", RegexOptions.None, "dbaacb", "Pass. Group[0]=(2,1) Group[1]="),
-        new RegexTrial (@"(?<!cd)[ab]", RegexOptions.None, "cdaccb", "Pass. Group[0]=(5,1)"),
-        new RegexTrial (@"^(?:a?b?)*$", RegexOptions.None, "a--", "Fail."),
-        new RegexTrial (@"((?s)^a(.))((?m)^b$)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(0,3) Group[1]=(0,2) Group[2]=(1,1) Group[3]=(2,1)"),
-        new RegexTrial (@"((?m)^b$)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
-        new RegexTrial (@"(?m)^b", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"(?m)^(b)", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
-        new RegexTrial (@"((?m)^b)", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
-        new RegexTrial (@"\n((?m)^b)", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(1,2) Group[1]=(2,1)"),
-        new RegexTrial (@"((?s).)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(3,2) Group[1]=(3,1)"),
-        new RegexTrial (@"((?s).)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(3,2) Group[1]=(3,1)"),
-        new RegexTrial (@"((?s)b.)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
-        new RegexTrial (@"((?s)b.)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
-        new RegexTrial (@"^b", RegexOptions.None, "a\nb\nc\n", "Fail."),
-        new RegexTrial (@"()^b", RegexOptions.None, "a\nb\nc\n", "Fail."),
-        new RegexTrial (@"((?m)^b)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
-        new RegexTrial (@"(x)?(?(1)a|b)", RegexOptions.None, "a", "Fail."),
-        new RegexTrial (@"(x)?(?(1)b|a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]="),
-        new RegexTrial (@"()?(?(1)b|a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]="),
-        new RegexTrial (@"()(?(1)b|a)", RegexOptions.None, "a", "Fail."),
-        new RegexTrial (@"()?(?(1)a|b)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,0)"),
-        new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "(blah)", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(5,1)"),
-        new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "blah", "Pass. Group[0]=(0,4) Group[1]= Group[2]="),
-        new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "blah)", "Fail."),
-        new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "(blah", "Fail."),
-        new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "(blah)", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(5,1)"),
-        new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "blah", "Pass. Group[0]=(0,4) Group[1]= Group[2]="),
-        new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "blah)", "Fail."),
-        new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "(blah", "Fail."),
-        new RegexTrial (@"(?(1)a|b|c)", RegexOptions.None, "a", "Error."),
-        new RegexTrial (@"(?(?!a)a|b)", RegexOptions.None, "a", "Fail."),
-        new RegexTrial (@"(?(?!a)b|a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"(?(?=a)b|a)", RegexOptions.None, "a", "Fail."),
-        new RegexTrial (@"(?(?=a)a|b)", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"(?=(a+?))(\1ab)", RegexOptions.None, "aaab", "Pass. Group[0]=(1,3) Group[1]=(1,1) Group[2]=(1,3)"),
-        new RegexTrial (@"^(?=(a+?))\1ab", RegexOptions.None, "aaab", "Fail."),
-        new RegexTrial (@"(\w+:)+", RegexOptions.None, "one:", "Pass. Group[0]=(0,4) Group[1]=(0,4)"),
-        new RegexTrial (@"$(?<=^(a))", RegexOptions.None, "a", "Pass. Group[0]=(1,0) Group[1]=(0,1)"),
-        new RegexTrial (@"(?=(a+?))(\1ab)", RegexOptions.None, "aaab", "Pass. Group[0]=(1,3) Group[1]=(1,1) Group[2]=(1,3)"),
-        new RegexTrial (@"^(?=(a+?))\1ab", RegexOptions.None, "aaab", "Fail."),
-        new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd:", "Fail."),
-        new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]= Group[2]=(0,4)"),
-        new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "xy:z:::abcd", "Pass. Group[0]=(0,11) Group[1]=(0,7) Group[2]=(7,4)"),
-        new RegexTrial (@"^[^bcd]*(c+)", RegexOptions.None, "aexycd", "Pass. Group[0]=(0,5) Group[1]=(4,1)"),
-        new RegexTrial (@"(a*)b+", RegexOptions.None, "caab", "Pass. Group[0]=(1,3) Group[1]=(1,2)"),
-        new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd:", "Fail."),
-        new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]= Group[2]=(0,4)"),
-        new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "xy:z:::abcd", "Pass. Group[0]=(0,11) Group[1]=(0,7) Group[2]=(7,4)"),
-        new RegexTrial (@"^[^bcd]*(c+)", RegexOptions.None, "aexycd", "Pass. Group[0]=(0,5) Group[1]=(4,1)"),
-        new RegexTrial (@"(>a+)ab", RegexOptions.None, "aaab", "Fail."),
-        new RegexTrial (@"(?>a+)b", RegexOptions.None, "aaab", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"([[:]+)", RegexOptions.None, "a:[b]:", "Pass. Group[0]=(1,2) Group[1]=(1,2)"),
-        new RegexTrial (@"([[=]+)", RegexOptions.None, "a=[b]=", "Pass. Group[0]=(1,2) Group[1]=(1,2)"),
-        new RegexTrial (@"([[.]+)", RegexOptions.None, "a.[b].", "Pass. Group[0]=(1,2) Group[1]=(1,2)"),
-        new RegexTrial (@"[a[:]b[:c]", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"[a[:]b[:c]", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"((?>a+)b)", RegexOptions.None, "aaab", "Pass. Group[0]=(0,4) Group[1]=(0,4)"),
-        new RegexTrial (@"(?>(a+))b", RegexOptions.None, "aaab", "Pass. Group[0]=(0,4) Group[1]=(0,3)"),
-        new RegexTrial (@"((?>[^()]+)|\([^()]*\))+", RegexOptions.None, "((abc(ade)ufh()()x", "Pass. Group[0]=(2,16) Group[1]=(2,3)(5,5)(10,3)(13,2)(15,2)(17,1)"),
-        new RegexTrial (@"(?<=x+)", RegexOptions.None, "xxxxy", "Pass. Group[0]=(1,0)"),
-        new RegexTrial (@"a{37,17}", RegexOptions.None, "-", "Error."),
-        new RegexTrial (@"\Z", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"\z", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(4,0)"),
-        new RegexTrial (@"$", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"\Z", RegexOptions.None, "b\na\n", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"\z", RegexOptions.None, "b\na\n", "Pass. Group[0]=(4,0)"),
-        new RegexTrial (@"$", RegexOptions.None, "b\na\n", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"\Z", RegexOptions.None, "b\na", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"\z", RegexOptions.None, "b\na", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"$", RegexOptions.None, "b\na", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"\Z", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"\z", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(4,0)"),
-        new RegexTrial (@"$", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(1,0)"),
-        new RegexTrial (@"\Z", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"\z", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(4,0)"),
-        new RegexTrial (@"$", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(1,0)"),
-        new RegexTrial (@"\Z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"\z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"$", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(1,0)"),
-        new RegexTrial (@"a\Z", RegexOptions.None, "a\nb\n", "Fail."),
-        new RegexTrial (@"a\z", RegexOptions.None, "a\nb\n", "Fail."),
-        new RegexTrial (@"a$", RegexOptions.None, "a\nb\n", "Fail."),
-        new RegexTrial (@"a\Z", RegexOptions.None, "b\na\n", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"a\z", RegexOptions.None, "b\na\n", "Fail."),
-        new RegexTrial (@"a$", RegexOptions.None, "b\na\n", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"a\Z", RegexOptions.None, "b\na", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"a\z", RegexOptions.None, "b\na", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"a$", RegexOptions.None, "b\na", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"a\z", RegexOptions.Multiline, "a\nb\n", "Fail."),
-        new RegexTrial (@"a$", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"a\Z", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"a\z", RegexOptions.Multiline, "b\na\n", "Fail."),
-        new RegexTrial (@"a$", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"a\Z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"a\z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"a$", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"aa\Z", RegexOptions.None, "aa\nb\n", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.None, "aa\nb\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.None, "aa\nb\n", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.None, "b\naa\n", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa\z", RegexOptions.None, "b\naa\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.None, "b\naa\n", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa\Z", RegexOptions.None, "b\naa", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa\z", RegexOptions.None, "b\naa", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa$", RegexOptions.None, "b\naa", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa\z", RegexOptions.Multiline, "aa\nb\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.Multiline, "aa\nb\n", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\naa\n", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\naa\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.Multiline, "b\naa\n", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\naa", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\naa", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa$", RegexOptions.Multiline, "b\naa", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"aa\Z", RegexOptions.None, "ac\nb\n", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.None, "ac\nb\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.None, "ac\nb\n", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.None, "b\nac\n", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.None, "b\nac\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.None, "b\nac\n", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.None, "b\nac", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.None, "b\nac", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.None, "b\nac", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.Multiline, "ac\nb\n", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nac\n", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nac\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nac\n", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nac", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nac", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nac", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.None, "ca\nb\n", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.None, "ca\nb\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.None, "ca\nb\n", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.None, "b\nca\n", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.None, "b\nca\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.None, "b\nca\n", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.None, "b\nca", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.None, "b\nca", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.None, "b\nca", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.Multiline, "ca\nb\n", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nca\n", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nca\n", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nca\n", "Fail."),
-        new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nca", "Fail."),
-        new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nca", "Fail."),
-        new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nca", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.None, "ab\nb\n", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.None, "ab\nb\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.None, "ab\nb\n", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.None, "b\nab\n", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab\z", RegexOptions.None, "b\nab\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.None, "b\nab\n", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab\Z", RegexOptions.None, "b\nab", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab\z", RegexOptions.None, "b\nab", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab$", RegexOptions.None, "b\nab", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab\z", RegexOptions.Multiline, "ab\nb\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.Multiline, "ab\nb\n", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nab\n", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nab\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nab\n", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nab", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nab", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nab", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"ab\Z", RegexOptions.None, "ac\nb\n", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.None, "ac\nb\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.None, "ac\nb\n", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.None, "b\nac\n", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.None, "b\nac\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.None, "b\nac\n", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.None, "b\nac", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.None, "b\nac", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.None, "b\nac", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.Multiline, "ac\nb\n", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nac\n", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nac\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nac\n", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nac", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nac", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nac", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.None, "ca\nb\n", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.None, "ca\nb\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.None, "ca\nb\n", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.None, "b\nca\n", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.None, "b\nca\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.None, "b\nca\n", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.None, "b\nca", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.None, "b\nca", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.None, "b\nca", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.Multiline, "ca\nb\n", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nca\n", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nca\n", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nca\n", "Fail."),
-        new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nca", "Fail."),
-        new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nca", "Fail."),
-        new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nca", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.None, "abb\nb\n", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.None, "abb\nb\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.None, "abb\nb\n", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.None, "b\nabb\n", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb\z", RegexOptions.None, "b\nabb\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.None, "b\nabb\n", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb\Z", RegexOptions.None, "b\nabb", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb\z", RegexOptions.None, "b\nabb", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb$", RegexOptions.None, "b\nabb", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb\z", RegexOptions.Multiline, "abb\nb\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.Multiline, "abb\nb\n", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nabb\n", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nabb\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nabb\n", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nabb", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nabb", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nabb", "Pass. Group[0]=(2,3)"),
-        new RegexTrial (@"abb\Z", RegexOptions.None, "ac\nb\n", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.None, "ac\nb\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.None, "ac\nb\n", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.None, "b\nac\n", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.None, "b\nac\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.None, "b\nac\n", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.None, "b\nac", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.None, "b\nac", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.None, "b\nac", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.Multiline, "ac\nb\n", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nac\n", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nac\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nac\n", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nac", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nac", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nac", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.None, "ca\nb\n", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.None, "ca\nb\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.None, "ca\nb\n", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.None, "b\nca\n", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.None, "b\nca\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.None, "b\nca\n", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.None, "b\nca", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.None, "b\nca", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.None, "b\nca", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.Multiline, "ca\nb\n", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nca\n", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nca\n", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nca\n", "Fail."),
-        new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nca", "Fail."),
-        new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nca", "Fail."),
-        new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nca", "Fail."),
-        new RegexTrial (@"(^|x)(c)", RegexOptions.None, "ca", "Pass. Group[0]=(0,1) Group[1]=(0,0) Group[2]=(0,1)"),
-        new RegexTrial (@"a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz", RegexOptions.None, "x", "Fail."),
-        new RegexTrial (@"round\(((?>[^()]+))\)", RegexOptions.None, "_I(round(xs * sz),1)", "Pass. Group[0]=(3,14) Group[1]=(9,7)"),
-        new RegexTrial (@"foo.bart", RegexOptions.None, "foo.bart", "Pass. Group[0]=(0,8)"),
-        new RegexTrial (@"^d[x][x][x]", RegexOptions.Multiline, "abcd\ndxxx", "Pass. Group[0]=(5,4)"),
-        new RegexTrial (@".X(.+)+X", RegexOptions.None, "bbbbXcXaaaaaaaa", "Pass. Group[0]=(3,4) Group[1]=(5,1)"),
-        new RegexTrial (@".X(.+)+XX", RegexOptions.None, "bbbbXcXXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(5,1)"),
-        new RegexTrial (@".XX(.+)+X", RegexOptions.None, "bbbbXXcXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(6,1)"),
-        new RegexTrial (@".X(.+)+X", RegexOptions.None, "bbbbXXaaaaaaaaa", "Fail."),
-        new RegexTrial (@".X(.+)+XX", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
-        new RegexTrial (@".XX(.+)+X", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
-        new RegexTrial (@".X(.+)+[X]", RegexOptions.None, "bbbbXcXaaaaaaaa", "Pass. Group[0]=(3,4) Group[1]=(5,1)"),
-        new RegexTrial (@".X(.+)+[X][X]", RegexOptions.None, "bbbbXcXXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(5,1)"),
-        new RegexTrial (@".XX(.+)+[X]", RegexOptions.None, "bbbbXXcXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(6,1)"),
-        new RegexTrial (@".X(.+)+[X]", RegexOptions.None, "bbbbXXaaaaaaaaa", "Fail."),
-        new RegexTrial (@".X(.+)+[X][X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
-        new RegexTrial (@".XX(.+)+[X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
-        new RegexTrial (@".[X](.+)+[X]", RegexOptions.None, "bbbbXcXaaaaaaaa", "Pass. Group[0]=(3,4) Group[1]=(5,1)"),
-        new RegexTrial (@".[X](.+)+[X][X]", RegexOptions.None, "bbbbXcXXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(5,1)"),
-        new RegexTrial (@".[X][X](.+)+[X]", RegexOptions.None, "bbbbXXcXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(6,1)"),
-        new RegexTrial (@".[X](.+)+[X]", RegexOptions.None, "bbbbXXaaaaaaaaa", "Fail."),
-        new RegexTrial (@".[X](.+)+[X][X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
-        new RegexTrial (@".[X][X](.+)+[X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
-        new RegexTrial (@"tt+$", RegexOptions.None, "xxxtt", "Pass. Group[0]=(3,2)"),
-        new RegexTrial (@"([\d-z]+)", RegexOptions.None, "a0-za", "Pass. Group[0]=(1,3) Group[1]=(1,3)"),
-        new RegexTrial (@"([\d-\s]+)", RegexOptions.None, "a0- z", "Pass. Group[0]=(1,3) Group[1]=(1,3)"),
-        new RegexTrial (@"\GX.*X", RegexOptions.None, "aaaXbX", "Fail."),
-        new RegexTrial (@"(\d+\.\d+)", RegexOptions.None, "3.1415926", "Pass. Group[0]=(0,9) Group[1]=(0,9)"),
-        new RegexTrial (@"(\ba.{0,10}br)", RegexOptions.None, "have a web browser", "Pass. Group[0]=(5,8) Group[1]=(5,8)"),
-        new RegexTrial (@"\.c(pp|xx|c)?$", RegexOptions.IgnoreCase, "Changes", "Fail."),
-        new RegexTrial (@"\.c(pp|xx|c)?$", RegexOptions.IgnoreCase, "IO.c", "Pass. Group[0]=(2,2) Group[1]="),
-        new RegexTrial (@"(\.c(pp|xx|c)?$)", RegexOptions.IgnoreCase, "IO.c", "Pass. Group[0]=(2,2) Group[1]=(2,2) Group[2]="),
-        new RegexTrial (@"^([a-z]:)", RegexOptions.None, "C:/", "Fail."),
-        new RegexTrial (@"^\S\s+aa$", RegexOptions.Multiline, "\nx aa", "Pass. Group[0]=(1,4)"),
-        new RegexTrial (@"(^|a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"^([ab]*?)(b)?(c)$", RegexOptions.None, "abac", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]= Group[3]=(3,1)"),
-        new RegexTrial (@"(\w)?(abc)\1b", RegexOptions.None, "abcab", "Fail."),
-        new RegexTrial (@"^(?:.,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5)"),
-        new RegexTrial (@"^(.,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5) Group[1]=(0,2)(2,2)"),
-        new RegexTrial (@"^(?:[^,]*,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5)"),
-        new RegexTrial (@"^([^,]*,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5) Group[1]=(0,2)(2,2)"),
-        new RegexTrial (@"^([^,]*,){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]*,){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]*,){0,3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]{1,3},){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]{1,3},){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]{1,3},){0,3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]{1,},){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]{1,},){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]{1,},){0,3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]{0,3},){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]{0,3},){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"^([^,]{0,3},){0,3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
-        new RegexTrial (@"(?i)", RegexOptions.None, "", "Pass. Group[0]=(0,0)"),
-        new RegexTrial (@"(?!\A)x", RegexOptions.Multiline, "a\nxb\n", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"^(a(b)?)+$", RegexOptions.None, "aba", "Pass. Group[0]=(0,3) Group[1]=(0,2)(2,1) Group[2]=(1,1)"),
-        new RegexTrial (@"^(aa(bb)?)+$", RegexOptions.None, "aabbaa", "Pass. Group[0]=(0,6) Group[1]=(0,4)(4,2) Group[2]=(2,2)"),
-        new RegexTrial (@"^.{9}abc.*\n", RegexOptions.Multiline, "123\nabcabcabcabc\n", "Pass. Group[0]=(4,13)"),
-        new RegexTrial (@"^(a)?a$", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]="),
-        new RegexTrial (@"^(a)?(?(1)a|b)+$", RegexOptions.None, "a", "Fail."),
-        new RegexTrial (@"^(a\1?)(a\1?)(a\2?)(a\3?)$", RegexOptions.None, "aaaaaa", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(1,2) Group[3]=(3,1) Group[4]=(4,2)"),
-        new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaa", "Pass. Group[0]=(0,6) Group[1]=(0,1)(1,2)(3,1)(4,2)"),
-        new RegexTrial (@"^(0+)?(?:x(1))?", RegexOptions.None, "x1", "Pass. Group[0]=(0,2) Group[1]= Group[2]=(1,1)"),
-        new RegexTrial (@"^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?", RegexOptions.None, "012cxx0190", "Pass. Group[0]=(0,10) Group[1]=(0,4) Group[2]= Group[3]=(6,4)"),
-        new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.None, "bbbac", "Pass. Group[0]=(0,5) Group[1]=(0,3)(3,1)"),
-        new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.None, "bbbbac", "Pass. Group[0]=(0,6) Group[1]=(0,4)(4,1)"),
-        new RegexTrial (@"\((\w\. \w+)\)", RegexOptions.None, "cd. (A. Tw)", "Pass. Group[0]=(4,7) Group[1]=(5,5)"),
-        new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.None, "aaaacccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
-        new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.None, "bbbbcccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
+               public static RegexTrial[] trials = new RegexTrial[] {
+                       new RegexTrial (@"abc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"abc", RegexOptions.None, "xbc", "Fail."),
+                       new RegexTrial (@"abc", RegexOptions.None, "axc", "Fail."),
+                       new RegexTrial (@"abc", RegexOptions.None, "abx", "Fail."),
+                       new RegexTrial (@"abc", RegexOptions.None, "xabcy", "Pass. Group[0]=(1,3)"),
+                       new RegexTrial (@"abc", RegexOptions.None, "ababc", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"ab*c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab*bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab*bc", RegexOptions.None, "abbc", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab*bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@".{1}", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@".{3,4}", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab{0,}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab+bc", RegexOptions.None, "abbc", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab+bc", RegexOptions.None, "abc", "Fail."),
+                       new RegexTrial (@"ab+bc", RegexOptions.None, "abq", "Fail."),
+                       new RegexTrial (@"ab{1,}bc", RegexOptions.None, "abq", "Fail."),
+                       new RegexTrial (@"ab+bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{1,}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{1,3}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{3,4}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{4,5}bc", RegexOptions.None, "abbbbc", "Fail."),
+                       new RegexTrial (@"ab?bc", RegexOptions.None, "abbc", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab?bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab{0,1}bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab?bc", RegexOptions.None, "abbbbc", "Fail."),
+                       new RegexTrial (@"ab?c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab{0,1}c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^abc$", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^abc$", RegexOptions.None, "abcc", "Fail."),
+                       new RegexTrial (@"^abc", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^abc$", RegexOptions.None, "aabc", "Fail."),
+                       new RegexTrial (@"abc$", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),
+                       new RegexTrial (@"abc$", RegexOptions.None, "aabcd", "Fail."),
+                       new RegexTrial (@"^", RegexOptions.None, "abc", "Pass. Group[0]=(0,0)"),
+                       new RegexTrial (@"$", RegexOptions.None, "abc", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"a.c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a.c", RegexOptions.None, "axc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a.*c", RegexOptions.None, "axyzc", "Pass. Group[0]=(0,5)"),
+                       new RegexTrial (@"a.*c", RegexOptions.None, "axyzd", "Fail."),
+                       new RegexTrial (@"a[bc]d", RegexOptions.None, "abc", "Fail."),
+                       new RegexTrial (@"a[bc]d", RegexOptions.None, "abd", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[b-d]e", RegexOptions.None, "abd", "Fail."),
+                       new RegexTrial (@"a[b-d]e", RegexOptions.None, "ace", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[b-d]", RegexOptions.None, "aac", "Pass. Group[0]=(1,2)"),
+                       new RegexTrial (@"a[-b]", RegexOptions.None, "a-", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a[b-]", RegexOptions.None, "a-", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a[b-a]", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"a[]b", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"a[", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"a]", RegexOptions.None, "a]", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a[]]b", RegexOptions.None, "a]b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[^bc]d", RegexOptions.None, "aed", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[^bc]d", RegexOptions.None, "abd", "Fail."),
+                       new RegexTrial (@"a[^-b]c", RegexOptions.None, "adc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[^-b]c", RegexOptions.None, "a-c", "Fail."),
+                       new RegexTrial (@"a[^]b]c", RegexOptions.None, "a]c", "Fail."),
+                       new RegexTrial (@"a[^]b]c", RegexOptions.None, "adc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"\ba\b", RegexOptions.None, "a-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"\ba\b", RegexOptions.None, "-a", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"\ba\b", RegexOptions.None, "-a-", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"\by\b", RegexOptions.None, "xy", "Fail."),
+                       new RegexTrial (@"\by\b", RegexOptions.None, "yz", "Fail."),
+                       new RegexTrial (@"\by\b", RegexOptions.None, "xyz", "Fail."),
+                       new RegexTrial (@"\Ba\B", RegexOptions.None, "a-", "Fail."),
+                       new RegexTrial (@"\Ba\B", RegexOptions.None, "-a", "Fail."),
+                       new RegexTrial (@"\Ba\B", RegexOptions.None, "-a-", "Fail."),
+                       new RegexTrial (@"\By\b", RegexOptions.None, "xy", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"\by\B", RegexOptions.None, "yz", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"\By\B", RegexOptions.None, "xyz", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"\w", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"\w", RegexOptions.None, "-", "Fail."),
+                       new RegexTrial (@"\W", RegexOptions.None, "a", "Fail."),
+                       new RegexTrial (@"\W", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"a\sb", RegexOptions.None, "a b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a\sb", RegexOptions.None, "a-b", "Fail."),
+                       new RegexTrial (@"a\Sb", RegexOptions.None, "a b", "Fail."),
+                       new RegexTrial (@"a\Sb", RegexOptions.None, "a-b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"\d", RegexOptions.None, "1", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"\d", RegexOptions.None, "-", "Fail."),
+                       new RegexTrial (@"\D", RegexOptions.None, "1", "Fail."),
+                       new RegexTrial (@"\D", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"[\w]", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"[\w]", RegexOptions.None, "-", "Fail."),
+                       new RegexTrial (@"[\W]", RegexOptions.None, "a", "Fail."),
+                       new RegexTrial (@"[\W]", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"a[\s]b", RegexOptions.None, "a b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[\s]b", RegexOptions.None, "a-b", "Fail."),
+                       new RegexTrial (@"a[\S]b", RegexOptions.None, "a b", "Fail."),
+                       new RegexTrial (@"a[\S]b", RegexOptions.None, "a-b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"[\d]", RegexOptions.None, "1", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"[\d]", RegexOptions.None, "-", "Fail."),
+                       new RegexTrial (@"[\D]", RegexOptions.None, "1", "Fail."),
+                       new RegexTrial (@"[\D]", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"ab|cd", RegexOptions.None, "abc", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"ab|cd", RegexOptions.None, "abcd", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"()ef", RegexOptions.None, "def", "Pass. Group[0]=(1,2) Group[1]=(1,0)"),
+                       new RegexTrial (@"*a", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"(*)b", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"$b", RegexOptions.None, "b", "Fail."),
+                       new RegexTrial (@"a\", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"a\(b", RegexOptions.None, "a(b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a\(*b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a\(*b", RegexOptions.None, "a((b", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"a\\b", RegexOptions.None, "a\\b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"abc)", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"(abc", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"((a))", RegexOptions.None, "abc", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1)"),
+                       new RegexTrial (@"(a)b(c)", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
+                       new RegexTrial (@"a+b+c", RegexOptions.None, "aabbabc", "Pass. Group[0]=(4,3)"),
+                       new RegexTrial (@"a{1,}b{1,}c", RegexOptions.None, "aabbabc", "Pass. Group[0]=(4,3)"),
+                       new RegexTrial (@"a**", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"a.+?c", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"(a+|b)*", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
+                       new RegexTrial (@"(a+|b){0,}", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
+                       new RegexTrial (@"(a+|b)+", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
+                       new RegexTrial (@"(a+|b){1,}", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
+                       new RegexTrial (@"(a+|b)?", RegexOptions.None, "ab", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
+                       new RegexTrial (@"(a+|b){0,1}", RegexOptions.None, "ab", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
+                       new RegexTrial (@")(", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"[^ab]*", RegexOptions.None, "cde", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"abc", RegexOptions.None, "", "Fail."),
+                       new RegexTrial (@"a*", RegexOptions.None, "", "Pass. Group[0]=(0,0)"),
+                       new RegexTrial (@"([abc])*d", RegexOptions.None, "abbbcd", "Pass. Group[0]=(0,6) Group[1]=(0,1)(1,1)(2,1)(3,1)(4,1)"),
+                       new RegexTrial (@"([abc])*bcd", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,1)"),
+                       new RegexTrial (@"a|b|c|d|e", RegexOptions.None, "e", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.None, "ef", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"abcd*efg", RegexOptions.None, "abcdefg", "Pass. Group[0]=(0,7)"),
+                       new RegexTrial (@"ab*", RegexOptions.None, "xabyabbbz", "Pass. Group[0]=(1,2)"),
+                       new RegexTrial (@"ab*", RegexOptions.None, "xayabbbz", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"(ab|cd)e", RegexOptions.None, "abcde", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
+                       new RegexTrial (@"[abhgefdc]ij", RegexOptions.None, "hij", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^(ab|cd)e", RegexOptions.None, "abcde", "Fail."),
+                       new RegexTrial (@"(abc|)ef", RegexOptions.None, "abcdef", "Pass. Group[0]=(4,2) Group[1]=(4,0)"),
+                       new RegexTrial (@"(a|b)c*d", RegexOptions.None, "abcd", "Pass. Group[0]=(1,3) Group[1]=(1,1)"),
+                       new RegexTrial (@"(ab|ab*)bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
+                       new RegexTrial (@"a([bc]*)c*", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,2)"),
+                       new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
+                       new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
+                       new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
+                       new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.None, "adcdcde", "Pass. Group[0]=(0,7)"),
+                       new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.None, "adcdcde", "Fail."),
+                       new RegexTrial (@"(ab|a)b*c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,2)"),
+                       new RegexTrial (@"((a)(b)c)(d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]=(0,1) Group[3]=(1,1) Group[4]=(3,1)"),
+                       new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.None, "alpha", "Pass. Group[0]=(0,5)"),
+                       new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.None, "abh", "Pass. Group[0]=(1,2) Group[1]="),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "effgz", "Pass. Group[0]=(0,5) Group[1]=(0,5) Group[2]="),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "ij", "Pass. Group[0]=(0,2) Group[1]=(0,2) Group[2]=(1,1)"),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "effg", "Fail."),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "bcdd", "Fail."),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "reffgz", "Pass. Group[0]=(1,5) Group[1]=(1,5) Group[2]="),
+                       new RegexTrial (@"((((((((((a))))))))))", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
+                       new RegexTrial (@"((((((((((a))))))))))\10", RegexOptions.None, "aa", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
+                       new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.None, "aa", "Fail."),
+                       new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.None, "a!", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
+                       new RegexTrial (@"(((((((((a)))))))))", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1)"),
+                       new RegexTrial (@"multiple words of text", RegexOptions.None, "uh-uh", "Fail."),
+                       new RegexTrial (@"multiple words", RegexOptions.None, "multiple words, yeah", "Pass. Group[0]=(0,14)"),
+                       new RegexTrial (@"(.*)c(.*)", RegexOptions.None, "abcde", "Pass. Group[0]=(0,5) Group[1]=(0,2) Group[2]=(3,2)"),
+                       new RegexTrial (@"\((.*), (.*)\)", RegexOptions.None, "(a, b)", "Pass. Group[0]=(0,6) Group[1]=(1,1) Group[2]=(4,1)"),
+                       new RegexTrial (@"[k]", RegexOptions.None, "ab", "Fail."),
+                       new RegexTrial (@"abcd", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"a(bc)d", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
+                       new RegexTrial (@"a[-]?c", RegexOptions.None, "ac", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"(abc)\1", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
+                       new RegexTrial (@"([a-c]*)\1", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
+                       new RegexTrial (@"\1", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"\2", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"(a)|\1", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
+                       new RegexTrial (@"(a)|\1", RegexOptions.None, "x", "Fail."),
+                       new RegexTrial (@"(a)|\2", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"(([a-c])b*?\2)*", RegexOptions.None, "ababbbcbc", "Pass. Group[0]=(0,5) Group[1]=(0,3)(3,2) Group[2]=(0,1)(3,1)"),
+                       new RegexTrial (@"(([a-c])b*?\2){3}", RegexOptions.None, "ababbbcbc", "Pass. Group[0]=(0,9) Group[1]=(0,3)(3,3)(6,3) Group[2]=(0,1)(3,1)(6,1)"),
+                       new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.None, "aaxabxbaxbbx", "Fail."),
+                       new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.None, "aaaxabaxbaaxbbax", "Pass. Group[0]=(12,4) Group[1]=(12,4) Group[2]=(12,1) Group[3]=(14,1)"),
+                       new RegexTrial (@"((\3|b)\2(a)){2,}", RegexOptions.None, "bbaababbabaaaaabbaaaabba", "Pass. Group[0]=(15,9) Group[1]=(15,3)(18,3)(21,3) Group[2]=(15,1)(18,1)(21,1) Group[3]=(17,1)(20,1)(23,1)"),
+                       new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"abc", RegexOptions.IgnoreCase, "XBC", "Fail."),
+                       new RegexTrial (@"abc", RegexOptions.IgnoreCase, "AXC", "Fail."),
+                       new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABX", "Fail."),
+                       new RegexTrial (@"abc", RegexOptions.IgnoreCase, "XABCY", "Pass. Group[0]=(1,3)"),
+                       new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABABC", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"ab*c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab*bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab*bc", RegexOptions.IgnoreCase, "ABBC", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab*?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{0,}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab+?bc", RegexOptions.IgnoreCase, "ABBC", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABC", "Fail."),
+                       new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABQ", "Fail."),
+                       new RegexTrial (@"ab{1,}bc", RegexOptions.IgnoreCase, "ABQ", "Fail."),
+                       new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{1,}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{1,3}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{3,4}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{4,5}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Fail."),
+                       new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABBC", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab{0,1}?bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABBBBC", "Fail."),
+                       new RegexTrial (@"ab??c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab{0,1}?c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "ABCC", "Fail."),
+                       new RegexTrial (@"^abc", RegexOptions.IgnoreCase, "ABCC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "AABC", "Fail."),
+                       new RegexTrial (@"abc$", RegexOptions.IgnoreCase, "AABC", "Pass. Group[0]=(1,3)"),
+                       new RegexTrial (@"^", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,0)"),
+                       new RegexTrial (@"$", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"a.c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a.c", RegexOptions.IgnoreCase, "AXC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a.*?c", RegexOptions.IgnoreCase, "AXYZC", "Pass. Group[0]=(0,5)"),
+                       new RegexTrial (@"a.*c", RegexOptions.IgnoreCase, "AXYZD", "Fail."),
+                       new RegexTrial (@"a[bc]d", RegexOptions.IgnoreCase, "ABC", "Fail."),
+                       new RegexTrial (@"a[bc]d", RegexOptions.IgnoreCase, "ABD", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[b-d]e", RegexOptions.IgnoreCase, "ABD", "Fail."),
+                       new RegexTrial (@"a[b-d]e", RegexOptions.IgnoreCase, "ACE", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[b-d]", RegexOptions.IgnoreCase, "AAC", "Pass. Group[0]=(1,2)"),
+                       new RegexTrial (@"a[-b]", RegexOptions.IgnoreCase, "A-", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a[b-]", RegexOptions.IgnoreCase, "A-", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a[b-a]", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"a[]b", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"a[", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"a]", RegexOptions.IgnoreCase, "A]", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a[]]b", RegexOptions.IgnoreCase, "A]B", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[^bc]d", RegexOptions.IgnoreCase, "AED", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[^bc]d", RegexOptions.IgnoreCase, "ABD", "Fail."),
+                       new RegexTrial (@"a[^-b]c", RegexOptions.IgnoreCase, "ADC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[^-b]c", RegexOptions.IgnoreCase, "A-C", "Fail."),
+                       new RegexTrial (@"a[^]b]c", RegexOptions.IgnoreCase, "A]C", "Fail."),
+                       new RegexTrial (@"a[^]b]c", RegexOptions.IgnoreCase, "ADC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab|cd", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"ab|cd", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"()ef", RegexOptions.IgnoreCase, "DEF", "Pass. Group[0]=(1,2) Group[1]=(1,0)"),
+                       new RegexTrial (@"*a", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"(*)b", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"$b", RegexOptions.IgnoreCase, "B", "Fail."),
+                       new RegexTrial (@"a\", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"a\(b", RegexOptions.IgnoreCase, "A(B", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a\(*b", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a\(*b", RegexOptions.IgnoreCase, "A((B", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"a\\b", RegexOptions.IgnoreCase, "A\\B", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"abc)", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"(abc", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"((a))", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1)"),
+                       new RegexTrial (@"(a)b(c)", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
+                       new RegexTrial (@"a+b+c", RegexOptions.IgnoreCase, "AABBABC", "Pass. Group[0]=(4,3)"),
+                       new RegexTrial (@"a{1,}b{1,}c", RegexOptions.IgnoreCase, "AABBABC", "Pass. Group[0]=(4,3)"),
+                       new RegexTrial (@"a**", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"a.+?c", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a.*?c", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a.{0,5}?c", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"(a+|b)*", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
+                       new RegexTrial (@"(a+|b){0,}", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
+                       new RegexTrial (@"(a+|b)+", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
+                       new RegexTrial (@"(a+|b){1,}", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
+                       new RegexTrial (@"(a+|b)?", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
+                       new RegexTrial (@"(a+|b){0,1}", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
+                       new RegexTrial (@"(a+|b){0,1}?", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,0) Group[1]="),
+                       new RegexTrial (@")(", RegexOptions.IgnoreCase, "-", "Error."),
+                       new RegexTrial (@"[^ab]*", RegexOptions.IgnoreCase, "CDE", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"abc", RegexOptions.IgnoreCase, "", "Fail."),
+                       new RegexTrial (@"a*", RegexOptions.IgnoreCase, "", "Pass. Group[0]=(0,0)"),
+                       new RegexTrial (@"([abc])*d", RegexOptions.IgnoreCase, "ABBBCD", "Pass. Group[0]=(0,6) Group[1]=(0,1)(1,1)(2,1)(3,1)(4,1)"),
+                       new RegexTrial (@"([abc])*bcd", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(0,1)"),
+                       new RegexTrial (@"a|b|c|d|e", RegexOptions.IgnoreCase, "E", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.IgnoreCase, "EF", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"abcd*efg", RegexOptions.IgnoreCase, "ABCDEFG", "Pass. Group[0]=(0,7)"),
+                       new RegexTrial (@"ab*", RegexOptions.IgnoreCase, "XABYABBBZ", "Pass. Group[0]=(1,2)"),
+                       new RegexTrial (@"ab*", RegexOptions.IgnoreCase, "XAYABBBZ", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"(ab|cd)e", RegexOptions.IgnoreCase, "ABCDE", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
+                       new RegexTrial (@"[abhgefdc]ij", RegexOptions.IgnoreCase, "HIJ", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^(ab|cd)e", RegexOptions.IgnoreCase, "ABCDE", "Fail."),
+                       new RegexTrial (@"(abc|)ef", RegexOptions.IgnoreCase, "ABCDEF", "Pass. Group[0]=(4,2) Group[1]=(4,0)"),
+                       new RegexTrial (@"(a|b)c*d", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(1,3) Group[1]=(1,1)"),
+                       new RegexTrial (@"(ab|ab*)bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
+                       new RegexTrial (@"a([bc]*)c*", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(1,2)"),
+                       new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
+                       new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
+                       new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
+                       new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.IgnoreCase, "ADCDCDE", "Pass. Group[0]=(0,7)"),
+                       new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.IgnoreCase, "ADCDCDE", "Fail."),
+                       new RegexTrial (@"(ab|a)b*c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(0,2)"),
+                       new RegexTrial (@"((a)(b)c)(d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]=(0,1) Group[3]=(1,1) Group[4]=(3,1)"),
+                       new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.IgnoreCase, "ALPHA", "Pass. Group[0]=(0,5)"),
+                       new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.IgnoreCase, "ABH", "Pass. Group[0]=(1,2) Group[1]="),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "EFFGZ", "Pass. Group[0]=(0,5) Group[1]=(0,5) Group[2]="),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "IJ", "Pass. Group[0]=(0,2) Group[1]=(0,2) Group[2]=(1,1)"),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "EFFG", "Fail."),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "BCDD", "Fail."),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "REFFGZ", "Pass. Group[0]=(1,5) Group[1]=(1,5) Group[2]="),
+                       new RegexTrial (@"((((((((((a))))))))))", RegexOptions.IgnoreCase, "A", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
+                       new RegexTrial (@"((((((((((a))))))))))\10", RegexOptions.IgnoreCase, "AA", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
+                       new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.IgnoreCase, "AA", "Fail."),
+                       new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.IgnoreCase, "A!", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
+                       new RegexTrial (@"(((((((((a)))))))))", RegexOptions.IgnoreCase, "A", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1)"),
+                       new RegexTrial (@"(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))", RegexOptions.IgnoreCase, "A", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))", RegexOptions.IgnoreCase, "C", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
+                       new RegexTrial (@"multiple words of text", RegexOptions.IgnoreCase, "UH-UH", "Fail."),
+                       new RegexTrial (@"multiple words", RegexOptions.IgnoreCase, "MULTIPLE WORDS, YEAH", "Pass. Group[0]=(0,14)"),
+                       new RegexTrial (@"(.*)c(.*)", RegexOptions.IgnoreCase, "ABCDE", "Pass. Group[0]=(0,5) Group[1]=(0,2) Group[2]=(3,2)"),
+                       new RegexTrial (@"\((.*), (.*)\)", RegexOptions.IgnoreCase, "(A, B)", "Pass. Group[0]=(0,6) Group[1]=(1,1) Group[2]=(4,1)"),
+                       new RegexTrial (@"[k]", RegexOptions.IgnoreCase, "AB", "Fail."),
+                       new RegexTrial (@"abcd", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"a(bc)d", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
+                       new RegexTrial (@"a[-]?c", RegexOptions.IgnoreCase, "AC", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"(abc)\1", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
+                       new RegexTrial (@"([a-c]*)\1", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
+                       new RegexTrial (@"a(?!b).", RegexOptions.None, "abad", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"a(?=d).", RegexOptions.None, "abad", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"a(?=c|d).", RegexOptions.None, "abad", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"a(?:b|c|d)(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
+                       new RegexTrial (@"a(?:b|c|d)*(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
+                       new RegexTrial (@"a(?:b|c|d)+?(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
+                       new RegexTrial (@"a(?:b|c|d)+?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
+                       new RegexTrial (@"a(?:b|c|d)+(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
+                       new RegexTrial (@"a(?:b|c|d){2}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,4) Group[1]=(3,1)"),
+                       new RegexTrial (@"a(?:b|c|d){4,5}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,7) Group[1]=(6,1)"),
+                       new RegexTrial (@"a(?:b|c|d){4,5}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,6) Group[1]=(5,1)"),
+                       new RegexTrial (@"((foo)|(bar))*", RegexOptions.None, "foobar", "Pass. Group[0]=(0,6) Group[1]=(0,3)(3,3) Group[2]=(0,3) Group[3]=(3,3)"),
+                       new RegexTrial (@":(?:", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"a(?:b|c|d){6,7}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
+                       new RegexTrial (@"a(?:b|c|d){6,7}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
+                       new RegexTrial (@"a(?:b|c|d){5,6}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
+                       new RegexTrial (@"a(?:b|c|d){5,6}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,7) Group[1]=(6,1)"),
+                       new RegexTrial (@"a(?:b|c|d){5,7}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
+                       new RegexTrial (@"a(?:b|c|d){5,7}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,7) Group[1]=(6,1)"),
+                       new RegexTrial (@"a(?:b|(c|e){1,2}?|d)+?(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(1,1) Group[2]=(2,1)"),
+                       new RegexTrial (@"^(.+)?B", RegexOptions.None, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"^([^a-z])|(\^)$", RegexOptions.None, ".", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]="),
+                       new RegexTrial (@"^[<>]&", RegexOptions.None, "<&OUT", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,10) Group[1]=(0,1)(1,2)(3,3)(6,4)"),
+                       new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaa", "Fail."),
+                       new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaaaa", "Fail."),
+                       new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,10) Group[1]=(0,1)(1,2)(3,3)(6,4)"),
+                       new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaa", "Fail."),
+                       new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaaaa", "Fail."),
+                       new RegexTrial (@"((a{4})+)", RegexOptions.None, "aaaaaaaaa", "Pass. Group[0]=(0,8) Group[1]=(0,8) Group[2]=(0,4)(4,4)"),
+                       new RegexTrial (@"(((aa){2})+)", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,8) Group[1]=(0,8) Group[2]=(0,4)(4,4) Group[3]=(0,2)(2,2)(4,2)(6,2)"),
+                       new RegexTrial (@"(((a{2}){2})+)", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,8) Group[1]=(0,8) Group[2]=(0,4)(4,4) Group[3]=(0,2)(2,2)(4,2)(6,2)"),
+                       new RegexTrial (@"(?:(f)(o)(o)|(b)(a)(r))*", RegexOptions.None, "foobar", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(1,1) Group[3]=(2,1) Group[4]=(3,1) Group[5]=(4,1) Group[6]=(5,1)"),
+                       new RegexTrial (@"(?<=a)b", RegexOptions.None, "ab", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"(?<=a)b", RegexOptions.None, "cb", "Fail."),
+                       new RegexTrial (@"(?<=a)b", RegexOptions.None, "b", "Fail."),
+                       new RegexTrial (@"(?<!c)b", RegexOptions.None, "ab", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"(?<!c)b", RegexOptions.None, "cb", "Fail."),
+                       new RegexTrial (@"(?<!c)b", RegexOptions.None, "b", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"(?<!c)b", RegexOptions.None, "b", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"(?<%)b", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"(?:..)*a", RegexOptions.None, "aba", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"(?:..)*?a", RegexOptions.None, "aba", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"^(?:b|a(?=(.)))*\1", RegexOptions.None, "abc", "Pass. Group[0]=(0,2) Group[1]=(1,1)"),
+                       new RegexTrial (@"^(){3,5}", RegexOptions.None, "abc", "Pass. Group[0]=(0,0) Group[1]=(0,0)(0,0)(0,0)"),
+                       new RegexTrial (@"^(a+)*ax", RegexOptions.None, "aax", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
+                       new RegexTrial (@"^((a|b)+)*ax", RegexOptions.None, "aax", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(0,1)"),
+                       new RegexTrial (@"^((a|bc)+)*ax", RegexOptions.None, "aax", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(0,1)"),
+                       new RegexTrial (@"(a|x)*ab", RegexOptions.None, "cab", "Pass. Group[0]=(1,2) Group[1]="),
+                       new RegexTrial (@"(a)*ab", RegexOptions.None, "cab", "Pass. Group[0]=(1,2) Group[1]="),
+                       new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?i)a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?i)a)b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "aB", "Fail."),
+                       new RegexTrial (@"((?i)a)b", RegexOptions.None, "aB", "Fail."),
+                       new RegexTrial (@"(?i:a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?i:a))b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?i:a)b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?i:a))b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?i:a)b", RegexOptions.None, "aB", "Fail."),
+                       new RegexTrial (@"((?i:a))b", RegexOptions.None, "aB", "Fail."),
+                       new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "Ab", "Fail."),
+                       new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "Ab", "Fail."),
+                       new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "AB", "Fail."),
+                       new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "AB", "Fail."),
+                       new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "Ab", "Fail."),
+                       new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "Ab", "Fail."),
+                       new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "AB", "Fail."),
+                       new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "AB", "Fail."),
+                       new RegexTrial (@"((?-i:a.))b", RegexOptions.IgnoreCase, "a\nB", "Fail."),
+                       new RegexTrial (@"((?s-i:a.))b", RegexOptions.IgnoreCase, "a\nB", "Pass. Group[0]=(0,3) Group[1]=(0,2)"),
+                       new RegexTrial (@"((?s-i:a.))b", RegexOptions.IgnoreCase, "B\nB", "Fail."),
+                       new RegexTrial (@"(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))", RegexOptions.None, "cabbbb", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))", RegexOptions.None, "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "Pass. Group[0]=(0,41)"),
+                       new RegexTrial (@"(ab)\d\1", RegexOptions.IgnoreCase, "Ab4ab", "Pass. Group[0]=(0,5) Group[1]=(0,2)"),
+                       new RegexTrial (@"(ab)\d\1", RegexOptions.IgnoreCase, "ab4Ab", "Pass. Group[0]=(0,5) Group[1]=(0,2)"),
+                       new RegexTrial (@"foo\w*\d{4}baz", RegexOptions.None, "foobar1234baz", "Pass. Group[0]=(0,13)"),
+                       new RegexTrial (@"x(~~)*(?:(?:F)?)?", RegexOptions.None, "x~~", "Pass. Group[0]=(0,3) Group[1]=(1,2)"),
+                       new RegexTrial (@"^a(?#xxx){3}c", RegexOptions.None, "aaac", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"(?<![cd])b", RegexOptions.None, "dbcb", "Fail."),
+                       new RegexTrial (@"(?<![cd])[ab]", RegexOptions.None, "dbaacb", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"(?<!(c|d))b", RegexOptions.None, "dbcb", "Fail."),
+                       new RegexTrial (@"(?<!(c|d))[ab]", RegexOptions.None, "dbaacb", "Pass. Group[0]=(2,1) Group[1]="),
+                       new RegexTrial (@"(?<!cd)[ab]", RegexOptions.None, "cdaccb", "Pass. Group[0]=(5,1)"),
+                       new RegexTrial (@"^(?:a?b?)*$", RegexOptions.None, "a--", "Fail."),
+                       new RegexTrial (@"((?s)^a(.))((?m)^b$)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(0,3) Group[1]=(0,2) Group[2]=(1,1) Group[3]=(2,1)"),
+                       new RegexTrial (@"((?m)^b$)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
+                       new RegexTrial (@"(?m)^b", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"(?m)^(b)", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
+                       new RegexTrial (@"((?m)^b)", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
+                       new RegexTrial (@"\n((?m)^b)", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(1,2) Group[1]=(2,1)"),
+                       new RegexTrial (@"((?s).)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(3,2) Group[1]=(3,1)"),
+                       new RegexTrial (@"((?s).)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(3,2) Group[1]=(3,1)"),
+                       new RegexTrial (@"((?s)b.)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
+                       new RegexTrial (@"((?s)b.)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
+                       new RegexTrial (@"^b", RegexOptions.None, "a\nb\nc\n", "Fail."),
+                       new RegexTrial (@"()^b", RegexOptions.None, "a\nb\nc\n", "Fail."),
+                       new RegexTrial (@"((?m)^b)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
+                       new RegexTrial (@"(x)?(?(1)a|b)", RegexOptions.None, "a", "Fail."),
+                       new RegexTrial (@"(x)?(?(1)b|a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]="),
+                       new RegexTrial (@"()?(?(1)b|a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]="),
+                       new RegexTrial (@"()(?(1)b|a)", RegexOptions.None, "a", "Fail."),
+                       new RegexTrial (@"()?(?(1)a|b)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,0)"),
+                       new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "(blah)", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(5,1)"),
+                       new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "blah", "Pass. Group[0]=(0,4) Group[1]= Group[2]="),
+                       new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "blah)", "Fail."),
+                       new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "(blah", "Fail."),
+                       new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "(blah)", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(5,1)"),
+                       new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "blah", "Pass. Group[0]=(0,4) Group[1]= Group[2]="),
+                       new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "blah)", "Fail."),
+                       new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "(blah", "Fail."),
+                       new RegexTrial (@"(?(1)a|b|c)", RegexOptions.None, "a", "Error."),
+                       new RegexTrial (@"(?(?!a)a|b)", RegexOptions.None, "a", "Fail."),
+                       new RegexTrial (@"(?(?!a)b|a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"(?(?=a)b|a)", RegexOptions.None, "a", "Fail."),
+                       new RegexTrial (@"(?(?=a)a|b)", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"(?=(a+?))(\1ab)", RegexOptions.None, "aaab", "Pass. Group[0]=(1,3) Group[1]=(1,1) Group[2]=(1,3)"),
+                       new RegexTrial (@"^(?=(a+?))\1ab", RegexOptions.None, "aaab", "Fail."),
+                       new RegexTrial (@"(\w+:)+", RegexOptions.None, "one:", "Pass. Group[0]=(0,4) Group[1]=(0,4)"),
+                       new RegexTrial (@"$(?<=^(a))", RegexOptions.None, "a", "Pass. Group[0]=(1,0) Group[1]=(0,1)"),
+                       new RegexTrial (@"(?=(a+?))(\1ab)", RegexOptions.None, "aaab", "Pass. Group[0]=(1,3) Group[1]=(1,1) Group[2]=(1,3)"),
+                       new RegexTrial (@"^(?=(a+?))\1ab", RegexOptions.None, "aaab", "Fail."),
+                       new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd:", "Fail."),
+                       new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]= Group[2]=(0,4)"),
+                       new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "xy:z:::abcd", "Pass. Group[0]=(0,11) Group[1]=(0,7) Group[2]=(7,4)"),
+                       new RegexTrial (@"^[^bcd]*(c+)", RegexOptions.None, "aexycd", "Pass. Group[0]=(0,5) Group[1]=(4,1)"),
+                       new RegexTrial (@"(a*)b+", RegexOptions.None, "caab", "Pass. Group[0]=(1,3) Group[1]=(1,2)"),
+                       new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd:", "Fail."),
+                       new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]= Group[2]=(0,4)"),
+                       new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "xy:z:::abcd", "Pass. Group[0]=(0,11) Group[1]=(0,7) Group[2]=(7,4)"),
+                       new RegexTrial (@"^[^bcd]*(c+)", RegexOptions.None, "aexycd", "Pass. Group[0]=(0,5) Group[1]=(4,1)"),
+                       new RegexTrial (@"(>a+)ab", RegexOptions.None, "aaab", "Fail."),
+                       new RegexTrial (@"(?>a+)b", RegexOptions.None, "aaab", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"([[:]+)", RegexOptions.None, "a:[b]:", "Pass. Group[0]=(1,2) Group[1]=(1,2)"),
+                       new RegexTrial (@"([[=]+)", RegexOptions.None, "a=[b]=", "Pass. Group[0]=(1,2) Group[1]=(1,2)"),
+                       new RegexTrial (@"([[.]+)", RegexOptions.None, "a.[b].", "Pass. Group[0]=(1,2) Group[1]=(1,2)"),
+                       new RegexTrial (@"[a[:]b[:c]", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"[a[:]b[:c]", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"((?>a+)b)", RegexOptions.None, "aaab", "Pass. Group[0]=(0,4) Group[1]=(0,4)"),
+                       new RegexTrial (@"(?>(a+))b", RegexOptions.None, "aaab", "Pass. Group[0]=(0,4) Group[1]=(0,3)"),
+                       new RegexTrial (@"((?>[^()]+)|\([^()]*\))+", RegexOptions.None, "((abc(ade)ufh()()x", "Pass. Group[0]=(2,16) Group[1]=(2,3)(5,5)(10,3)(13,2)(15,2)(17,1)"),
+                       new RegexTrial (@"(?<=x+)", RegexOptions.None, "xxxxy", "Pass. Group[0]=(1,0)"),
+                       new RegexTrial (@"a{37,17}", RegexOptions.None, "-", "Error."),
+                       new RegexTrial (@"\Z", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"\z", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(4,0)"),
+                       new RegexTrial (@"$", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"\Z", RegexOptions.None, "b\na\n", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"\z", RegexOptions.None, "b\na\n", "Pass. Group[0]=(4,0)"),
+                       new RegexTrial (@"$", RegexOptions.None, "b\na\n", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"\Z", RegexOptions.None, "b\na", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"\z", RegexOptions.None, "b\na", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"$", RegexOptions.None, "b\na", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"\Z", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"\z", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(4,0)"),
+                       new RegexTrial (@"$", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(1,0)"),
+                       new RegexTrial (@"\Z", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"\z", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(4,0)"),
+                       new RegexTrial (@"$", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(1,0)"),
+                       new RegexTrial (@"\Z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"\z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"$", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(1,0)"),
+                       new RegexTrial (@"a\Z", RegexOptions.None, "a\nb\n", "Fail."),
+                       new RegexTrial (@"a\z", RegexOptions.None, "a\nb\n", "Fail."),
+                       new RegexTrial (@"a$", RegexOptions.None, "a\nb\n", "Fail."),
+                       new RegexTrial (@"a\Z", RegexOptions.None, "b\na\n", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"a\z", RegexOptions.None, "b\na\n", "Fail."),
+                       new RegexTrial (@"a$", RegexOptions.None, "b\na\n", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"a\Z", RegexOptions.None, "b\na", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"a\z", RegexOptions.None, "b\na", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"a$", RegexOptions.None, "b\na", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"a\z", RegexOptions.Multiline, "a\nb\n", "Fail."),
+                       new RegexTrial (@"a$", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"a\Z", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"a\z", RegexOptions.Multiline, "b\na\n", "Fail."),
+                       new RegexTrial (@"a$", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"a\Z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"a\z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"a$", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"aa\Z", RegexOptions.None, "aa\nb\n", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.None, "aa\nb\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.None, "aa\nb\n", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.None, "b\naa\n", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa\z", RegexOptions.None, "b\naa\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.None, "b\naa\n", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa\Z", RegexOptions.None, "b\naa", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa\z", RegexOptions.None, "b\naa", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa$", RegexOptions.None, "b\naa", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa\z", RegexOptions.Multiline, "aa\nb\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.Multiline, "aa\nb\n", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\naa\n", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\naa\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.Multiline, "b\naa\n", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\naa", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\naa", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa$", RegexOptions.Multiline, "b\naa", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"aa\Z", RegexOptions.None, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.None, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.None, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.None, "b\nac\n", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.None, "b\nac\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.None, "b\nac\n", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.None, "b\nac", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.None, "b\nac", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.None, "b\nac", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.Multiline, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nac\n", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nac\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nac\n", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nac", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nac", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nac", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.None, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.None, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.None, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.None, "b\nca\n", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.None, "b\nca\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.None, "b\nca\n", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.None, "b\nca", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.None, "b\nca", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.None, "b\nca", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.Multiline, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nca\n", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nca\n", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nca\n", "Fail."),
+                       new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nca", "Fail."),
+                       new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nca", "Fail."),
+                       new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nca", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.None, "ab\nb\n", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.None, "ab\nb\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.None, "ab\nb\n", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.None, "b\nab\n", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab\z", RegexOptions.None, "b\nab\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.None, "b\nab\n", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab\Z", RegexOptions.None, "b\nab", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab\z", RegexOptions.None, "b\nab", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab$", RegexOptions.None, "b\nab", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab\z", RegexOptions.Multiline, "ab\nb\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.Multiline, "ab\nb\n", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nab\n", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nab\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nab\n", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nab", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nab", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nab", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"ab\Z", RegexOptions.None, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.None, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.None, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.None, "b\nac\n", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.None, "b\nac\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.None, "b\nac\n", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.None, "b\nac", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.None, "b\nac", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.None, "b\nac", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.Multiline, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nac\n", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nac\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nac\n", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nac", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nac", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nac", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.None, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.None, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.None, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.None, "b\nca\n", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.None, "b\nca\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.None, "b\nca\n", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.None, "b\nca", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.None, "b\nca", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.None, "b\nca", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.Multiline, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nca\n", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nca\n", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nca\n", "Fail."),
+                       new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nca", "Fail."),
+                       new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nca", "Fail."),
+                       new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nca", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.None, "abb\nb\n", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.None, "abb\nb\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.None, "abb\nb\n", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.None, "b\nabb\n", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb\z", RegexOptions.None, "b\nabb\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.None, "b\nabb\n", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb\Z", RegexOptions.None, "b\nabb", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb\z", RegexOptions.None, "b\nabb", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb$", RegexOptions.None, "b\nabb", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb\z", RegexOptions.Multiline, "abb\nb\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.Multiline, "abb\nb\n", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nabb\n", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nabb\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nabb\n", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nabb", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nabb", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nabb", "Pass. Group[0]=(2,3)"),
+                       new RegexTrial (@"abb\Z", RegexOptions.None, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.None, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.None, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.None, "b\nac\n", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.None, "b\nac\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.None, "b\nac\n", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.None, "b\nac", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.None, "b\nac", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.None, "b\nac", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.Multiline, "ac\nb\n", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nac\n", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nac\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nac\n", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nac", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nac", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nac", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.None, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.None, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.None, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.None, "b\nca\n", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.None, "b\nca\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.None, "b\nca\n", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.None, "b\nca", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.None, "b\nca", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.None, "b\nca", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.Multiline, "ca\nb\n", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nca\n", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nca\n", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nca\n", "Fail."),
+                       new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nca", "Fail."),
+                       new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nca", "Fail."),
+                       new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nca", "Fail."),
+                       new RegexTrial (@"(^|x)(c)", RegexOptions.None, "ca", "Pass. Group[0]=(0,1) Group[1]=(0,0) Group[2]=(0,1)"),
+                       new RegexTrial (@"a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz", RegexOptions.None, "x", "Fail."),
+                       new RegexTrial (@"round\(((?>[^()]+))\)", RegexOptions.None, "_I(round(xs * sz),1)", "Pass. Group[0]=(3,14) Group[1]=(9,7)"),
+                       new RegexTrial (@"foo.bart", RegexOptions.None, "foo.bart", "Pass. Group[0]=(0,8)"),
+                       new RegexTrial (@"^d[x][x][x]", RegexOptions.Multiline, "abcd\ndxxx", "Pass. Group[0]=(5,4)"),
+                       new RegexTrial (@".X(.+)+X", RegexOptions.None, "bbbbXcXaaaaaaaa", "Pass. Group[0]=(3,4) Group[1]=(5,1)"),
+                       new RegexTrial (@".X(.+)+XX", RegexOptions.None, "bbbbXcXXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(5,1)"),
+                       new RegexTrial (@".XX(.+)+X", RegexOptions.None, "bbbbXXcXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(6,1)"),
+                       new RegexTrial (@".X(.+)+X", RegexOptions.None, "bbbbXXaaaaaaaaa", "Fail."),
+                       new RegexTrial (@".X(.+)+XX", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
+                       new RegexTrial (@".XX(.+)+X", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
+                       new RegexTrial (@".X(.+)+[X]", RegexOptions.None, "bbbbXcXaaaaaaaa", "Pass. Group[0]=(3,4) Group[1]=(5,1)"),
+                       new RegexTrial (@".X(.+)+[X][X]", RegexOptions.None, "bbbbXcXXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(5,1)"),
+                       new RegexTrial (@".XX(.+)+[X]", RegexOptions.None, "bbbbXXcXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(6,1)"),
+                       new RegexTrial (@".X(.+)+[X]", RegexOptions.None, "bbbbXXaaaaaaaaa", "Fail."),
+                       new RegexTrial (@".X(.+)+[X][X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
+                       new RegexTrial (@".XX(.+)+[X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
+                       new RegexTrial (@".[X](.+)+[X]", RegexOptions.None, "bbbbXcXaaaaaaaa", "Pass. Group[0]=(3,4) Group[1]=(5,1)"),
+                       new RegexTrial (@".[X](.+)+[X][X]", RegexOptions.None, "bbbbXcXXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(5,1)"),
+                       new RegexTrial (@".[X][X](.+)+[X]", RegexOptions.None, "bbbbXXcXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(6,1)"),
+                       new RegexTrial (@".[X](.+)+[X]", RegexOptions.None, "bbbbXXaaaaaaaaa", "Fail."),
+                       new RegexTrial (@".[X](.+)+[X][X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
+                       new RegexTrial (@".[X][X](.+)+[X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
+                       new RegexTrial (@"tt+$", RegexOptions.None, "xxxtt", "Pass. Group[0]=(3,2)"),
+                       new RegexTrial (@"([\d-z]+)", RegexOptions.None, "a0-za", "Pass. Group[0]=(1,3) Group[1]=(1,3)"),
+                       new RegexTrial (@"([\d-\s]+)", RegexOptions.None, "a0- z", "Pass. Group[0]=(1,3) Group[1]=(1,3)"),
+                       new RegexTrial (@"\GX.*X", RegexOptions.None, "aaaXbX", "Fail."),
+                       new RegexTrial (@"(\d+\.\d+)", RegexOptions.None, "3.1415926", "Pass. Group[0]=(0,9) Group[1]=(0,9)"),
+                       new RegexTrial (@"(\ba.{0,10}br)", RegexOptions.None, "have a web browser", "Pass. Group[0]=(5,8) Group[1]=(5,8)"),
+                       new RegexTrial (@"\.c(pp|xx|c)?$", RegexOptions.IgnoreCase, "Changes", "Fail."),
+                       new RegexTrial (@"\.c(pp|xx|c)?$", RegexOptions.IgnoreCase, "IO.c", "Pass. Group[0]=(2,2) Group[1]="),
+                       new RegexTrial (@"(\.c(pp|xx|c)?$)", RegexOptions.IgnoreCase, "IO.c", "Pass. Group[0]=(2,2) Group[1]=(2,2) Group[2]="),
+                       new RegexTrial (@"^([a-z]:)", RegexOptions.None, "C:/", "Fail."),
+                       new RegexTrial (@"^\S\s+aa$", RegexOptions.Multiline, "\nx aa", "Pass. Group[0]=(1,4)"),
+                       new RegexTrial (@"(^|a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"^([ab]*?)(b)?(c)$", RegexOptions.None, "abac", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]= Group[3]=(3,1)"),
+                       new RegexTrial (@"(\w)?(abc)\1b", RegexOptions.None, "abcab", "Fail."),
+                       new RegexTrial (@"^(?:.,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5)"),
+                       new RegexTrial (@"^(.,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5) Group[1]=(0,2)(2,2)"),
+                       new RegexTrial (@"^(?:[^,]*,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5)"),
+                       new RegexTrial (@"^([^,]*,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5) Group[1]=(0,2)(2,2)"),
+                       new RegexTrial (@"^([^,]*,){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]*,){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]*,){0,3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]{1,3},){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]{1,3},){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]{1,3},){0,3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]{1,},){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]{1,},){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]{1,},){0,3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]{0,3},){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]{0,3},){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"^([^,]{0,3},){0,3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
+                       new RegexTrial (@"(?i)", RegexOptions.None, "", "Pass. Group[0]=(0,0)"),
+                       new RegexTrial (@"(?!\A)x", RegexOptions.Multiline, "a\nxb\n", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"^(a(b)?)+$", RegexOptions.None, "aba", "Pass. Group[0]=(0,3) Group[1]=(0,2)(2,1) Group[2]=(1,1)"),
+                       new RegexTrial (@"^(aa(bb)?)+$", RegexOptions.None, "aabbaa", "Pass. Group[0]=(0,6) Group[1]=(0,4)(4,2) Group[2]=(2,2)"),
+                       new RegexTrial (@"^.{9}abc.*\n", RegexOptions.Multiline, "123\nabcabcabcabc\n", "Pass. Group[0]=(4,13)"),
+                       new RegexTrial (@"^(a)?a$", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]="),
+                       new RegexTrial (@"^(a)?(?(1)a|b)+$", RegexOptions.None, "a", "Fail."),
+                       new RegexTrial (@"^(a\1?)(a\1?)(a\2?)(a\3?)$", RegexOptions.None, "aaaaaa", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(1,2) Group[3]=(3,1) Group[4]=(4,2)"),
+                       new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaa", "Pass. Group[0]=(0,6) Group[1]=(0,1)(1,2)(3,1)(4,2)"),
+                       new RegexTrial (@"^(0+)?(?:x(1))?", RegexOptions.None, "x1", "Pass. Group[0]=(0,2) Group[1]= Group[2]=(1,1)"),
+                       new RegexTrial (@"^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?", RegexOptions.None, "012cxx0190", "Pass. Group[0]=(0,10) Group[1]=(0,4) Group[2]= Group[3]=(6,4)"),
+                       new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.None, "bbbac", "Pass. Group[0]=(0,5) Group[1]=(0,3)(3,1)"),
+                       new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.None, "bbbbac", "Pass. Group[0]=(0,6) Group[1]=(0,4)(4,1)"),
+                       new RegexTrial (@"\((\w\. \w+)\)", RegexOptions.None, "cd. (A. Tw)", "Pass. Group[0]=(4,7) Group[1]=(5,5)"),
+                       new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.None, "aaaacccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
+                       new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.None, "bbbbcccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
+                       
+                       new RegexTrial (@"^(foo)|(bar)$", RegexOptions.None, "foobar", "Pass. Group[0]=(0,3) Group[1]=(0,3) Group[2]="),
+                       new RegexTrial (@"^(foo)|(bar)$", RegexOptions.RightToLeft, "foobar", "Pass. Group[0]=(3,3) Group[1]= Group[2]=(3,3)"),
 
-        new RegexTrial (@"^(foo)|(bar)$", RegexOptions.None, "foobar", "Pass. Group[0]=(0,3) Group[1]=(0,3) Group[2]="),
-        new RegexTrial (@"^(foo)|(bar)$", RegexOptions.RightToLeft, "foobar", "Pass. Group[0]=(3,3) Group[1]= Group[2]=(3,3)"),
-
-        new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
-        new RegexTrial (@"bab", RegexOptions.RightToLeft, "babababaa", "Pass. Group[0]=(4,3)"),
-        new RegexTrial (@"abb", RegexOptions.RightToLeft , "abb", "Pass. Group[0]=(0,3)"),
-
-        new RegexTrial (@"b$", RegexOptions.RightToLeft | RegexOptions.Multiline, "aab\naab", "Pass. Group[0]=(6,1)"),
-        new RegexTrial (@"^a", RegexOptions.RightToLeft | RegexOptions.Multiline, "aab\naab", "Pass. Group[0]=(4,1)"),
-        new RegexTrial (@"^aaab", RegexOptions.RightToLeft | RegexOptions.Multiline, "aaab\naab", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"abb{2}", RegexOptions.RightToLeft , "abbb", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"abb{1,2}", RegexOptions.RightToLeft , "abbb", "Pass. Group[0]=(0,4)"),
-
-        new RegexTrial (@"abb{1,2}", RegexOptions.RightToLeft , "abbbbbaaaa", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"\Ab", RegexOptions.RightToLeft, "bab\naaa", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\Abab$", RegexOptions.RightToLeft, "bab", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"b\Z", RegexOptions.RightToLeft, "bab\naaa", "Fail."),
-        new RegexTrial (@"b\Z", RegexOptions.RightToLeft, "babaaab", "Pass. Group[0]=(6,1)"),
-        new RegexTrial (@"b\z", RegexOptions.RightToLeft, "babaaa", "Fail."),
-        new RegexTrial (@"b\z", RegexOptions.RightToLeft, "babaaab", "Pass. Group[0]=(6,1)"),
-        new RegexTrial (@"a\G", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(5,1)"),
-        new RegexTrial (@"\Abaaa\G", RegexOptions.RightToLeft, "baaa", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
+                       new RegexTrial (@"bab", RegexOptions.RightToLeft, "babababaa", "Pass. Group[0]=(4,3)"),
+                       new RegexTrial (@"abb", RegexOptions.RightToLeft , "abb", "Pass. Group[0]=(0,3)"),
+                                                                                               
+            new RegexTrial (@"b$", RegexOptions.RightToLeft | RegexOptions.Multiline, "aab\naab", "Pass. Group[0]=(6,1)"),
+            new RegexTrial (@"^a", RegexOptions.RightToLeft | RegexOptions.Multiline, "aab\naab", "Pass. Group[0]=(4,1)"),
+            new RegexTrial (@"^aaab", RegexOptions.RightToLeft | RegexOptions.Multiline, "aaab\naab", "Pass. Group[0]=(0,4)"),
+            new RegexTrial (@"abb{2}", RegexOptions.RightToLeft , "abbb", "Pass. Group[0]=(0,4)"),
+            new RegexTrial (@"abb{1,2}", RegexOptions.RightToLeft , "abbb", "Pass. Group[0]=(0,4)"),
+            
+            new RegexTrial (@"abb{1,2}", RegexOptions.RightToLeft , "abbbbbaaaa", "Pass. Group[0]=(0,4)"),
+            new RegexTrial (@"\Ab", RegexOptions.RightToLeft, "bab\naaa", "Pass. Group[0]=(0,1)"),
+            new RegexTrial (@"\Abab$", RegexOptions.RightToLeft, "bab", "Pass. Group[0]=(0,3)"),
+            new RegexTrial (@"b\Z", RegexOptions.RightToLeft, "bab\naaa", "Fail."),
+            new RegexTrial (@"b\Z", RegexOptions.RightToLeft, "babaaab", "Pass. Group[0]=(6,1)"),
+            new RegexTrial (@"b\z", RegexOptions.RightToLeft, "babaaa", "Fail."),
+            new RegexTrial (@"b\z", RegexOptions.RightToLeft, "babaaab", "Pass. Group[0]=(6,1)"),
+                       new RegexTrial (@"a\G", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(5,1)"),
+                       new RegexTrial (@"\Abaaa\G", RegexOptions.RightToLeft, "baaa", "Pass. Group[0]=(0,4)"),
 //                     new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
 //                     new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
 //                     new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
 //                     new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
 
-        new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaa c aaa c a", "Pass. Group[0]=(10,1)"),
-        new RegexTrial (@"\bc", RegexOptions.RightToLeft, "c aaa c", "Pass. Group[0]=(6,1)"),
-        new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaa ac", "Fail."),
-        new RegexTrial (@"\bc", RegexOptions.RightToLeft, "c aaa", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaacaaa", "Fail."),
-        new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaac aaa", "Fail."),
-        new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaa ca caaa", "Pass. Group[0]=(7,1)"),
-
-        new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "ac aaa ac", "Pass. Group[0]=(8,1)"),
-        new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaa c", "Fail."),
-        new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "ca aaa", "Fail."),
-        new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaa c aaa", "Fail."),
-        new RegexTrial (@"\Bc", RegexOptions.RightToLeft, " acaca ", "Pass. Group[0]=(4,1)"),
-        new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaac aaac", "Pass. Group[0]=(8,1)"),
-        new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaa caaa", "Fail."),
-
-        new RegexTrial (@"b(a?)b", RegexOptions.RightToLeft, "aabababbaaababa", "Pass. Group[0]=(11,3) Group[1]=(12,1)"),
-        new RegexTrial (@"b{4}", RegexOptions.RightToLeft, "abbbbaabbbbaabbb", "Pass. Group[0]=(7,4)"),
-        new RegexTrial (@"b\1aa(.)", RegexOptions.RightToLeft, "bBaaB", "Pass. Group[0]=(0,5) Group[1]=(4,1)"),
-        new RegexTrial (@"b(.)aa\1", RegexOptions.RightToLeft, "bBaaB", "Fail."),
-
-        new RegexTrial (@"^(a\1?){4}$", RegexOptions.RightToLeft, "aaaaaa", "Pass. Group[0]=(0,6) Group[1]=(5,1)(3,2)(2,1)(0,2)"),
-        new RegexTrial (@"^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?", RegexOptions.RightToLeft, "012cxx0190", "Pass. Group[0]=(0,10) Group[1]=(0,4) Group[2]= Group[3]=(6,4)"),
-        new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.RightToLeft, "bbbac", "Pass. Group[0]=(0,5) Group[1]=(3,1)(0,3)"),
-        new RegexTrial (@"\((\w\. \w+)\)", RegexOptions.RightToLeft, "cd. (A. Tw)", "Pass. Group[0]=(4,7) Group[1]=(5,5)"),
-        new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.RightToLeft, "aaaacccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
-        new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.RightToLeft, "bbbbcccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
+                       new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaa c aaa c a", "Pass. Group[0]=(10,1)"),
+                       new RegexTrial (@"\bc", RegexOptions.RightToLeft, "c aaa c", "Pass. Group[0]=(6,1)"),
+                       new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaa ac", "Fail."),
+                       new RegexTrial (@"\bc", RegexOptions.RightToLeft, "c aaa", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaacaaa", "Fail."),
+                       new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaac aaa", "Fail."),
+                       new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaa ca caaa", "Pass. Group[0]=(7,1)"),
+                       
+                       new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "ac aaa ac", "Pass. Group[0]=(8,1)"),
+                       new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaa c", "Fail."),
+                       new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "ca aaa", "Fail."),
+                       new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaa c aaa", "Fail."),
+                       new RegexTrial (@"\Bc", RegexOptions.RightToLeft, " acaca ", "Pass. Group[0]=(4,1)"),
+                       new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaac aaac", "Pass. Group[0]=(8,1)"),
+                       new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaa caaa", "Fail."),
+                               
+                       new RegexTrial (@"b(a?)b", RegexOptions.RightToLeft, "aabababbaaababa", "Pass. Group[0]=(11,3) Group[1]=(12,1)"),
+                       new RegexTrial (@"b{4}", RegexOptions.RightToLeft, "abbbbaabbbbaabbb", "Pass. Group[0]=(7,4)"),
+                       new RegexTrial (@"b\1aa(.)", RegexOptions.RightToLeft, "bBaaB", "Pass. Group[0]=(0,5) Group[1]=(4,1)"),
+                       new RegexTrial (@"b(.)aa\1", RegexOptions.RightToLeft, "bBaaB", "Fail."),
+                       
+                       new RegexTrial (@"^(a\1?){4}$", RegexOptions.RightToLeft, "aaaaaa", "Pass. Group[0]=(0,6) Group[1]=(5,1)(3,2)(2,1)(0,2)"),
+                       new RegexTrial (@"^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?", RegexOptions.RightToLeft, "012cxx0190", "Pass. Group[0]=(0,10) Group[1]=(0,4) Group[2]= Group[3]=(6,4)"),
+                       new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.RightToLeft, "bbbac", "Pass. Group[0]=(0,5) Group[1]=(3,1)(0,3)"),                      
+                       new RegexTrial (@"\((\w\. \w+)\)", RegexOptions.RightToLeft, "cd. (A. Tw)", "Pass. Group[0]=(4,7) Group[1]=(5,5)"),
+                       new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.RightToLeft, "aaaacccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
+                       new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.RightToLeft, "bbbbcccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
+                       
+                       new RegexTrial (@"(?<=a)b", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"(?<=a)b", RegexOptions.RightToLeft, "cb", "Fail."),
+                       new RegexTrial (@"(?<=a)b", RegexOptions.RightToLeft, "b", "Fail."),
+                       new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "cb", "Fail."),
+                       new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "b", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "b", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"a(?=d).", RegexOptions.RightToLeft, "adabad", "Pass. Group[0]=(4,2)"),
+                       new RegexTrial (@"a(?=c|d).", RegexOptions.RightToLeft, "adabad", "Pass. Group[0]=(4,2)"),
+                       
+                       new RegexTrial (@"ab*c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab*bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab*bc", RegexOptions.RightToLeft, "abbc", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab*bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@".{1}", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(5,1)"),
+                       new RegexTrial (@".{3,4}", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(2,4)"),
+                       new RegexTrial (@"ab{0,}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abbc", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abc", "Fail."),
+                       new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abq", "Fail."),
+                       new RegexTrial (@"ab{1,}bc", RegexOptions.RightToLeft, "abq", "Fail."),
+                       new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{1,}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{1,3}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{3,4}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
+                       new RegexTrial (@"ab{4,5}bc", RegexOptions.RightToLeft, "abbbbc", "Fail."),
+                       new RegexTrial (@"ab?bc", RegexOptions.RightToLeft, "abbc", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"ab?bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab{0,1}bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab?bc", RegexOptions.RightToLeft, "abbbbc", "Fail."),
+                       new RegexTrial (@"ab?c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"ab{0,1}c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^abc$", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^abc$", RegexOptions.RightToLeft, "abcc", "Fail."),
+                       new RegexTrial (@"^abc", RegexOptions.RightToLeft, "abcc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^abc$", RegexOptions.RightToLeft, "aabc", "Fail."),
+                       new RegexTrial (@"abc$", RegexOptions.RightToLeft, "aabc", "Pass. Group[0]=(1,3)"),
+                       new RegexTrial (@"abc$", RegexOptions.RightToLeft, "aabcd", "Fail."),
+                       new RegexTrial (@"^", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,0)"),
+                       new RegexTrial (@"$", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(3,0)"),
+                       new RegexTrial (@"a.c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a.c", RegexOptions.RightToLeft, "axc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a.*c", RegexOptions.RightToLeft, "axyzc", "Pass. Group[0]=(0,5)"),
+                       new RegexTrial (@"a.*c", RegexOptions.RightToLeft, "axyzd", "Fail."),
+                       new RegexTrial (@"a[bc]d", RegexOptions.RightToLeft, "abc", "Fail."),
+                       new RegexTrial (@"a[bc]d", RegexOptions.RightToLeft, "abd", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[b-d]e", RegexOptions.RightToLeft, "abd", "Fail."),
+                       new RegexTrial (@"a[b-d]e", RegexOptions.RightToLeft, "ace", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[b-d]", RegexOptions.RightToLeft, "aac", "Pass. Group[0]=(1,2)"),
+                       new RegexTrial (@"a[-b]", RegexOptions.RightToLeft, "a-", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a[b-]", RegexOptions.RightToLeft, "a-", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a[b-a]", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"a[]b", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"a[", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"a]", RegexOptions.RightToLeft, "a]", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a[]]b", RegexOptions.RightToLeft, "a]b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[^bc]d", RegexOptions.RightToLeft, "aed", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[^bc]d", RegexOptions.RightToLeft, "abd", "Fail."),
+                       new RegexTrial (@"a[^-b]c", RegexOptions.RightToLeft, "adc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[^-b]c", RegexOptions.RightToLeft, "a-c", "Fail."),
+                       new RegexTrial (@"a[^]b]c", RegexOptions.RightToLeft, "a]c", "Fail."),
+                       new RegexTrial (@"a[^]b]c", RegexOptions.RightToLeft, "adc", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"\ba\b", RegexOptions.RightToLeft, "a-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"\ba\b", RegexOptions.RightToLeft, "-a", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"\ba\b", RegexOptions.RightToLeft, "-a-", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"\by\b", RegexOptions.RightToLeft, "xy", "Fail."),
+                       new RegexTrial (@"\by\b", RegexOptions.RightToLeft, "yz", "Fail."),
+                       new RegexTrial (@"\by\b", RegexOptions.RightToLeft, "xyz", "Fail."),
+                       new RegexTrial (@"\Ba\B", RegexOptions.RightToLeft, "a-", "Fail."),
+                       new RegexTrial (@"\Ba\B", RegexOptions.RightToLeft, "-a", "Fail."),
+                       new RegexTrial (@"\Ba\B", RegexOptions.RightToLeft, "-a-", "Fail."),
+                       new RegexTrial (@"\By\b", RegexOptions.RightToLeft, "xy", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"\by\B", RegexOptions.RightToLeft, "yz", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"\By\B", RegexOptions.RightToLeft, "xyz", "Pass. Group[0]=(1,1)"),
+                       new RegexTrial (@"\w", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"\w", RegexOptions.RightToLeft, "-", "Fail."),
+                       new RegexTrial (@"\W", RegexOptions.RightToLeft, "a", "Fail."),
+                       new RegexTrial (@"\W", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"a\sb", RegexOptions.RightToLeft, "a b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a\sb", RegexOptions.RightToLeft, "a-b", "Fail."),
+                       new RegexTrial (@"a\Sb", RegexOptions.RightToLeft, "a b", "Fail."),
+                       new RegexTrial (@"a\Sb", RegexOptions.RightToLeft, "a-b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"\d", RegexOptions.RightToLeft, "1", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"\d", RegexOptions.RightToLeft, "-", "Fail."),
+                       new RegexTrial (@"\D", RegexOptions.RightToLeft, "1", "Fail."),
+                       new RegexTrial (@"\D", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"[\w]", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"[\w]", RegexOptions.RightToLeft, "-", "Fail."),
+                       new RegexTrial (@"[\W]", RegexOptions.RightToLeft, "a", "Fail."),
+                       new RegexTrial (@"[\W]", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"a[\s]b", RegexOptions.RightToLeft, "a b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a[\s]b", RegexOptions.RightToLeft, "a-b", "Fail."),
+                       new RegexTrial (@"a[\S]b", RegexOptions.RightToLeft, "a b", "Fail."),
+                       new RegexTrial (@"a[\S]b", RegexOptions.RightToLeft, "a-b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"[\d]", RegexOptions.RightToLeft, "1", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"[\d]", RegexOptions.RightToLeft, "-", "Fail."),
+                       new RegexTrial (@"[\D]", RegexOptions.RightToLeft, "1", "Fail."),
+                       new RegexTrial (@"[\D]", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"ab|cd", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"ab|cd", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(2,2)"),
+                       new RegexTrial (@"()ef", RegexOptions.RightToLeft, "def", "Pass. Group[0]=(1,2) Group[1]=(1,0)"),
+                       new RegexTrial (@"*a", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"(*)b", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"$b", RegexOptions.RightToLeft, "b", "Fail."),
+                       new RegexTrial (@"a\", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"a\(b", RegexOptions.RightToLeft, "a(b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"a\(*b", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"a\(*b", RegexOptions.RightToLeft, "a((b", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"a\\b", RegexOptions.RightToLeft, "a\\b", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"abc)", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"(abc", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"((a))", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1)"),
+                       new RegexTrial (@"(a)b(c)", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
+                       new RegexTrial (@"a+b+c", RegexOptions.RightToLeft, "aabbabc", "Pass. Group[0]=(4,3)"),
+                       new RegexTrial (@"a{1,}b{1,}c", RegexOptions.RightToLeft, "aabbabc", "Pass. Group[0]=(4,3)"),
+                       new RegexTrial (@"a**", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"a.+?c", RegexOptions.RightToLeft, "abcabc", "Pass. Group[0]=(3,3)"),
+                       new RegexTrial (@"(a+|b)*", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
+                       new RegexTrial (@"(a+|b){0,}", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
+                       new RegexTrial (@"(a+|b)+", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
+                       new RegexTrial (@"(a+|b){1,}", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
+                       new RegexTrial (@"(a+|b)?", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1) Group[1]=(1,1)"),
+                       new RegexTrial (@"(a+|b){0,1}", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1) Group[1]=(1,1)"),
+                       new RegexTrial (@")(", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"[^ab]*", RegexOptions.RightToLeft, "cde", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"abc", RegexOptions.RightToLeft, "", "Fail."),
+                       new RegexTrial (@"a*", RegexOptions.RightToLeft, "", "Pass. Group[0]=(0,0)"),
+                       new RegexTrial (@"([abc])*d", RegexOptions.RightToLeft, "abbbcd", "Pass. Group[0]=(0,6) Group[1]=(4,1)(3,1)(2,1)(1,1)(0,1)"),
+                       new RegexTrial (@"([abc])*bcd", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,1)"),
+                       new RegexTrial (@"a|b|c|d|e", RegexOptions.RightToLeft, "e", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.RightToLeft, "ef", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
+                       new RegexTrial (@"abcd*efg", RegexOptions.RightToLeft, "abcdefg", "Pass. Group[0]=(0,7)"),
+                       new RegexTrial (@"ab*", RegexOptions.RightToLeft, "xabyabbbz", "Pass. Group[0]=(4,4)"),
+                       new RegexTrial (@"ab*", RegexOptions.RightToLeft, "xayabbbz", "Pass. Group[0]=(3,4)"),
+                       new RegexTrial (@"(ab|cd)e", RegexOptions.RightToLeft, "abcde", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
+                       new RegexTrial (@"[abhgefdc]ij", RegexOptions.RightToLeft, "hij", "Pass. Group[0]=(0,3)"),
+                       new RegexTrial (@"^(ab|cd)e", RegexOptions.RightToLeft, "abcde", "Fail."),
+                       new RegexTrial (@"(abc|)ef", RegexOptions.RightToLeft, "abcdef", "Pass. Group[0]=(4,2) Group[1]=(4,0)"),
+                       new RegexTrial (@"(a|b)c*d", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(1,3) Group[1]=(1,1)"),
+                       new RegexTrial (@"(ab|ab*)bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
+                       new RegexTrial (@"a([bc]*)c*", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,1)"),
+                       new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
+                       new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
+                       new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
+                       new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.RightToLeft, "adcdcde", "Pass. Group[0]=(0,7)"),
+                       new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.RightToLeft, "adcdcde", "Fail."),
+                       new RegexTrial (@"(ab|a)b*c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
+                       new RegexTrial (@"((a)(b)c)(d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]=(0,1) Group[3]=(1,1) Group[4]=(3,1)"),
+                       new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.RightToLeft, "alpha", "Pass. Group[0]=(0,5)"),
+                       new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.RightToLeft, "abh", "Pass. Group[0]=(1,2) Group[1]="),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "effgz", "Pass. Group[0]=(0,5) Group[1]=(0,5) Group[2]="),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "ij", "Pass. Group[0]=(0,2) Group[1]=(0,2) Group[2]=(1,1)"),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "effg", "Fail."),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "bcdd", "Fail."),
+                       new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "reffgz", "Pass. Group[0]=(1,5) Group[1]=(1,5) Group[2]="),
+                       new RegexTrial (@"((((((((((a))))))))))", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
+                       new RegexTrial (@"((((((((((a))))))))))\10", RegexOptions.RightToLeft, "aa", "Fail."),
+                       new RegexTrial (@"\10((((((((((a))))))))))", RegexOptions.RightToLeft, "aa", "Pass. Group[0]=(0,2) Group[1]=(1,1) Group[2]=(1,1) Group[3]=(1,1) Group[4]=(1,1) Group[5]=(1,1) Group[6]=(1,1) Group[7]=(1,1) Group[8]=(1,1) Group[9]=(1,1) Group[10]=(1,1)"),
+                       new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.RightToLeft, "aa", "Fail."),
+                       new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.RightToLeft, "a!", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
+                       new RegexTrial (@"(((((((((a)))))))))", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1)"),
+                       new RegexTrial (@"multiple words of text", RegexOptions.RightToLeft, "uh-uh", "Fail."),
+                       new RegexTrial (@"multiple words", RegexOptions.RightToLeft, "multiple words, yeah", "Pass. Group[0]=(0,14)"),
+                       new RegexTrial (@"(.*)c(.*)", RegexOptions.RightToLeft, "abcde", "Pass. Group[0]=(0,5) Group[1]=(0,2) Group[2]=(3,2)"),
+                       new RegexTrial (@"\((.*), (.*)\)", RegexOptions.RightToLeft, "(a, b)", "Pass. Group[0]=(0,6) Group[1]=(1,1) Group[2]=(4,1)"),
+                       new RegexTrial (@"[k]", RegexOptions.RightToLeft, "ab", "Fail."),
+                       new RegexTrial (@"abcd", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4)"),
+                       new RegexTrial (@"a(bc)d", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
+                       new RegexTrial (@"a[-]?c", RegexOptions.RightToLeft, "ac", "Pass. Group[0]=(0,2)"),
+                       new RegexTrial (@"(abc)\1", RegexOptions.RightToLeft, "abcabc", "Fail."),
+                       new RegexTrial (@"\1(abc)", RegexOptions.RightToLeft, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(3,3)"),
+                       new RegexTrial (@"([a-c]*)\1", RegexOptions.RightToLeft, "abcabc", "Fail."),
+                       new RegexTrial (@"\1([a-c]*)", RegexOptions.RightToLeft, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(3,3)"),
+                       new RegexTrial (@"\1", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"\2", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"(a)|\1", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
+                       new RegexTrial (@"(a)|\1", RegexOptions.RightToLeft, "x", "Fail."),
+                       new RegexTrial (@"(a)|\2", RegexOptions.RightToLeft, "-", "Error."),
+                       new RegexTrial (@"(([a-c])b*?\2)*", RegexOptions.RightToLeft, "ababbbcbc", "Pass. Group[0]=(9,0) Group[1]= Group[2]="),
+                       new RegexTrial (@"(([a-c])b*?\2){3}", RegexOptions.RightToLeft, "ababbbcbc", "Fail."),
+                       new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.RightToLeft, "aaxabxbaxbbx", "Fail."),
+                       new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.RightToLeft, "aaaxabaxbaaxbbax", "Fail."),
+                       new RegexTrial (@"((\3|b)\2(a)){2,}", RegexOptions.RightToLeft, "bbaababbabaaaaabbaaaabba", "Fail."),
+                   
+                                     
+                        new RegexTrial (@"\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)", RegexOptions.None, "((a(b))c)", 
+                            "Pass. Group[0]=(0,9) Group[1]="),
+                        new RegexTrial (@"^\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)$", RegexOptions.None, "((a(b))c)", 
+                            "Pass. Group[0]=(0,9) Group[1]="),
+                        new RegexTrial (@"^\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)$", RegexOptions.None, "((a(b))c", "Fail."), 
 
-        new RegexTrial (@"(?<=a)b", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"(?<=a)b", RegexOptions.RightToLeft, "cb", "Fail."),
-        new RegexTrial (@"(?<=a)b", RegexOptions.RightToLeft, "b", "Fail."),
-        new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "cb", "Fail."),
-        new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "b", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "b", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"a(?=d).", RegexOptions.RightToLeft, "adabad", "Pass. Group[0]=(4,2)"),
-        new RegexTrial (@"a(?=c|d).", RegexOptions.RightToLeft, "adabad", "Pass. Group[0]=(4,2)"),
+                        new RegexTrial (@"^\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)$", RegexOptions.None, "())", "Fail."), 
 
-        new RegexTrial (@"ab*c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab*bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab*bc", RegexOptions.RightToLeft, "abbc", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab*bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@".{1}", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(5,1)"),
-        new RegexTrial (@".{3,4}", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(2,4)"),
-        new RegexTrial (@"ab{0,}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abbc", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abc", "Fail."),
-        new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abq", "Fail."),
-        new RegexTrial (@"ab{1,}bc", RegexOptions.RightToLeft, "abq", "Fail."),
-        new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{1,}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{1,3}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{3,4}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
-        new RegexTrial (@"ab{4,5}bc", RegexOptions.RightToLeft, "abbbbc", "Fail."),
-        new RegexTrial (@"ab?bc", RegexOptions.RightToLeft, "abbc", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"ab?bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab{0,1}bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab?bc", RegexOptions.RightToLeft, "abbbbc", "Fail."),
-        new RegexTrial (@"ab?c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"ab{0,1}c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^abc$", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^abc$", RegexOptions.RightToLeft, "abcc", "Fail."),
-        new RegexTrial (@"^abc", RegexOptions.RightToLeft, "abcc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^abc$", RegexOptions.RightToLeft, "aabc", "Fail."),
-        new RegexTrial (@"abc$", RegexOptions.RightToLeft, "aabc", "Pass. Group[0]=(1,3)"),
-        new RegexTrial (@"abc$", RegexOptions.RightToLeft, "aabcd", "Fail."),
-        new RegexTrial (@"^", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,0)"),
-        new RegexTrial (@"$", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(3,0)"),
-        new RegexTrial (@"a.c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a.c", RegexOptions.RightToLeft, "axc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a.*c", RegexOptions.RightToLeft, "axyzc", "Pass. Group[0]=(0,5)"),
-        new RegexTrial (@"a.*c", RegexOptions.RightToLeft, "axyzd", "Fail."),
-        new RegexTrial (@"a[bc]d", RegexOptions.RightToLeft, "abc", "Fail."),
-        new RegexTrial (@"a[bc]d", RegexOptions.RightToLeft, "abd", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[b-d]e", RegexOptions.RightToLeft, "abd", "Fail."),
-        new RegexTrial (@"a[b-d]e", RegexOptions.RightToLeft, "ace", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[b-d]", RegexOptions.RightToLeft, "aac", "Pass. Group[0]=(1,2)"),
-        new RegexTrial (@"a[-b]", RegexOptions.RightToLeft, "a-", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a[b-]", RegexOptions.RightToLeft, "a-", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a[b-a]", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"a[]b", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"a[", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"a]", RegexOptions.RightToLeft, "a]", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a[]]b", RegexOptions.RightToLeft, "a]b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[^bc]d", RegexOptions.RightToLeft, "aed", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[^bc]d", RegexOptions.RightToLeft, "abd", "Fail."),
-        new RegexTrial (@"a[^-b]c", RegexOptions.RightToLeft, "adc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[^-b]c", RegexOptions.RightToLeft, "a-c", "Fail."),
-        new RegexTrial (@"a[^]b]c", RegexOptions.RightToLeft, "a]c", "Fail."),
-        new RegexTrial (@"a[^]b]c", RegexOptions.RightToLeft, "adc", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"\ba\b", RegexOptions.RightToLeft, "a-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\ba\b", RegexOptions.RightToLeft, "-a", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"\ba\b", RegexOptions.RightToLeft, "-a-", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"\by\b", RegexOptions.RightToLeft, "xy", "Fail."),
-        new RegexTrial (@"\by\b", RegexOptions.RightToLeft, "yz", "Fail."),
-        new RegexTrial (@"\by\b", RegexOptions.RightToLeft, "xyz", "Fail."),
-        new RegexTrial (@"\Ba\B", RegexOptions.RightToLeft, "a-", "Fail."),
-        new RegexTrial (@"\Ba\B", RegexOptions.RightToLeft, "-a", "Fail."),
-        new RegexTrial (@"\Ba\B", RegexOptions.RightToLeft, "-a-", "Fail."),
-        new RegexTrial (@"\By\b", RegexOptions.RightToLeft, "xy", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"\by\B", RegexOptions.RightToLeft, "yz", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\By\B", RegexOptions.RightToLeft, "xyz", "Pass. Group[0]=(1,1)"),
-        new RegexTrial (@"\w", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\w", RegexOptions.RightToLeft, "-", "Fail."),
-        new RegexTrial (@"\W", RegexOptions.RightToLeft, "a", "Fail."),
-        new RegexTrial (@"\W", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"a\sb", RegexOptions.RightToLeft, "a b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a\sb", RegexOptions.RightToLeft, "a-b", "Fail."),
-        new RegexTrial (@"a\Sb", RegexOptions.RightToLeft, "a b", "Fail."),
-        new RegexTrial (@"a\Sb", RegexOptions.RightToLeft, "a-b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"\d", RegexOptions.RightToLeft, "1", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"\d", RegexOptions.RightToLeft, "-", "Fail."),
-        new RegexTrial (@"\D", RegexOptions.RightToLeft, "1", "Fail."),
-        new RegexTrial (@"\D", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"[\w]", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"[\w]", RegexOptions.RightToLeft, "-", "Fail."),
-        new RegexTrial (@"[\W]", RegexOptions.RightToLeft, "a", "Fail."),
-        new RegexTrial (@"[\W]", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"a[\s]b", RegexOptions.RightToLeft, "a b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a[\s]b", RegexOptions.RightToLeft, "a-b", "Fail."),
-        new RegexTrial (@"a[\S]b", RegexOptions.RightToLeft, "a b", "Fail."),
-        new RegexTrial (@"a[\S]b", RegexOptions.RightToLeft, "a-b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"[\d]", RegexOptions.RightToLeft, "1", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"[\d]", RegexOptions.RightToLeft, "-", "Fail."),
-        new RegexTrial (@"[\D]", RegexOptions.RightToLeft, "1", "Fail."),
-        new RegexTrial (@"[\D]", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"ab|cd", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"ab|cd", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(2,2)"),
-        new RegexTrial (@"()ef", RegexOptions.RightToLeft, "def", "Pass. Group[0]=(1,2) Group[1]=(1,0)"),
-        new RegexTrial (@"*a", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"(*)b", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"$b", RegexOptions.RightToLeft, "b", "Fail."),
-        new RegexTrial (@"a\", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"a\(b", RegexOptions.RightToLeft, "a(b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"a\(*b", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"a\(*b", RegexOptions.RightToLeft, "a((b", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"a\\b", RegexOptions.RightToLeft, "a\\b", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"abc)", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"(abc", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"((a))", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1)"),
-        new RegexTrial (@"(a)b(c)", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
-        new RegexTrial (@"a+b+c", RegexOptions.RightToLeft, "aabbabc", "Pass. Group[0]=(4,3)"),
-        new RegexTrial (@"a{1,}b{1,}c", RegexOptions.RightToLeft, "aabbabc", "Pass. Group[0]=(4,3)"),
-        new RegexTrial (@"a**", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"a.+?c", RegexOptions.RightToLeft, "abcabc", "Pass. Group[0]=(3,3)"),
-        new RegexTrial (@"(a+|b)*", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
-        new RegexTrial (@"(a+|b){0,}", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
-        new RegexTrial (@"(a+|b)+", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
-        new RegexTrial (@"(a+|b){1,}", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
-        new RegexTrial (@"(a+|b)?", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1) Group[1]=(1,1)"),
-        new RegexTrial (@"(a+|b){0,1}", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1) Group[1]=(1,1)"),
-        new RegexTrial (@")(", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"[^ab]*", RegexOptions.RightToLeft, "cde", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"abc", RegexOptions.RightToLeft, "", "Fail."),
-        new RegexTrial (@"a*", RegexOptions.RightToLeft, "", "Pass. Group[0]=(0,0)"),
-        new RegexTrial (@"([abc])*d", RegexOptions.RightToLeft, "abbbcd", "Pass. Group[0]=(0,6) Group[1]=(4,1)(3,1)(2,1)(1,1)(0,1)"),
-        new RegexTrial (@"([abc])*bcd", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,1)"),
-        new RegexTrial (@"a|b|c|d|e", RegexOptions.RightToLeft, "e", "Pass. Group[0]=(0,1)"),
-        new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.RightToLeft, "ef", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
-        new RegexTrial (@"abcd*efg", RegexOptions.RightToLeft, "abcdefg", "Pass. Group[0]=(0,7)"),
-        new RegexTrial (@"ab*", RegexOptions.RightToLeft, "xabyabbbz", "Pass. Group[0]=(4,4)"),
-        new RegexTrial (@"ab*", RegexOptions.RightToLeft, "xayabbbz", "Pass. Group[0]=(3,4)"),
-        new RegexTrial (@"(ab|cd)e", RegexOptions.RightToLeft, "abcde", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
-        new RegexTrial (@"[abhgefdc]ij", RegexOptions.RightToLeft, "hij", "Pass. Group[0]=(0,3)"),
-        new RegexTrial (@"^(ab|cd)e", RegexOptions.RightToLeft, "abcde", "Fail."),
-        new RegexTrial (@"(abc|)ef", RegexOptions.RightToLeft, "abcdef", "Pass. Group[0]=(4,2) Group[1]=(4,0)"),
-        new RegexTrial (@"(a|b)c*d", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(1,3) Group[1]=(1,1)"),
-        new RegexTrial (@"(ab|ab*)bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
-        new RegexTrial (@"a([bc]*)c*", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,1)"),
-        new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
-        new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
-        new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
-        new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.RightToLeft, "adcdcde", "Pass. Group[0]=(0,7)"),
-        new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.RightToLeft, "adcdcde", "Fail."),
-        new RegexTrial (@"(ab|a)b*c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
-        new RegexTrial (@"((a)(b)c)(d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]=(0,1) Group[3]=(1,1) Group[4]=(3,1)"),
-        new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.RightToLeft, "alpha", "Pass. Group[0]=(0,5)"),
-        new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.RightToLeft, "abh", "Pass. Group[0]=(1,2) Group[1]="),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "effgz", "Pass. Group[0]=(0,5) Group[1]=(0,5) Group[2]="),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "ij", "Pass. Group[0]=(0,2) Group[1]=(0,2) Group[2]=(1,1)"),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "effg", "Fail."),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "bcdd", "Fail."),
-        new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "reffgz", "Pass. Group[0]=(1,5) Group[1]=(1,5) Group[2]="),
-        new RegexTrial (@"((((((((((a))))))))))", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
-        new RegexTrial (@"((((((((((a))))))))))\10", RegexOptions.RightToLeft, "aa", "Fail."),
-        new RegexTrial (@"\10((((((((((a))))))))))", RegexOptions.RightToLeft, "aa", "Pass. Group[0]=(0,2) Group[1]=(1,1) Group[2]=(1,1) Group[3]=(1,1) Group[4]=(1,1) Group[5]=(1,1) Group[6]=(1,1) Group[7]=(1,1) Group[8]=(1,1) Group[9]=(1,1) Group[10]=(1,1)"),
-        new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.RightToLeft, "aa", "Fail."),
-        new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.RightToLeft, "a!", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
-        new RegexTrial (@"(((((((((a)))))))))", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1)"),
-        new RegexTrial (@"multiple words of text", RegexOptions.RightToLeft, "uh-uh", "Fail."),
-        new RegexTrial (@"multiple words", RegexOptions.RightToLeft, "multiple words, yeah", "Pass. Group[0]=(0,14)"),
-        new RegexTrial (@"(.*)c(.*)", RegexOptions.RightToLeft, "abcde", "Pass. Group[0]=(0,5) Group[1]=(0,2) Group[2]=(3,2)"),
-        new RegexTrial (@"\((.*), (.*)\)", RegexOptions.RightToLeft, "(a, b)", "Pass. Group[0]=(0,6) Group[1]=(1,1) Group[2]=(4,1)"),
-        new RegexTrial (@"[k]", RegexOptions.RightToLeft, "ab", "Fail."),
-        new RegexTrial (@"abcd", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4)"),
-        new RegexTrial (@"a(bc)d", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
-        new RegexTrial (@"a[-]?c", RegexOptions.RightToLeft, "ac", "Pass. Group[0]=(0,2)"),
-        new RegexTrial (@"(abc)\1", RegexOptions.RightToLeft, "abcabc", "Fail."),
-        new RegexTrial (@"\1(abc)", RegexOptions.RightToLeft, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(3,3)"),
-        new RegexTrial (@"([a-c]*)\1", RegexOptions.RightToLeft, "abcabc", "Fail."),
-        new RegexTrial (@"\1([a-c]*)", RegexOptions.RightToLeft, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(3,3)"),
-        new RegexTrial (@"\1", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"\2", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"(a)|\1", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
-        new RegexTrial (@"(a)|\1", RegexOptions.RightToLeft, "x", "Fail."),
-        new RegexTrial (@"(a)|\2", RegexOptions.RightToLeft, "-", "Error."),
-        new RegexTrial (@"(([a-c])b*?\2)*", RegexOptions.RightToLeft, "ababbbcbc", "Pass. Group[0]=(9,0) Group[1]= Group[2]="),
-        new RegexTrial (@"(([a-c])b*?\2){3}", RegexOptions.RightToLeft, "ababbbcbc", "Fail."),
-        new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.RightToLeft, "aaxabxbaxbbx", "Fail."),
-        new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.RightToLeft, "aaaxabaxbaaxbbax", "Fail."),
-        new RegexTrial (@"((\3|b)\2(a)){2,}", RegexOptions.RightToLeft, "bbaababbabaaaaabbaaaabba", "Fail."),
 
+                        new RegexTrial (@"(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))", RegexOptions.None, "((a(b))c)", 
+                            "Pass. Group[0]=(0,9) Group[1]=(0,9) Group[2]=(0,1)(1,2)(3,2) Group[3]=(5,1)(6,2)(8,1) Group[4]= Group[5]=(4,1)(2,4)(1,7)"),
+                        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a(b))c)", 
+                            "Pass. Group[0]=(0,9) Group[1]=(0,9) Group[2]=(0,1)(1,2)(3,2) Group[3]=(5,1)(6,2)(8,1) Group[4]= Group[5]=(4,1)(2,4)(1,7)"),
+                        new RegexTrial (@"(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))", RegexOptions.None, "x(a((b)))b)x", 
+                            "Pass. Group[0]=(1,9) Group[1]=(1,9) Group[2]=(1,2)(3,1)(4,2) Group[3]=(6,1)(7,1)(8,2) Group[4]= Group[5]=(5,1)(4,3)(2,6)"),
+                        new RegexTrial (@"(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))", RegexOptions.None, "x((a((b)))x", 
+                            "Pass. Group[0]=(2,9) Group[1]=(2,9) Group[2]=(2,2)(4,1)(5,2) Group[3]=(7,1)(8,1)(9,2) Group[4]= Group[5]=(6,1)(5,3)(3,6)"),
+                        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a(b))c","Fail."),
+                        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a(b))c))","Fail."),
+                        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, ")(","Fail."),
+                        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a((b))c)","Fail."),
 
-        new RegexTrial (@"\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)", RegexOptions.None, "((a(b))c)",
-        "Pass. Group[0]=(0,9) Group[1]="),
-        new RegexTrial (@"^\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)$", RegexOptions.None, "((a(b))c)",
-        "Pass. Group[0]=(0,9) Group[1]="),
-        new RegexTrial (@"^\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)$", RegexOptions.None, "((a(b))c", "Fail."),
+                       new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
+                       
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[n]", "Pass. Group[0]=(0,3) Group[1]=(1,1)"),
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "n", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "n[i]e", "Fail."),
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[n", "Fail."),
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "]n]", "Fail."),
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, @"\[n\]", "Fail."),
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, @"[n\]", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, @"[n\[]", "Pass. Group[0]=(0,5) Group[1]=(1,3)"),
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, @"[[n]", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
+                       new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[s] . [n]", "Pass. Group[0]=(0,9) Group[1]=(1,1) Group[2]=(7,1)"),
+                       new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[s] . n", "Pass. Group[0]=(0,7) Group[1]=(1,1) Group[2]=(6,1)"),
+                       new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "s.[ n ]", "Pass. Group[0]=(0,7) Group[1]=(0,1) Group[2]=(3,3)"),
+                       new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, " . n", "Pass. Group[0]=(0,4) Group[1]=(0,1) Group[2]=(3,1)"),
+                       new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "s. ", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
+                       new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[.]. ", "Pass. Group[0]=(0,5) Group[1]=(1,1) Group[2]=(4,1)"),
+                       new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[c].[s].[n]", "Pass. Group[0]=(0,11) Group[1]=(1,1) Group[2]=(5,1) Group[3]=(9,1)"),
+                       new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, " c . s . n ", "Pass. Group[0]=(0,11) Group[1]=(0,3) Group[2]=(5,2) Group[3]=(9,2)"),
+                       new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, " . [.] . [ ]", "Pass. Group[0]=(0,12) Group[1]=(0,1) Group[2]=(4,1) Group[3]=(10,1)"),
+                       new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "c.n", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
+                       new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[c] .[n]", "Pass. Group[0]=(0,8) Group[1]=(1,1) Group[2]=(6,1)"),
+                       new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "c.n.", "Fail."),
+                       new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "s.c.n", "Pass. Group[0]=(0,5) Group[1]=(0,1) Group[2]=(2,1) Group[3]=(4,1)"),
+                       new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[s].[c].[n]", "Pass. Group[0]=(0,11) Group[1]=(1,1) Group[2]=(5,1) Group[3]=(9,1)"),
+                       new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[s].[c].", "Fail."),
+                       new RegexTrial(@"^((\[(?<ColName>.+)\])|(?<ColName>\S+))([ ]+(?<Order>ASC|DESC))?$", RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture, "[id]]", "Pass. Group[0]=(0,5) Group[1]=(1,3) Group[2]="),
+                       new RegexTrial(@"a{1,2147483647}", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
+                       new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.None, "[a]", "Pass. Group[0]=(0,3) Group[1]=(0,3) Group[2]=(0,3) Group[3]=(1,1)"),
 
-        new RegexTrial (@"^\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)$", RegexOptions.None, "())", "Fail."),
-
-
-        new RegexTrial (@"(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))", RegexOptions.None, "((a(b))c)",
-        "Pass. Group[0]=(0,9) Group[1]=(0,9) Group[2]=(0,1)(1,2)(3,2) Group[3]=(5,1)(6,2)(8,1) Group[4]= Group[5]=(4,1)(2,4)(1,7)"),
-        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a(b))c)",
-        "Pass. Group[0]=(0,9) Group[1]=(0,9) Group[2]=(0,1)(1,2)(3,2) Group[3]=(5,1)(6,2)(8,1) Group[4]= Group[5]=(4,1)(2,4)(1,7)"),
-        new RegexTrial (@"(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))", RegexOptions.None, "x(a((b)))b)x",
-        "Pass. Group[0]=(1,9) Group[1]=(1,9) Group[2]=(1,2)(3,1)(4,2) Group[3]=(6,1)(7,1)(8,2) Group[4]= Group[5]=(5,1)(4,3)(2,6)"),
-        new RegexTrial (@"(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))", RegexOptions.None, "x((a((b)))x",
-        "Pass. Group[0]=(2,9) Group[1]=(2,9) Group[2]=(2,2)(4,1)(5,2) Group[3]=(7,1)(8,1)(9,2) Group[4]= Group[5]=(6,1)(5,3)(3,6)"),
-        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a(b))c","Fail."),
-        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a(b))c))","Fail."),
-        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, ")(","Fail."),
-        new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a((b))c)","Fail."),
-
-        new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
-
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[n]", "Pass. Group[0]=(0,3) Group[1]=(1,1)"),
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "n", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "n[i]e", "Fail."),
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[n", "Fail."),
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "]n]", "Fail."),
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, @"\[n\]", "Fail."),
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, @"[n\]", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, @"[n\[]", "Pass. Group[0]=(0,5) Group[1]=(1,3)"),
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, @"[[n]", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
-        new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[s] . [n]", "Pass. Group[0]=(0,9) Group[1]=(1,1) Group[2]=(7,1)"),
-        new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[s] . n", "Pass. Group[0]=(0,7) Group[1]=(1,1) Group[2]=(6,1)"),
-        new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "s.[ n ]", "Pass. Group[0]=(0,7) Group[1]=(0,1) Group[2]=(3,3)"),
-        new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, " . n", "Pass. Group[0]=(0,4) Group[1]=(0,1) Group[2]=(3,1)"),
-        new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "s. ", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
-        new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[.]. ", "Pass. Group[0]=(0,5) Group[1]=(1,1) Group[2]=(4,1)"),
-        new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[c].[s].[n]", "Pass. Group[0]=(0,11) Group[1]=(1,1) Group[2]=(5,1) Group[3]=(9,1)"),
-        new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, " c . s . n ", "Pass. Group[0]=(0,11) Group[1]=(0,3) Group[2]=(5,2) Group[3]=(9,2)"),
-        new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, " . [.] . [ ]", "Pass. Group[0]=(0,12) Group[1]=(0,1) Group[2]=(4,1) Group[3]=(10,1)"),
-        new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "c.n", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
-        new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[c] .[n]", "Pass. Group[0]=(0,8) Group[1]=(1,1) Group[2]=(6,1)"),
-        new RegexTrial(@"^((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "c.n.", "Fail."),
-        new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "s.c.n", "Pass. Group[0]=(0,5) Group[1]=(0,1) Group[2]=(2,1) Group[3]=(4,1)"),
-        new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[s].[c].[n]", "Pass. Group[0]=(0,11) Group[1]=(1,1) Group[2]=(5,1) Group[3]=(9,1)"),
-        new RegexTrial(@"^((\[(?<SCHEMA>[^\]]+)\])|(?<SCHEMA>[^\.\[\]]+))\s*\.\s*((\[(?<CATALOG>[^\]]+)\])|(?<CATALOG>[^\.\[\]]+))\s*\.\s*((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture, "[s].[c].", "Fail."),
-        new RegexTrial(@"^((\[(?<ColName>.+)\])|(?<ColName>\S+))([ ]+(?<Order>ASC|DESC))?$", RegexOptions.IgnoreCase|RegexOptions.ExplicitCapture, "[id]]", "Pass. Group[0]=(0,5) Group[1]=(1,3) Group[2]="),
-        new RegexTrial(@"a{1,2147483647}", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
-        new RegexTrial(@"^((\[(?<NAME>[^\]]+)\])|(?<NAME>[^\.\[\]]+))$", RegexOptions.None, "[a]", "Pass. Group[0]=(0,3) Group[1]=(0,3) Group[2]=(0,3) Group[3]=(1,1)"),
-
-    };
-}
+               };
+       }
 }
index 220314ec11b080b4c66433afa39f06b49e765a28..a6b0119db5830e8ded56916dcc0d40e7db2d2f84 100644 (file)
@@ -15,551 +15,551 @@ using NUnit.Framework;
 
 namespace MonoTests.System.Text.RegularExpressions
 {
-[TestFixture]
-public class RegexBugs
-{
-    [Test] // bug #51146
-    public void SplitGroup ()
-    {
-        string [] splitResult = new Regex ("-").Split ("a-bcd-e-fg");
-        string [] expected = new string [] {"a", "bcd", "e", "fg"};
-        int length = expected.Length;
-        Assert.AreEqual (length, splitResult.Length, "#1");
-        for (int i = 0; i < length; i++)
-            Assert.AreEqual (expected [i], splitResult [i], "#2:" + i);
-
-        splitResult = new Regex ("(-)").Split ("a-bcd-e-fg");
-        expected = new string [] {"a", "-", "bcd", "-", "e", "-", "fg"};
-        length = expected.Length;
-        Assert.AreEqual (length, splitResult.Length, "#3");
-        for (int i = 0; i < length; i++)
-            Assert.AreEqual (expected [i], splitResult [i], "#4:" + i);
-
-        splitResult = new Regex ("(-)b(c)").Split ("a-bcd-e-fg");
-        expected = new string [] {"a", "-", "c", "d-e-fg" };
-        length = expected.Length;
-        Assert.AreEqual (length, splitResult.Length, "#5");
-        for (int i = 0; i < length; i++)
-            Assert.AreEqual (expected [i], splitResult [i], "#6:" + i);
-
-        splitResult = new Regex ("-").Split ("a-bcd-e-fg-");
-        expected = new string [] {"a", "bcd", "e", "fg", ""};
-        length = expected.Length;
-        Assert.AreEqual (length, splitResult.Length, "#7");
-        for (int i = 0; i < length; i++)
-            Assert.AreEqual (expected [i], splitResult [i], "#8:" + i);
-    }
-
-    [Test] // bug #42529
-    public void MathEmptyGroup ()
-    {
-        string str = "Match something from here.";
-
-        Assert.IsFalse (Regex.IsMatch(str, @"(something|dog)$"), "#1");
-        Assert.IsTrue (Regex.IsMatch (str, @"(|something|dog)$"), "#2");
-        Assert.IsTrue (Regex.IsMatch (str, @"(something||dog)$"), "#3");
-        Assert.IsTrue (Regex.IsMatch (str, @"(something|dog|)$"), "#4");
-
-        Assert.IsTrue (Regex.IsMatch (str, @"(something|dog)*"), "#5");
-        Assert.IsTrue (Regex.IsMatch (str, @"(|something|dog)*"), "#6");
-        Assert.IsTrue (Regex.IsMatch (str, @"(something||dog)*"), "#7");
-        Assert.IsTrue (Regex.IsMatch (str, @"(something|dog|)*"), "#8");
-
-        Assert.IsTrue (Regex.IsMatch (str, @"(something|dog)*$"), "#9");
-        Assert.IsTrue (Regex.IsMatch (str, @"(|something|dog)*$"), "#10");
-        Assert.IsTrue (Regex.IsMatch (str, @"(something||dog)*$"), "#11");
-        Assert.IsTrue (Regex.IsMatch (str, @"(something|dog|)*$"), "#12");
-    }
-
-    [Test] // bug #52924
-    public void Braces ()
-    {
-        Regex regVar = new Regex(@"{\w+}");
-        Match m = regVar.Match ("{   }");
-        Assert.IsFalse  (m.Success);
-    }
-
-    [Test] // bug #71077
-    public void WhiteSpaceGroupped ()
-    {
-        string s = "\n";
-        string p = @"[\s\S]";  // =Category.Any
-        Assert.IsTrue (Regex.IsMatch (s, p));
-    }
-
-    [Test] // bug #45976
-    public void RangeIgnoreCase()
-    {
-        string str = "AAABBBBAAA" ;
-        Assert.IsTrue (Regex.IsMatch(str, @"[A-F]+", RegexOptions.IgnoreCase), "#A1");
-        Assert.IsTrue (Regex.IsMatch (str, @"[a-f]+", RegexOptions.IgnoreCase), "#A2");
-        Assert.IsTrue (Regex.IsMatch (str, @"[A-Fa-f]+", RegexOptions.IgnoreCase), "#A3");
-        Assert.IsTrue (Regex.IsMatch (str, @"[AB]+", RegexOptions.IgnoreCase), "#A4");
-        Assert.IsTrue (Regex.IsMatch (str, @"[A-B]+", RegexOptions.IgnoreCase), "#A5");
-
-        str = "AaaBBBaAa" ;
-        Assert.IsTrue (Regex.IsMatch (str, @"[A-F]+", RegexOptions.IgnoreCase), "#B1");
-        Assert.IsTrue (Regex.IsMatch (str, @"[a-f]+", RegexOptions.IgnoreCase), "#B2");
-        Assert.IsTrue (Regex.IsMatch (str, @"[A-Fa-f]+", RegexOptions.IgnoreCase), "#B3");
-        Assert.IsTrue (Regex.IsMatch (str, @"[AB]+", RegexOptions.IgnoreCase), "#B4");
-        Assert.IsTrue (Regex.IsMatch (str, @"[A-B]+", RegexOptions.IgnoreCase), "#B5");
-
-        str = "Aaa[";
-        Assert.IsTrue (Regex.IsMatch (str, @"[A-a]+", RegexOptions.IgnoreCase), "#C");
-
-        str = "Ae";
-        Assert.IsTrue (Regex.IsMatch (str, @"[A-a]+", RegexOptions.IgnoreCase), "#D");
-    }
-
-    [Test] // bug #54797
-    public void Escape0 ()
-    {
-        Regex r = new Regex(@"^[\s\0]*$");
-        Assert.IsTrue (r.Match(" \0").Success);
-    }
-
-    [Test] // bug #432172
-    public void NoBitmap ()
-    {
-        Regex rx =
-            new Regex ("([^a-zA-Z_0-9])+", RegexOptions.Compiled);
-        Assert.AreEqual ("--", rx.Match ("A--B-").Value);
-    }
-
-    [Test]
-    public void MultipleMatches()
-    {
-        Regex regex = new Regex (@"^(?'path'.*(\\|/)|(/|\\))(?'file'.*)$");
-        Match match = regex.Match (@"d:\Temp\SomeDir\SomeDir\bla.xml");
-
-        Assert.AreEqual (5, match.Groups.Count, "#1");
-        Assert.AreEqual ("1", regex.GroupNameFromNumber (1), "#2");
-        Assert.AreEqual ("2", regex.GroupNameFromNumber (2), "#3");
-        Assert.AreEqual ("path", regex.GroupNameFromNumber (3), "#4");
-        Assert.AreEqual ("file", regex.GroupNameFromNumber (4), "#5");
-        Assert.AreEqual ("\\", match.Groups [1].Value, "#6");
-        Assert.AreEqual (string.Empty, match.Groups [2].Value, "#7");
-        Assert.AreEqual (@"d:\Temp\SomeDir\SomeDir\", match.Groups [3].Value, "#8");
-        Assert.AreEqual ("bla.xml", match.Groups [4].Value, "#9");
-    }
-
-    [Test] // bug #56000
-    public void SameNameGroups ()
-    {
-        string rex = "link\\s*rel\\s*=\\s*[\"']?alternate[\"']?\\s*";
-        rex += "type\\s*=\\s*[\"']?text/xml[\"']?\\s*href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|'(?<1>[^']*)'|(?<1>\\S+))";
-        new Regex (rex, RegexOptions.IgnoreCase);
-    }
-
-    [Test] // bug #52890
-    public void UndefinedGroup ()
-    {
-        Regex regex = new Regex( "[A-Za-z_0-9]" );
-        Match m = regex.Match( "123456789abc" );
-        Group g = m.Groups["not_defined"];
-        Assert.IsNotNull (g, "#1");
-        Assert.AreEqual (0, g.Index, "#2");
-        Assert.AreEqual (0, g.Length, "#3");
-        Assert.AreEqual (string.Empty, g.Value, "#4");
-        Assert.IsFalse (g.Success, "#5");
-        Assert.IsNotNull (g.Captures, "#6");
-        Assert.AreEqual (0, g.Captures.Count, "#7");
-    }
-
-    [Test]
-    public void Quantifiers1 ()
-    {
-        Regex re = new Regex ("[\\w\\W]{8,32}");
-        Match m = re.Match (new string ('1', 7));
-        Assert.IsFalse (m.Success);
-    }
-
-    [Test]
-    public void Quantifiers2 ()
-    {
-        Regex re = new Regex ("[\\w\\W]{8,32}");
-        Match m = re.Match (new string ('1', 8));
-        Assert.IsTrue (m.Success);
-    }
-
-    [Test]
-    public void Quantifiers3 ()
-    {
-        Regex re = new Regex ("[\\w\\W]{8,32}");
-        Match m = re.Match (new string ('1', 16));
-        Assert.IsTrue (m.Success);
-    }
-
-    [Test]
-    public void Quantifiers4 ()
-    {
-        Regex re = new Regex ("[\\w\\W]{8,32}");
-        Match m = re.Match (new string ('1', 32));
-        Assert.IsTrue (m.Success);
-    }
-
-    [Test]
-    public void Quantifiers5 ()
-    {
-        Regex re = new Regex ("[\\w\\W]{8,32}");
-        Match m = re.Match (new string ('1', 33));
-        Assert.IsTrue (m.Success);
-    }
-
-    [Test]
-    public void CategoryAndNegated () // Was a regression after first attemp to fix 59150.
-    {
-        string text = "<?xml version=\"1.0\"?>";
-        Regex re = new Regex ("<\\s*(\\/?)\\s*([\\s\\S]*?)\\s*(\\/?)\\s*>");
-        text = re.Replace (text, "{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
-        Assert.AreEqual ("{blue:&lt;}{maroon:?xml version=\"1.0\"?}{blue:&gt;}", text);
-    }
-
-    [Test]
-    public void BackSpace ()
-    {
-        string text = "Go, \bNo\bGo" ;
-        Regex re = new Regex(@"\b[\b]");
-        text = re.Replace(text, " ");
-        Assert.AreEqual ("Go, \bNo Go", text);
-    }
-
-    [Test]
-    public void ReplaceNegOneAndStartat ()
-    {
-        string text = "abcdeeee";
-        Regex re = new Regex("e+");
-        text = re.Replace(text, "e", -1, 4);
-        Assert.AreEqual ("abcde", text);
-    }
-
-    [Test] // bug #57274
-    public void SplitInfiniteLoop ()
-    {
-        string ss = "a b c d e";
-        string [] words = Regex.Split (ss, "[ \t\n\r]*");
-        Assert.AreEqual (11, words.Length, "#1");
-        Assert.AreEqual (string.Empty, words [0], "#2");
-        Assert.AreEqual ("a", words [1], "#3");
-        Assert.AreEqual (string.Empty, words [2], "#4");
-        Assert.AreEqual ("b", words [3], "#5");
-        Assert.AreEqual (string.Empty, words [4], "#6");
-        Assert.AreEqual ("c", words [5], "#7");
-        Assert.AreEqual (string.Empty, words [6], "#8");
-        Assert.AreEqual ("d", words [7], "#9");
-        Assert.AreEqual (string.Empty, words [8], "#10");
-        Assert.AreEqual ("e", words [9], "#11");
-        Assert.AreEqual (string.Empty, words [10], "#12");
-    }
-
-    [Test] // bug #69065
-    public void CaseAndSearch ()
-    {
-        string test1 =  @"\f!E   ZWEITBAD :REGLER-PARAMETER 20.10.2004  SEITE   1";
-        string test2 =  @" REGLER-PARAMETER ";
-        string test3 =  @"REGLER-PARAMETER ";
-        Regex x = new Regex ("REGLER-PARAMETER",RegexOptions.IgnoreCase|RegexOptions.Compiled);
-
-        Match m = x.Match (test1);
-        Assert.IsTrue (m.Success, "#1");
-
-        m = x.Match (test2);
-        Assert.IsTrue (m.Success, "#2");
-
-        m = x.Match (test3);
-        Assert.IsTrue (m.Success, "#3");
-    }
-
-    [Test] // bug #69193
-    public void QuantifiersParseError ()
-    {
-        new Regex ("{1,a}");
-        new Regex ("{a,1}");
-        new Regex ("{a}");
-        new Regex ("{,a}");
-    }
-
-    [Test] // bug #74753
-    public void NameLookupInEmptyMatch ()
-    {
-        Regex regTime = new Regex (
-            @"(?<hour>[0-9]{1,2})([\:](?<minute>[0-9]{1,2})){0,1}([\:](?<second>[0-9]{1,2})){0,1}\s*(?<ampm>(?i:(am|pm)){0,1})");
-
-        Match mTime = regTime.Match("");
-        Assert.AreEqual ("", mTime.Groups["hour"].Value, "#A1");
-        Assert.AreEqual ("", mTime.Groups ["minute"].Value, "#A2");
-        Assert.AreEqual ("", mTime.Groups ["second"].Value, "#A3");
-        Assert.AreEqual ("", mTime.Groups ["ampm"].Value, "#A4");
-
-        mTime = regTime.Match("12:00 pm");
-        Assert.AreEqual ("12", mTime.Groups ["hour"].Value, "#B1");
-        Assert.AreEqual ("00", mTime.Groups ["minute"].Value, "#B2");
-        Assert.AreEqual ("", mTime.Groups ["second"].Value, "#B3");
-        Assert.AreEqual ("pm", mTime.Groups ["ampm"].Value, "#B4");
-    }
-
-    [Test] // bug #77626
-    public void HangingHyphens ()
-    {
-        Assert.IsTrue (Regex.IsMatch ("mT1[", @"m[0-9A-Za-z_-]+\["), "#A1");
-        Assert.IsTrue (Regex.IsMatch ("mT1[", @"m[-0-9A-Za-z_]+\["), "#A2");
-
-        Assert.IsTrue (Regex.IsMatch ("-a;", @"[--a]{3}"), "#B1");
-        Assert.IsTrue (Regex.IsMatch ("-&,", @"[&--]{3}"), "#B2");
-
-        Assert.IsTrue (Regex.IsMatch ("abcz-", @"[a-c-z]{5}"), "#C1");
-        Assert.IsFalse (Regex.IsMatch ("defghijklmnopqrstuvwxy", @"[a-c-z]"), "#C2");
-
-        Assert.IsTrue (Regex.IsMatch ("abcxyz-", @"[a-c-x-z]{7}"), "#D1");
-        Assert.IsFalse (Regex.IsMatch ("defghijklmnopqrstuvw", @"[a-c-x-z]"), "#D2");
-
-        Assert.IsTrue (Regex.IsMatch (" \tz-", @"[\s-z]{4}"), "#E1");
-        Assert.IsFalse (Regex.IsMatch ("abcdefghijklmnopqrstuvwxy", @"[\s-z]"), "#E2");
-    }
-
-    [Test, ExpectedException (typeof (ArgumentException))]
-    public void HangingHyphen1 ()
-    {
-        Regex.IsMatch ("foobar", @"[a-\s]");
-    }
-
-    [Test]
-    public void Bug313642 ()
-    {
-        Regex r = new Regex ("(?<a>c)");
-        Match m = r.Match ("a");
-        Assert.AreEqual (1, m.Groups.Count, "#1");
-        Assert.AreEqual (0, m.Groups [0].Captures.Count, "#2");
-        Assert.AreEqual (0, m.Groups [0].Index, "#3");
-        Assert.AreEqual (0, m.Groups [0].Length, "#4");
-        Assert.IsFalse (m.Groups [0].Success, "#5");
-        Assert.AreEqual (string.Empty, m.Groups [0].Value, "#6");
-    }
-
-    [Test]
-    public void Bug77487 ()
-    {
-        Assert.IsTrue (Regex.IsMatch ("a a", "^(a[^a]*)*a$"), "#1");
-        Assert.IsTrue (Regex.IsMatch ("a a", "^(a *)*a$"), "#2");
-        Assert.IsTrue (Regex.IsMatch ("a a", "(a[^a]*)+a"), "#3");
-        Assert.IsTrue (Regex.IsMatch ("a a", "(a *)+a"), "#4");
-    }
-
-    [Test]
-    public void Bug69269 ()
-    {
-        string s = "CREATE aa\faa; CREATE bb\nbb; CREATE cc\rcc; CREATE dd\tdd; CREATE ee\vee;";
-        Assert.AreEqual (5, Regex.Matches(s, @"CREATE[\s\S]+?;").Count, "#1");
-        Assert.AreEqual (5, Regex.Matches (s, @"CREATE[ \f\n\r\t\v\S]+?;").Count, "#2");
-    }
-
-    [Test]
-    public void Bug76345 ()
-    {
-        Match m;
-        string s1 = "'asdf'";
-        string s2 = "'as,'df'";
-
-        m = new Regex("'.*?'").Match(s1);
-        Assert.IsTrue (m.Success, "#A1");
-        Assert.AreEqual (s1, m.Value, "#A2");
-
-        m = new Regex("'[^,].*?'").Match(s1);
-        Assert.IsTrue (m.Success, "#B1");
-        Assert.AreEqual (s1, m.Value, "#B2");
-
-        m = new Regex("'.*?[^,]'").Match(s1);
-        Assert.IsTrue (m.Success, "#C1");
-        Assert.AreEqual (s1, m.Value, "#C2");
-
-        m = new Regex("'.*?[^,]'").Match(s2);
-        Assert.IsTrue (m.Success, "#D1");
-        Assert.AreEqual (s2, m.Value, "#D2");
-    }
-
-    [Test]
-    public void Bug78007 ()
-    {
-        string test = "head&gt;<html>";
-        string pattern = @"\Ahead&gt;\<html\>";
-        Regex r = new Regex (pattern);
-        Match m = r.Match (test);
-        Assert.IsTrue (m.Success, "#A1");
-        Assert.AreEqual (0, m.Index, "#A2");
-        Assert.AreEqual (14, m.Length, "#A3");
-
-        m = m.NextMatch ();
-        Assert.IsFalse (m.Success, "#B");
-    }
-
-    [Test]
-    public void Bug439947 ()
-    {
-        Regex r;
-        r = new Regex ("(?<=^|/)[^/]*\\.cs$", RegexOptions.None);
-        Assert.IsTrue (r.IsMatch ("z/text2.cs"));
-
-        r = new Regex ("(?<=^|/)[^/]*\\.cs$", RegexOptions.Compiled);
-        Assert.IsTrue (r.IsMatch ("z/text2.cs"));
-    }
-
-    [Test]
-    public void bug443841 ()
-    {
-        string numberString = @"[0-9]+";
-        string doubleString = string.Format (@" *[+-]? *{0}(\.{0})?([eE][+-]?{0})? *",
-                                             numberString);
-        string vector1To3String = string.Format (@"{0}(,{0}(,{0})?)?",
-                                  doubleString);
-        Regex r;
-        MatchCollection matches;
-
-        r = new Regex (string.Format ("^{0}$", vector1To3String));
-        Assert.IsTrue (r.IsMatch ("1"), "#A1");
-        matches = r.Matches ("1");
-        Assert.AreEqual (1, matches.Count, "#A2");
-        Assert.AreEqual ("1", matches [0].Value, "#A3");
-
-        r = new Regex (string.Format ("^{0}$", vector1To3String),
-                       RegexOptions.Compiled);
-        Assert.IsTrue (r.IsMatch ("1"), "#B1");
-        matches = r.Matches ("1");
-        Assert.AreEqual (1, matches.Count, "#B2");
-        Assert.AreEqual ("1", matches [0].Value, "#B3");
-    }
-
-    [Test]
-    public void CharClassWithIgnoreCase ()
-    {
-        string str = "Foobar qux";
-        Regex re = new Regex (@"[a-z\s]*", RegexOptions.IgnoreCase);
-        Match m = re.Match (str);
-        Assert.AreEqual (str, m.Value);
-    }
-
-    [Test] // bug #78278
-    public void No65535Limit ()
-    {
-        Kill65535_1 (65535);
-        Kill65535_1 (65536);
-        Kill65535_1 (131071);
-        Kill65535_1 (131072);
-
-        Kill65535_2 (65530);
-        Kill65535_2 (65531);
-        Kill65535_2 (131066);
-        Kill65535_2 (131067);
-    }
-
-    [Test]
-    public void GroupNumbers ()
-    {
-        GroupNumbers_1 ("a", 1);
-        GroupNumbers_1 ("(a)", 2);
-        GroupNumbers_1 ("(a)(b)", 3);
-        GroupNumbers_1 ("(a)|(b)", 3);
-        GroupNumbers_1 ("((a)(b))(c)", 5);
-    }
-
-    [Test]
-    public void Trials ()
-    {
-        foreach (RegexTrial trial in trials)
-            trial.Execute ();
-    }
-
-    [Test]
-    public void Bug80554_0 ()
-    {
-        bug80554_trials [0].Execute ();
-    }
-
-    [Test]
-    public void Bug80554_1 ()
-    {
-        bug80554_trials [1].Execute ();
-    }
-
-    [Test]
-    public void Bug80554_2 ()
-    {
-        bug80554_trials [2].Execute ();
-    }
-
-    [Test]
-    public void Bug80554_3 ()
-    {
-        bug80554_trials [3].Execute ();
-    }
-
-    [Test]
-    public void Bug432172 ()
-    {
-        new Regex ("^(else|elif|except|finally)([^a-zA-Z_0-9]).*", RegexOptions.Compiled);
-    }
-
-
-    [Test]
-    public void Bug610587_RepetitionOfPositionAssertion ()
-    {
-        Assert.AreEqual ("888", Regex.Match("888", "^*8.*").Value);
-    }
-
-    void Kill65535_1 (int length)
-    {
-        StringBuilder sb = new StringBuilder ("x");
-        sb.Append ('a', length);
-        sb.Append ('y');
-        string teststring = sb.ToString ();
-        Regex regex = new Regex (@"xa*y");
-        Match m = regex.Match (teststring);
-        Assert.IsTrue (m.Success, "#1:" + length);
-        Assert.AreEqual (0, m.Index, "#2:" + length);
-        Assert.AreEqual (teststring.Length, m.Length, "#3:" + length);
-    }
-
-    void Kill65535_2 (int length)
-    {
-        StringBuilder sb = new StringBuilder ("xaaaax");
-        sb.Append ('a', length);
-        sb.Append ('y');
-        string teststring = sb.ToString ();
-        Regex regex = new Regex (@"x.*y");
-        Match m = regex.Match(teststring);
-        Assert.IsTrue (m.Success, "#1:" + length);
-        Assert.AreEqual (0, m.Index, "#2:" + length);
-        Assert.AreEqual (teststring.Length, m.Length, "#3:" + length);
-    }
-
-    void GroupNumbers_1 (string s, int n)
-    {
-        Regex r = new Regex (s);
-        int [] grps = r.GetGroupNumbers ();
-        Assert.AreEqual (n, grps.Length, "#1:" + r);
-
-        int sum = 0;
-        for (int i = 0; i < grps.Length; ++i) {
-            sum += grps [i];
-            // group numbers are unique
-            for (int j = 0; j < i; ++j)
-                Assert.IsTrue (grps [i] != grps [j], "#2:" + r + " (" + i + "," + j + ")");
-        }
-        // no gaps in group numbering
-        Assert.AreEqual ((n * (n - 1)) / 2, sum, "#3:" + r);
-    }
-
-
-    static string bug80554_s = @"(?(static)|(.*))(static)";
-    static RegexTrial[] bug80554_trials = {
-        new RegexTrial (bug80554_s, RegexOptions.None, "static", "Pass. Group[0]=(0,6) Group[1]= Group[2]=(0,6)"),
-        new RegexTrial (bug80554_s, RegexOptions.None, "hydrostatic", "Pass. Group[0]=(0,11) Group[1]=(0,5) Group[2]=(5,6)"),
-        new RegexTrial (bug80554_s, RegexOptions.None, "statics", "Pass. Group[0]=(0,6) Group[1]= Group[2]=(0,6)"),
-        new RegexTrial (bug80554_s, RegexOptions.None, "dynamic", "Fail.")
-    };
-
-    static RegexTrial[] trials = {
-        new RegexTrial (@"^[^.\d]*(\d+)(?:\D+(\d+))?", RegexOptions.None, "MD 9.18", "Pass. Group[0]=(0,7) Group[1]=(3,1) Group[2]=(5,2)"),
-        new RegexTrial (@"(.*:|.*)(DirName)", RegexOptions.Compiled, "/home/homedir/DirName", "Pass. Group[0]=(0,21) Group[1]=(0,14) Group[2]=(14,7)")
-    };
-}
+       [TestFixture]
+       public class RegexBugs
+       {
+               [Test] // bug #51146
+               public void SplitGroup ()
+               {
+                       string [] splitResult = new Regex ("-").Split ("a-bcd-e-fg");
+                       string [] expected = new string [] {"a", "bcd", "e", "fg"};
+                       int length = expected.Length;
+                       Assert.AreEqual (length, splitResult.Length, "#1");
+                       for (int i = 0; i < length; i++)
+                               Assert.AreEqual (expected [i], splitResult [i], "#2:" + i);
+                       
+                       splitResult = new Regex ("(-)").Split ("a-bcd-e-fg");
+                       expected = new string [] {"a", "-", "bcd", "-", "e", "-", "fg"};
+                       length = expected.Length;
+                       Assert.AreEqual (length, splitResult.Length, "#3");
+                       for (int i = 0; i < length; i++)
+                               Assert.AreEqual (expected [i], splitResult [i], "#4:" + i);
+
+                       splitResult = new Regex ("(-)b(c)").Split ("a-bcd-e-fg");
+                       expected = new string [] {"a", "-", "c", "d-e-fg" };
+                       length = expected.Length;
+                       Assert.AreEqual (length, splitResult.Length, "#5");
+                       for (int i = 0; i < length; i++)
+                               Assert.AreEqual (expected [i], splitResult [i], "#6:" + i);
+                               
+                       splitResult = new Regex ("-").Split ("a-bcd-e-fg-");
+                       expected = new string [] {"a", "bcd", "e", "fg", ""};
+                       length = expected.Length;
+                       Assert.AreEqual (length, splitResult.Length, "#7");
+                       for (int i = 0; i < length; i++)
+                               Assert.AreEqual (expected [i], splitResult [i], "#8:" + i);
+               }
+
+               [Test] // bug #42529
+               public void MathEmptyGroup ()
+               {
+                       string str = "Match something from here.";
+
+                       Assert.IsFalse (Regex.IsMatch(str, @"(something|dog)$"), "#1");
+                       Assert.IsTrue (Regex.IsMatch (str, @"(|something|dog)$"), "#2");
+                       Assert.IsTrue (Regex.IsMatch (str, @"(something||dog)$"), "#3");
+                       Assert.IsTrue (Regex.IsMatch (str, @"(something|dog|)$"), "#4");
+
+                       Assert.IsTrue (Regex.IsMatch (str, @"(something|dog)*"), "#5");
+                       Assert.IsTrue (Regex.IsMatch (str, @"(|something|dog)*"), "#6");
+                       Assert.IsTrue (Regex.IsMatch (str, @"(something||dog)*"), "#7");
+                       Assert.IsTrue (Regex.IsMatch (str, @"(something|dog|)*"), "#8");
+
+                       Assert.IsTrue (Regex.IsMatch (str, @"(something|dog)*$"), "#9");
+                       Assert.IsTrue (Regex.IsMatch (str, @"(|something|dog)*$"), "#10");
+                       Assert.IsTrue (Regex.IsMatch (str, @"(something||dog)*$"), "#11");
+                       Assert.IsTrue (Regex.IsMatch (str, @"(something|dog|)*$"), "#12");
+               }
+
+               [Test] // bug #52924
+               public void Braces ()
+               {
+                       Regex regVar = new Regex(@"{\w+}");
+                       Match m = regVar.Match ("{   }");
+                       Assert.IsFalse  (m.Success);
+               }
+
+               [Test] // bug #71077
+               public void WhiteSpaceGroupped ()
+               {
+                       string s = "\n";
+                       string p = @"[\s\S]";   // =Category.Any
+                       Assert.IsTrue (Regex.IsMatch (s, p));
+               }
+
+               [Test] // bug #45976
+               public void RangeIgnoreCase()
+               {
+                       string str = "AAABBBBAAA" ;
+                       Assert.IsTrue (Regex.IsMatch(str, @"[A-F]+", RegexOptions.IgnoreCase), "#A1");
+                       Assert.IsTrue (Regex.IsMatch (str, @"[a-f]+", RegexOptions.IgnoreCase), "#A2");
+                       Assert.IsTrue (Regex.IsMatch (str, @"[A-Fa-f]+", RegexOptions.IgnoreCase), "#A3");
+                       Assert.IsTrue (Regex.IsMatch (str, @"[AB]+", RegexOptions.IgnoreCase), "#A4");
+                       Assert.IsTrue (Regex.IsMatch (str, @"[A-B]+", RegexOptions.IgnoreCase), "#A5");
+
+                       str = "AaaBBBaAa" ;
+                       Assert.IsTrue (Regex.IsMatch (str, @"[A-F]+", RegexOptions.IgnoreCase), "#B1");
+                       Assert.IsTrue (Regex.IsMatch (str, @"[a-f]+", RegexOptions.IgnoreCase), "#B2");
+                       Assert.IsTrue (Regex.IsMatch (str, @"[A-Fa-f]+", RegexOptions.IgnoreCase), "#B3");
+                       Assert.IsTrue (Regex.IsMatch (str, @"[AB]+", RegexOptions.IgnoreCase), "#B4");
+                       Assert.IsTrue (Regex.IsMatch (str, @"[A-B]+", RegexOptions.IgnoreCase), "#B5");
+
+                       str = "Aaa[";
+                       Assert.IsTrue (Regex.IsMatch (str, @"[A-a]+", RegexOptions.IgnoreCase), "#C");
+
+                       str = "Ae";
+                       Assert.IsTrue (Regex.IsMatch (str, @"[A-a]+", RegexOptions.IgnoreCase), "#D");
+               }
+
+               [Test] // bug #54797
+               public void Escape0 ()
+               {
+                       Regex r = new Regex(@"^[\s\0]*$");
+                       Assert.IsTrue (r.Match(" \0").Success);
+               }
+
+               [Test] // bug #432172
+               public void NoBitmap ()
+               {
+                       Regex rx =
+                               new Regex ("([^a-zA-Z_0-9])+", RegexOptions.Compiled);
+                       Assert.AreEqual ("--", rx.Match ("A--B-").Value);
+               }
+               
+               [Test]
+               public void MultipleMatches()
+               {
+                       Regex regex = new Regex (@"^(?'path'.*(\\|/)|(/|\\))(?'file'.*)$");
+                       Match match = regex.Match (@"d:\Temp\SomeDir\SomeDir\bla.xml");
+
+                       Assert.AreEqual (5, match.Groups.Count, "#1");
+                       Assert.AreEqual ("1", regex.GroupNameFromNumber (1), "#2");
+                       Assert.AreEqual ("2", regex.GroupNameFromNumber (2), "#3");
+                       Assert.AreEqual ("path", regex.GroupNameFromNumber (3), "#4");
+                       Assert.AreEqual ("file", regex.GroupNameFromNumber (4), "#5");
+                       Assert.AreEqual ("\\", match.Groups [1].Value, "#6");
+                       Assert.AreEqual (string.Empty, match.Groups [2].Value, "#7");
+                       Assert.AreEqual (@"d:\Temp\SomeDir\SomeDir\", match.Groups [3].Value, "#8");
+                       Assert.AreEqual ("bla.xml", match.Groups [4].Value, "#9");
+               }
+
+               [Test] // bug #56000
+               public void SameNameGroups ()
+               {
+                       string rex = "link\\s*rel\\s*=\\s*[\"']?alternate[\"']?\\s*";
+                       rex += "type\\s*=\\s*[\"']?text/xml[\"']?\\s*href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|'(?<1>[^']*)'|(?<1>\\S+))";
+                       new Regex (rex, RegexOptions.IgnoreCase);
+               }
+
+               [Test] // bug #52890
+               public void UndefinedGroup ()
+               {
+                       Regex regex = new Regex( "[A-Za-z_0-9]" );
+                       Match m = regex.Match( "123456789abc" );
+                       Group g = m.Groups["not_defined"];
+                       Assert.IsNotNull (g, "#1");
+                       Assert.AreEqual (0, g.Index, "#2");
+                       Assert.AreEqual (0, g.Length, "#3");
+                       Assert.AreEqual (string.Empty, g.Value, "#4");
+                       Assert.IsFalse (g.Success, "#5");
+                       Assert.IsNotNull (g.Captures, "#6");
+                       Assert.AreEqual (0, g.Captures.Count, "#7");
+               }
+
+               [Test]
+               public void Quantifiers1 ()
+               {
+                       Regex re = new Regex ("[\\w\\W]{8,32}");
+                       Match m = re.Match (new string ('1', 7));
+                       Assert.IsFalse (m.Success);
+               }
+
+               [Test]
+               public void Quantifiers2 ()
+               {
+                       Regex re = new Regex ("[\\w\\W]{8,32}");
+                       Match m = re.Match (new string ('1', 8));
+                       Assert.IsTrue (m.Success);
+               }
+
+               [Test]
+               public void Quantifiers3 ()
+               {
+                       Regex re = new Regex ("[\\w\\W]{8,32}");
+                       Match m = re.Match (new string ('1', 16));
+                       Assert.IsTrue (m.Success);
+               }
+
+               [Test]
+               public void Quantifiers4 ()
+               {
+                       Regex re = new Regex ("[\\w\\W]{8,32}");
+                       Match m = re.Match (new string ('1', 32));
+                       Assert.IsTrue (m.Success);
+               }
+
+               [Test]
+               public void Quantifiers5 ()
+               {
+                       Regex re = new Regex ("[\\w\\W]{8,32}");
+                       Match m = re.Match (new string ('1', 33));
+                       Assert.IsTrue (m.Success);
+               }
+
+               [Test]
+               public void CategoryAndNegated () // Was a regression after first attemp to fix 59150.
+               {
+                       string text = "<?xml version=\"1.0\"?>";
+                       Regex re = new Regex ("<\\s*(\\/?)\\s*([\\s\\S]*?)\\s*(\\/?)\\s*>");
+                       text = re.Replace (text, "{blue:&lt;$1}{maroon:$2}{blue:$3&gt;}");
+                       Assert.AreEqual ("{blue:&lt;}{maroon:?xml version=\"1.0\"?}{blue:&gt;}", text);
+               }
+       
+               [Test]
+               public void BackSpace ()
+               {
+                       string text = "Go, \bNo\bGo" ;
+                       Regex re = new Regex(@"\b[\b]");
+                       text = re.Replace(text, " ");
+                       Assert.AreEqual ("Go, \bNo Go", text);
+               }
+
+               [Test]
+               public void ReplaceNegOneAndStartat ()
+               {
+                       string text = "abcdeeee";
+                       Regex re = new Regex("e+");
+                       text = re.Replace(text, "e", -1, 4);
+                       Assert.AreEqual ("abcde", text);
+               }
+
+               [Test] // bug #57274
+               public void SplitInfiniteLoop ()
+               {
+                       string ss = "a b c d e";
+                       string [] words = Regex.Split (ss, "[ \t\n\r]*");
+                       Assert.AreEqual (11, words.Length, "#1");
+                       Assert.AreEqual (string.Empty, words [0], "#2");
+                       Assert.AreEqual ("a", words [1], "#3");
+                       Assert.AreEqual (string.Empty, words [2], "#4");
+                       Assert.AreEqual ("b", words [3], "#5");
+                       Assert.AreEqual (string.Empty, words [4], "#6");
+                       Assert.AreEqual ("c", words [5], "#7");
+                       Assert.AreEqual (string.Empty, words [6], "#8");
+                       Assert.AreEqual ("d", words [7], "#9");
+                       Assert.AreEqual (string.Empty, words [8], "#10");
+                       Assert.AreEqual ("e", words [9], "#11");
+                       Assert.AreEqual (string.Empty, words [10], "#12");
+               }
+
+               [Test] // bug #69065
+               public void CaseAndSearch ()
+               {
+                       string test1 =  @"\f!E   ZWEITBAD :REGLER-PARAMETER 20.10.2004  SEITE   1";
+                       string test2 =  @" REGLER-PARAMETER ";
+                       string test3 =  @"REGLER-PARAMETER ";
+                       Regex x = new Regex ("REGLER-PARAMETER",RegexOptions.IgnoreCase|RegexOptions.Compiled);
+
+                       Match m = x.Match (test1);
+                       Assert.IsTrue (m.Success, "#1");
+
+                       m = x.Match (test2);
+                       Assert.IsTrue (m.Success, "#2");
+
+                       m = x.Match (test3);
+                       Assert.IsTrue (m.Success, "#3");
+               }
+
+               [Test] // bug #69193
+               public void QuantifiersParseError ()
+               {
+                       new Regex ("{1,a}");
+                       new Regex ("{a,1}");
+                       new Regex ("{a}");
+                       new Regex ("{,a}");
+               }
+
+               [Test] // bug #74753
+               public void NameLookupInEmptyMatch ()
+               {
+                       Regex regTime = new Regex (
+                                       @"(?<hour>[0-9]{1,2})([\:](?<minute>[0-9]{1,2})){0,1}([\:](?<second>[0-9]{1,2})){0,1}\s*(?<ampm>(?i:(am|pm)){0,1})");
+
+                       Match mTime = regTime.Match("");
+                       Assert.AreEqual ("", mTime.Groups["hour"].Value, "#A1");
+                       Assert.AreEqual ("", mTime.Groups ["minute"].Value, "#A2");
+                       Assert.AreEqual ("", mTime.Groups ["second"].Value, "#A3");
+                       Assert.AreEqual ("", mTime.Groups ["ampm"].Value, "#A4");
+
+                       mTime = regTime.Match("12:00 pm");
+                       Assert.AreEqual ("12", mTime.Groups ["hour"].Value, "#B1");
+                       Assert.AreEqual ("00", mTime.Groups ["minute"].Value, "#B2");
+                       Assert.AreEqual ("", mTime.Groups ["second"].Value, "#B3");
+                       Assert.AreEqual ("pm", mTime.Groups ["ampm"].Value, "#B4");
+               }
+
+               [Test] // bug #77626
+               public void HangingHyphens ()
+               {
+                       Assert.IsTrue (Regex.IsMatch ("mT1[", @"m[0-9A-Za-z_-]+\["), "#A1");
+                       Assert.IsTrue (Regex.IsMatch ("mT1[", @"m[-0-9A-Za-z_]+\["), "#A2");
+
+                       Assert.IsTrue (Regex.IsMatch ("-a;", @"[--a]{3}"), "#B1");
+                       Assert.IsTrue (Regex.IsMatch ("-&,", @"[&--]{3}"), "#B2");
+
+                       Assert.IsTrue (Regex.IsMatch ("abcz-", @"[a-c-z]{5}"), "#C1");
+                       Assert.IsFalse (Regex.IsMatch ("defghijklmnopqrstuvwxy", @"[a-c-z]"), "#C2");
+
+                       Assert.IsTrue (Regex.IsMatch ("abcxyz-", @"[a-c-x-z]{7}"), "#D1");
+                       Assert.IsFalse (Regex.IsMatch ("defghijklmnopqrstuvw", @"[a-c-x-z]"), "#D2");
+
+                       Assert.IsTrue (Regex.IsMatch (" \tz-", @"[\s-z]{4}"), "#E1");
+                       Assert.IsFalse (Regex.IsMatch ("abcdefghijklmnopqrstuvwxy", @"[\s-z]"), "#E2");
+               }
+
+               [Test, ExpectedException (typeof (ArgumentException))]
+               public void HangingHyphen1 ()
+               {
+                       Regex.IsMatch ("foobar", @"[a-\s]");
+               }
+
+               [Test]
+               public void Bug313642 ()
+               {
+                       Regex r = new Regex ("(?<a>c)");
+                       Match m = r.Match ("a");
+                       Assert.AreEqual (1, m.Groups.Count, "#1");
+                       Assert.AreEqual (0, m.Groups [0].Captures.Count, "#2");
+                       Assert.AreEqual (0, m.Groups [0].Index, "#3");
+                       Assert.AreEqual (0, m.Groups [0].Length, "#4");
+                       Assert.IsFalse (m.Groups [0].Success, "#5");
+                       Assert.AreEqual (string.Empty, m.Groups [0].Value, "#6");
+               }
+
+               [Test]
+               public void Bug77487 ()
+               {
+                       Assert.IsTrue (Regex.IsMatch ("a a", "^(a[^a]*)*a$"), "#1");
+                       Assert.IsTrue (Regex.IsMatch ("a a", "^(a *)*a$"), "#2");
+                       Assert.IsTrue (Regex.IsMatch ("a a", "(a[^a]*)+a"), "#3");
+                       Assert.IsTrue (Regex.IsMatch ("a a", "(a *)+a"), "#4");
+               }
+
+               [Test]
+               public void Bug69269 ()
+               {
+                       string s = "CREATE aa\faa; CREATE bb\nbb; CREATE cc\rcc; CREATE dd\tdd; CREATE ee\vee;";
+                       Assert.AreEqual (5, Regex.Matches(s, @"CREATE[\s\S]+?;").Count, "#1");
+                       Assert.AreEqual (5, Regex.Matches (s, @"CREATE[ \f\n\r\t\v\S]+?;").Count, "#2");
+               }
+
+               [Test]
+               public void Bug76345 ()
+               {
+                       Match m;
+                       string s1 = "'asdf'";
+                       string s2 = "'as,'df'";
+
+                       m = new Regex("'.*?'").Match(s1);
+                       Assert.IsTrue (m.Success, "#A1");
+                       Assert.AreEqual (s1, m.Value, "#A2");
+
+                       m = new Regex("'[^,].*?'").Match(s1);
+                       Assert.IsTrue (m.Success, "#B1");
+                       Assert.AreEqual (s1, m.Value, "#B2");
+
+                       m = new Regex("'.*?[^,]'").Match(s1);
+                       Assert.IsTrue (m.Success, "#C1");
+                       Assert.AreEqual (s1, m.Value, "#C2");
+
+                       m = new Regex("'.*?[^,]'").Match(s2);
+                       Assert.IsTrue (m.Success, "#D1");
+                       Assert.AreEqual (s2, m.Value, "#D2");
+               }
+
+               [Test]
+               public void Bug78007 ()
+               {
+                       string test = "head&gt;<html>";
+                       string pattern = @"\Ahead&gt;\<html\>";
+                       Regex r = new Regex (pattern);
+                       Match m = r.Match (test);
+                       Assert.IsTrue (m.Success, "#A1");
+                       Assert.AreEqual (0, m.Index, "#A2");
+                       Assert.AreEqual (14, m.Length, "#A3");
+
+                       m = m.NextMatch ();
+                       Assert.IsFalse (m.Success, "#B");
+               }
+
+               [Test]
+               public void Bug439947 ()
+               {
+                       Regex r;
+                       r = new Regex ("(?<=^|/)[^/]*\\.cs$", RegexOptions.None);
+                       Assert.IsTrue (r.IsMatch ("z/text2.cs"));
+
+                       r = new Regex ("(?<=^|/)[^/]*\\.cs$", RegexOptions.Compiled);
+                       Assert.IsTrue (r.IsMatch ("z/text2.cs"));
+               }
+
+               [Test]
+               public void bug443841 ()
+               {
+                       string numberString = @"[0-9]+";
+                       string doubleString = string.Format (@" *[+-]? *{0}(\.{0})?([eE][+-]?{0})? *",
+                               numberString);
+                       string vector1To3String = string.Format (@"{0}(,{0}(,{0})?)?",
+                               doubleString);
+                       Regex r;
+                       MatchCollection matches;
+                       
+                       r = new Regex (string.Format ("^{0}$", vector1To3String));
+                       Assert.IsTrue (r.IsMatch ("1"), "#A1");
+                       matches = r.Matches ("1");
+                       Assert.AreEqual (1, matches.Count, "#A2");
+                       Assert.AreEqual ("1", matches [0].Value, "#A3");
+
+                       r = new Regex (string.Format ("^{0}$", vector1To3String),
+                               RegexOptions.Compiled);
+                       Assert.IsTrue (r.IsMatch ("1"), "#B1");
+                       matches = r.Matches ("1");
+                       Assert.AreEqual (1, matches.Count, "#B2");
+                       Assert.AreEqual ("1", matches [0].Value, "#B3");
+               }
+
+               [Test]
+               public void CharClassWithIgnoreCase ()
+               {
+                       string str = "Foobar qux";
+                       Regex re = new Regex (@"[a-z\s]*", RegexOptions.IgnoreCase);
+                       Match m = re.Match (str);
+                       Assert.AreEqual (str, m.Value);
+               }
+
+               [Test] // bug #78278
+               public void No65535Limit ()
+               {
+                       Kill65535_1 (65535);
+                       Kill65535_1 (65536);
+                       Kill65535_1 (131071);
+                       Kill65535_1 (131072);
+
+                       Kill65535_2 (65530);
+                       Kill65535_2 (65531);
+                       Kill65535_2 (131066);
+                       Kill65535_2 (131067);
+               }
+
+               [Test]
+               public void GroupNumbers ()
+               {
+                       GroupNumbers_1 ("a", 1);
+                       GroupNumbers_1 ("(a)", 2);
+                       GroupNumbers_1 ("(a)(b)", 3);
+                       GroupNumbers_1 ("(a)|(b)", 3);
+                       GroupNumbers_1 ("((a)(b))(c)", 5);
+               }
+
+               [Test]
+               public void Trials ()
+               {
+                       foreach (RegexTrial trial in trials)
+                               trial.Execute ();
+               }
+
+               [Test]
+               public void Bug80554_0 ()
+               {
+                       bug80554_trials [0].Execute ();
+               }
+
+               [Test]
+               public void Bug80554_1 ()
+               {
+                       bug80554_trials [1].Execute ();
+               }
+
+               [Test]
+               public void Bug80554_2 ()
+               {
+                       bug80554_trials [2].Execute ();
+               }
+
+               [Test]
+               public void Bug80554_3 ()
+               {
+                       bug80554_trials [3].Execute ();
+               }
+
+               [Test]
+               public void Bug432172 ()
+               {
+                       new Regex ("^(else|elif|except|finally)([^a-zA-Z_0-9]).*", RegexOptions.Compiled);
+               }
+
+
+               [Test]
+               public void Bug610587_RepetitionOfPositionAssertion ()
+               {
+                       Assert.AreEqual ("888", Regex.Match("888", "^*8.*").Value);
+               }
+
+               void Kill65535_1 (int length)
+               {
+                       StringBuilder sb = new StringBuilder ("x");
+                       sb.Append ('a', length);
+                       sb.Append ('y');
+                       string teststring = sb.ToString ();
+                       Regex regex = new Regex (@"xa*y");
+                       Match m = regex.Match (teststring);
+                       Assert.IsTrue (m.Success, "#1:" + length);
+                       Assert.AreEqual (0, m.Index, "#2:" + length);
+                       Assert.AreEqual (teststring.Length, m.Length, "#3:" + length);
+               }
+
+               void Kill65535_2 (int length)
+               {
+                       StringBuilder sb = new StringBuilder ("xaaaax");
+                       sb.Append ('a', length);
+                       sb.Append ('y');
+                       string teststring = sb.ToString ();
+                       Regex regex = new Regex (@"x.*y");
+                       Match m = regex.Match(teststring);
+                       Assert.IsTrue (m.Success, "#1:" + length);
+                       Assert.AreEqual (0, m.Index, "#2:" + length);
+                       Assert.AreEqual (teststring.Length, m.Length, "#3:" + length);
+               }
+               
+               void GroupNumbers_1 (string s, int n)
+               {
+                       Regex r = new Regex (s);
+                       int [] grps = r.GetGroupNumbers ();
+                       Assert.AreEqual (n, grps.Length, "#1:" + r);
+
+                       int sum = 0;
+                       for (int i = 0; i < grps.Length; ++i) {
+                               sum += grps [i];
+                               // group numbers are unique
+                               for (int j = 0; j < i; ++j)
+                                       Assert.IsTrue (grps [i] != grps [j], "#2:" + r + " (" + i + "," + j + ")");
+                       }
+                       // no gaps in group numbering
+                       Assert.AreEqual ((n * (n - 1)) / 2, sum, "#3:" + r);
+               }
+
+
+               static string bug80554_s = @"(?(static)|(.*))(static)";
+               static RegexTrial[] bug80554_trials = {
+                       new RegexTrial (bug80554_s, RegexOptions.None, "static", "Pass. Group[0]=(0,6) Group[1]= Group[2]=(0,6)"),
+                       new RegexTrial (bug80554_s, RegexOptions.None, "hydrostatic", "Pass. Group[0]=(0,11) Group[1]=(0,5) Group[2]=(5,6)"),
+                       new RegexTrial (bug80554_s, RegexOptions.None, "statics", "Pass. Group[0]=(0,6) Group[1]= Group[2]=(0,6)"),
+                       new RegexTrial (bug80554_s, RegexOptions.None, "dynamic", "Fail.")
+               };
+
+               static RegexTrial[] trials = {
+                       new RegexTrial (@"^[^.\d]*(\d+)(?:\D+(\d+))?", RegexOptions.None, "MD 9.18", "Pass. Group[0]=(0,7) Group[1]=(3,1) Group[2]=(5,2)"),
+            new RegexTrial (@"(.*:|.*)(DirName)", RegexOptions.Compiled, "/home/homedir/DirName", "Pass. Group[0]=(0,21) Group[1]=(0,14) Group[2]=(14,7)")
+           };
+       }
 }
index 4e43bab7202b26997e3843c0c81a9b6c6a6cd1b4..18fcfa6ea56e52a0645b0a82a5011eec4d38ffd0 100644 (file)
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -38,202 +38,202 @@ using System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-class TestRegex: Regex {
-
-    public TestRegex ()
-    {
-        // note: test protected default ctor
-    }
-
-    public void TestProtectedStuff ()
-    {
-        pattern = String.Empty;
-        roptions = RegexOptions.None;
-
-        try {
-            InitializeReferences ();
-        }
-        catch (NotImplementedException) {
-            // mono
-        }
-
-        Assert.IsFalse (UseOptionC (), "UseOptionC");
-        Assert.IsFalse (UseOptionR (), "UseOptionR");
-
-        Assert.IsNull (capnames, "capnames");
-        Assert.IsNull (caps, "caps");
-        Assert.AreEqual (0, capsize, "capsize");
-        Assert.IsNull (capslist, "capslist");
-        Assert.IsNull (factory, "factory");
-    }
-}
-
-[TestFixture]
-[Category ("CAS")]
-public class RegexCas {
-
-    private AssemblyName aname;
-
-    [TestFixtureSetUp]
-    public void FixtureSetUp ()
-    {
-        aname = new AssemblyName ();
-        aname.Name = "Cas.Test.RegularExpressions";
-    }
-
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
-
-    private string Evaluator (Match match)
-    {
-        return String.Empty;
-    }
-
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Static_Deny_Unrestricted ()
-    {
-        Assert.AreEqual (String.Empty, Regex.Escape (String.Empty), "Escape");
-        Assert.AreEqual (String.Empty, Regex.Unescape (String.Empty), "Unescape");
-
-        Assert.IsTrue (Regex.IsMatch (String.Empty, String.Empty), "IsMatch");
-        Assert.IsTrue (Regex.IsMatch (String.Empty, String.Empty, RegexOptions.Singleline), "IsMatch2");
-
-        Assert.IsNotNull (Regex.Match (String.Empty, String.Empty), "Match");
-        Assert.IsNotNull (Regex.Match (String.Empty, String.Empty, RegexOptions.Singleline), "Match2");
-
-        Assert.AreEqual (1, Regex.Matches (String.Empty, String.Empty).Count, "Matches");
-        Assert.AreEqual (1, Regex.Matches (String.Empty, String.Empty, RegexOptions.Singleline).Count, "Matches2");
-
-        Assert.AreEqual (String.Empty, Regex.Replace (String.Empty, String.Empty, new MatchEvaluator (Evaluator)), "Replace");
-        Assert.AreEqual (String.Empty, Regex.Replace (String.Empty, String.Empty, new MatchEvaluator (Evaluator), RegexOptions.Singleline), "Replace2");
-        Assert.AreEqual (String.Empty, Regex.Replace (String.Empty, String.Empty, String.Empty), "Replace3");
-        Assert.AreEqual (String.Empty, Regex.Replace (String.Empty, String.Empty, String.Empty, RegexOptions.Singleline), "Replace4");
-
-        Assert.AreEqual (2, Regex.Split (String.Empty, String.Empty).Length, "Split");
-        Assert.AreEqual (2, Regex.Split (String.Empty, String.Empty, RegexOptions.Singleline).Length, "Split2");
+       class TestRegex: Regex {
+
+               public TestRegex ()
+               {
+                       // note: test protected default ctor
+               }
+
+               public void TestProtectedStuff ()
+               {
+                       pattern = String.Empty;
+                       roptions = RegexOptions.None;
+
+                       try {
+                               InitializeReferences ();
+                       }
+                       catch (NotImplementedException) {
+                               // mono
+                       }
+
+                       Assert.IsFalse (UseOptionC (), "UseOptionC");
+                       Assert.IsFalse (UseOptionR (), "UseOptionR");
+
+                       Assert.IsNull (capnames, "capnames");
+                       Assert.IsNull (caps, "caps");
+                       Assert.AreEqual (0, capsize, "capsize");
+                       Assert.IsNull (capslist, "capslist");
+                       Assert.IsNull (factory, "factory");
+               }
+       }
+
+       [TestFixture]
+       [Category ("CAS")]
+       public class RegexCas {
+
+               private AssemblyName aname;
+
+               [TestFixtureSetUp]
+               public void FixtureSetUp ()
+               {
+                       aname = new AssemblyName ();
+                       aname.Name = "Cas.Test.RegularExpressions";
+               }
+
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
+
+               private string Evaluator (Match match)
+               {
+                       return String.Empty;
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Static_Deny_Unrestricted ()
+               {
+                       Assert.AreEqual (String.Empty, Regex.Escape (String.Empty), "Escape");
+                       Assert.AreEqual (String.Empty, Regex.Unescape (String.Empty), "Unescape");
+                       
+                       Assert.IsTrue (Regex.IsMatch (String.Empty, String.Empty), "IsMatch");
+                       Assert.IsTrue (Regex.IsMatch (String.Empty, String.Empty, RegexOptions.Singleline), "IsMatch2");
+                       
+                       Assert.IsNotNull (Regex.Match (String.Empty, String.Empty), "Match");
+                       Assert.IsNotNull (Regex.Match (String.Empty, String.Empty, RegexOptions.Singleline), "Match2");
+
+                       Assert.AreEqual (1, Regex.Matches (String.Empty, String.Empty).Count, "Matches");
+                       Assert.AreEqual (1, Regex.Matches (String.Empty, String.Empty, RegexOptions.Singleline).Count, "Matches2");
+
+                       Assert.AreEqual (String.Empty, Regex.Replace (String.Empty, String.Empty, new MatchEvaluator (Evaluator)), "Replace");
+                       Assert.AreEqual (String.Empty, Regex.Replace (String.Empty, String.Empty, new MatchEvaluator (Evaluator), RegexOptions.Singleline), "Replace2");
+                       Assert.AreEqual (String.Empty, Regex.Replace (String.Empty, String.Empty, String.Empty), "Replace3");
+                       Assert.AreEqual (String.Empty, Regex.Replace (String.Empty, String.Empty, String.Empty, RegexOptions.Singleline), "Replace4");
+
+                       Assert.AreEqual (2, Regex.Split (String.Empty, String.Empty).Length, "Split");
+                       Assert.AreEqual (2, Regex.Split (String.Empty, String.Empty, RegexOptions.Singleline).Length, "Split2");
 #if NET_2_0
-        Assert.AreEqual (15, Regex.CacheSize, "CacheSize");
-        Regex.CacheSize = 1;
+                       Assert.AreEqual (15, Regex.CacheSize, "CacheSize");
+                       Regex.CacheSize = 1;
 #endif
-    }
-
-    [Test]
-    [SecurityPermission (SecurityAction.Deny, ControlEvidence = true)]
-    [ExpectedException (typeof (SecurityException))]
-    [Category ("NotWorking")]
-    public void CompileToAssembly_Deny_ControlEvidence ()
-    {
-        RegexCompilationInfo info = new RegexCompilationInfo (String.Empty, RegexOptions.None, "name", String.Empty, false);
-        Regex.CompileToAssembly (new RegexCompilationInfo[1] { info }, aname, null, null);
-    }
-
-    [Test]
-    [FileIOPermission (SecurityAction.Deny, Unrestricted = true)]
-    [ExpectedException (typeof (SecurityException))]
-    [Category ("NotWorking")]
-    public void CompileToAssembly_Deny_FileIOPermission ()
-    {
-        RegexCompilationInfo info = new RegexCompilationInfo (String.Empty, RegexOptions.None, "name", String.Empty, false);
-        Regex.CompileToAssembly (new RegexCompilationInfo[1] { info }, aname, null, null);
-    }
-
-    [Test]
-    [SecurityPermission (SecurityAction.PermitOnly, ControlEvidence = true)]
-    [FileIOPermission (SecurityAction.PermitOnly, Unrestricted = true)]
-    [Category ("NotWorking")]
-    public void CompileToAssembly_PermitOnly_ControlEvidence ()
-    {
-        RegexCompilationInfo info = new RegexCompilationInfo (String.Empty, RegexOptions.None, "name", String.Empty, false);
-        Regex.CompileToAssembly (new RegexCompilationInfo[1] { info }, aname, null, null);
-    }
-
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Instance_Deny_Unrestricted ()
-    {
-        Regex r = new Regex (String.Empty);
-        Assert.AreEqual (RegexOptions.None, r.Options, "Options");
-        Assert.IsFalse (r.RightToLeft, "RightToLeft");
-
-        Assert.AreEqual (1, r.GetGroupNames ().Length, "GetGroupNames");
-        Assert.AreEqual (1, r.GetGroupNumbers ().Length, "GetGroupNumbers");
-        Assert.AreEqual ("0", r.GroupNameFromNumber (0), "GroupNameFromNumber");
-        Assert.AreEqual (0, r.GroupNumberFromName ("0"), "GroupNumberFromName");
-
-        Assert.IsTrue (r.IsMatch (String.Empty), "IsMatch");
-        Assert.IsTrue (r.IsMatch (String.Empty, 0), "IsMatch2");
-
-        Assert.IsNotNull (r.Match (String.Empty), "Match");
-        Assert.IsNotNull (r.Match (String.Empty, 0), "Match2");
-        Assert.IsNotNull (r.Match (String.Empty, 0, 0), "Match3");
-
-        Assert.AreEqual (1, r.Matches (String.Empty).Count, "Matches");
-        Assert.AreEqual (1, r.Matches (String.Empty, 0).Count, "Matches2");
-
-        Assert.AreEqual (String.Empty, r.Replace (String.Empty, new MatchEvaluator (Evaluator)), "Replace");
-        Assert.AreEqual (String.Empty, r.Replace (String.Empty, new MatchEvaluator (Evaluator), 0), "Replace2");
-        Assert.AreEqual (String.Empty, r.Replace (String.Empty, new MatchEvaluator (Evaluator), 0, 0), "Replace3");
-        Assert.AreEqual (String.Empty, r.Replace (String.Empty, String.Empty), "Replace4");
-        Assert.AreEqual (String.Empty, r.Replace (String.Empty, String.Empty, 0), "Replace5");
-        Assert.AreEqual (String.Empty, r.Replace (String.Empty, String.Empty, 0, 0), "Replace6");
-
-        Assert.AreEqual (2, r.Split (String.Empty).Length, "Split");
-        Assert.AreEqual (2, r.Split (String.Empty, 0).Length, "Split2");
-        Assert.AreEqual (2, r.Split (String.Empty, 0, 0).Length, "Split3");
-
-        Assert.AreEqual (String.Empty, r.ToString (), "ToString");
-    }
-
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Protected_Deny_Unrestricted ()
-    {
-        TestRegex r = new TestRegex ();
-        r.TestProtectedStuff ();
-    }
-
-    [Test]
-    [SecurityPermission (SecurityAction.Deny, SerializationFormatter = true)]
-    [ExpectedException (typeof (SecurityException))]
-    public void Serialization_Deny_SerializationFormatter ()
-    {
-        BinaryFormatter bf = new BinaryFormatter ();
-        MemoryStream ms = new MemoryStream ();
-
-        Regex r1 = new Regex (String.Empty, RegexOptions.Singleline);
-        bf.Serialize (ms, r1);
-    }
-
-    [Test]
-    [SecurityPermission (SecurityAction.PermitOnly, SerializationFormatter = true)]
-    public void Serialization_PermitOnly_SerializationFormatter ()
-    {
-        BinaryFormatter bf = new BinaryFormatter ();
-        MemoryStream ms = new MemoryStream ();
-
-        Regex r1 = new Regex (String.Empty, RegexOptions.Singleline);
-        bf.Serialize (ms, r1);
-
-        ms.Position = 0;
-        Regex r2 = (Regex) bf.Deserialize (ms);
-
-        Assert.AreEqual (r1.Options, r2.Options, "Options");
-        Assert.AreEqual (r1.ToString (), r2.ToString (), "ToString");
-    }
-
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        Type[] types = new Type[1] { typeof (string) };
-        ConstructorInfo ci = typeof (Regex).GetConstructor (types);
-        Assert.IsNotNull (ci, ".ctor (string)");
-        Assert.IsNotNull (ci.Invoke (new object[1] { String.Empty }), "invoke");
-    }
-}
+               }
+
+               [Test]
+               [SecurityPermission (SecurityAction.Deny, ControlEvidence = true)]
+               [ExpectedException (typeof (SecurityException))]
+               [Category ("NotWorking")]
+               public void CompileToAssembly_Deny_ControlEvidence ()
+               {
+                       RegexCompilationInfo info = new RegexCompilationInfo (String.Empty, RegexOptions.None, "name", String.Empty, false);
+                       Regex.CompileToAssembly (new RegexCompilationInfo[1] { info }, aname, null, null);
+               }
+
+               [Test]
+               [FileIOPermission (SecurityAction.Deny, Unrestricted = true)]
+               [ExpectedException (typeof (SecurityException))]
+               [Category ("NotWorking")]
+               public void CompileToAssembly_Deny_FileIOPermission ()
+               {
+                       RegexCompilationInfo info = new RegexCompilationInfo (String.Empty, RegexOptions.None, "name", String.Empty, false);
+                       Regex.CompileToAssembly (new RegexCompilationInfo[1] { info }, aname, null, null);
+               }
+
+               [Test]
+               [SecurityPermission (SecurityAction.PermitOnly, ControlEvidence = true)]
+               [FileIOPermission (SecurityAction.PermitOnly, Unrestricted = true)]
+               [Category ("NotWorking")]
+               public void CompileToAssembly_PermitOnly_ControlEvidence ()
+               {
+                       RegexCompilationInfo info = new RegexCompilationInfo (String.Empty, RegexOptions.None, "name", String.Empty, false);
+                       Regex.CompileToAssembly (new RegexCompilationInfo[1] { info }, aname, null, null);
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Instance_Deny_Unrestricted ()
+               {
+                       Regex r = new Regex (String.Empty);
+                       Assert.AreEqual (RegexOptions.None, r.Options, "Options");
+                       Assert.IsFalse (r.RightToLeft, "RightToLeft");
+
+                       Assert.AreEqual (1, r.GetGroupNames ().Length, "GetGroupNames");
+                       Assert.AreEqual (1, r.GetGroupNumbers ().Length, "GetGroupNumbers");
+                       Assert.AreEqual ("0", r.GroupNameFromNumber (0), "GroupNameFromNumber");
+                       Assert.AreEqual (0, r.GroupNumberFromName ("0"), "GroupNumberFromName");
+
+                       Assert.IsTrue (r.IsMatch (String.Empty), "IsMatch");
+                       Assert.IsTrue (r.IsMatch (String.Empty, 0), "IsMatch2");
+
+                       Assert.IsNotNull (r.Match (String.Empty), "Match");
+                       Assert.IsNotNull (r.Match (String.Empty, 0), "Match2");
+                       Assert.IsNotNull (r.Match (String.Empty, 0, 0), "Match3");
+
+                       Assert.AreEqual (1, r.Matches (String.Empty).Count, "Matches");
+                       Assert.AreEqual (1, r.Matches (String.Empty, 0).Count, "Matches2");
+
+                       Assert.AreEqual (String.Empty, r.Replace (String.Empty, new MatchEvaluator (Evaluator)), "Replace");
+                       Assert.AreEqual (String.Empty, r.Replace (String.Empty, new MatchEvaluator (Evaluator), 0), "Replace2");
+                       Assert.AreEqual (String.Empty, r.Replace (String.Empty, new MatchEvaluator (Evaluator), 0, 0), "Replace3");
+                       Assert.AreEqual (String.Empty, r.Replace (String.Empty, String.Empty), "Replace4");
+                       Assert.AreEqual (String.Empty, r.Replace (String.Empty, String.Empty, 0), "Replace5");
+                       Assert.AreEqual (String.Empty, r.Replace (String.Empty, String.Empty, 0, 0), "Replace6");
+
+                       Assert.AreEqual (2, r.Split (String.Empty).Length, "Split");
+                       Assert.AreEqual (2, r.Split (String.Empty, 0).Length, "Split2");
+                       Assert.AreEqual (2, r.Split (String.Empty, 0, 0).Length, "Split3");
+
+                       Assert.AreEqual (String.Empty, r.ToString (), "ToString");
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Protected_Deny_Unrestricted ()
+               {
+                       TestRegex r = new TestRegex ();
+                       r.TestProtectedStuff ();
+               }
+
+               [Test]
+               [SecurityPermission (SecurityAction.Deny, SerializationFormatter = true)]
+               [ExpectedException (typeof (SecurityException))]
+               public void Serialization_Deny_SerializationFormatter ()
+               {
+                       BinaryFormatter bf = new BinaryFormatter ();
+                       MemoryStream ms = new MemoryStream ();
+
+                       Regex r1 = new Regex (String.Empty, RegexOptions.Singleline);
+                       bf.Serialize (ms, r1);
+               }
+
+               [Test]
+               [SecurityPermission (SecurityAction.PermitOnly, SerializationFormatter = true)]
+               public void Serialization_PermitOnly_SerializationFormatter ()
+               {
+                       BinaryFormatter bf = new BinaryFormatter ();
+                       MemoryStream ms = new MemoryStream ();
+
+                       Regex r1 = new Regex (String.Empty, RegexOptions.Singleline);
+                       bf.Serialize (ms, r1);
+
+                       ms.Position = 0;
+                       Regex r2 = (Regex) bf.Deserialize (ms);
+
+                       Assert.AreEqual (r1.Options, r2.Options, "Options");
+                       Assert.AreEqual (r1.ToString (), r2.ToString (), "ToString");
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       Type[] types = new Type[1] { typeof (string) };
+                       ConstructorInfo ci = typeof (Regex).GetConstructor (types);
+                       Assert.IsNotNull (ci, ".ctor (string)");
+                       Assert.IsNotNull (ci.Invoke (new object[1] { String.Empty }), "invoke");
+               }
+       }
 }
index 97a53eff84c40b868d0852aa8e7738904fa9dd78..d55baef93e120bd3b1e86b624841cd831f91d426 100644 (file)
@@ -1,5 +1,5 @@
 //
-// RegexCompilationInfoCas.cs - CAS unit tests for
+// RegexCompilationInfoCas.cs - CAS unit tests for 
 //     System.Text.RegularExpressions.RegexCompilationInfo
 //
 // Author:
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -39,40 +39,38 @@ using MonoTests.System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-[TestFixture]
-[Category ("CAS")]
-public class RegexCompilationInfoCas {
+       [TestFixture]
+       [Category ("CAS")]
+       public class RegexCompilationInfoCas {
 
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void ReuseUnitTest_Deny_Unrestricted ()
-    {
-        RegexCompilationInfoTest unit = new RegexCompilationInfoTest ();
-        unit.Constructor ();
-        unit.Constructor_InvalidRegexOptions ();
-        unit.Options_Invalid ();
-    }
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void ReuseUnitTest_Deny_Unrestricted ()
+               {
+                       RegexCompilationInfoTest unit = new RegexCompilationInfoTest ();
+                       unit.Constructor ();
+                       unit.Constructor_InvalidRegexOptions ();
+                       unit.Options_Invalid ();
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        Type[] types = new Type[5] { typeof (string), typeof (RegexOptions),
-                                     typeof (string), typeof (string), typeof (bool)
-                                   };
-        ConstructorInfo ci = typeof (RegexCompilationInfo).GetConstructor (types);
-        Assert.IsNotNull (ci, ".ctor");
-        object[] parameters = new object[5] { String.Empty, RegexOptions.None,
-                                              "name", String.Empty, false
-                                            };
-        Assert.IsNotNull (ci.Invoke (parameters), "invoke");
-    }
-}
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       Type[] types = new Type[5] { typeof (string), typeof (RegexOptions), 
+                               typeof (string), typeof (string), typeof (bool) };
+                       ConstructorInfo ci = typeof (RegexCompilationInfo).GetConstructor (types);
+                       Assert.IsNotNull (ci, ".ctor");
+                       object[] parameters = new object[5] { String.Empty, RegexOptions.None, 
+                               "name", String.Empty, false };
+                       Assert.IsNotNull (ci.Invoke (parameters), "invoke");
+               }
+       }
 }
index c2ea26d61fc907c2c330b61160bcda088fabe7bd..063a6608953011fb091cd37ccc58126af0300ee2 100644 (file)
@@ -1,5 +1,5 @@
 //
-// RegexCompilationInfoTest.cs
+// RegexCompilationInfoTest.cs 
 //     - Unit tests for System.Text.RegularExpressions.RegexCompilationInfo
 //
 // Author:
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -34,101 +34,101 @@ using System.Text.RegularExpressions;
 
 namespace MonoTests.System.Text.RegularExpressions {
 
-[TestFixture]
-public class RegexCompilationInfoTest {
+       [TestFixture]
+       public class RegexCompilationInfoTest {
 
-    [Test]
-    [ExpectedException (typeof (ArgumentNullException))]
-    public void Constructor_NullPattern ()
-    {
-        new RegexCompilationInfo (null, RegexOptions.None, "name", "fullnamespace", false);
-    }
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void Constructor_NullPattern ()
+               {
+                       new RegexCompilationInfo (null, RegexOptions.None, "name", "fullnamespace", false);
+               }
 
-    [Test]
-    public void Constructor_InvalidRegexOptions ()
-    {
-        RegexOptions options = (RegexOptions) Int32.MinValue;
-        RegexCompilationInfo info = new RegexCompilationInfo ("pattern", options, "name", "fullnamespace", true);
-        Assert.AreEqual ("pattern", info.Pattern, "Pattern");
-        Assert.AreEqual (options, info.Options, "Options");
-        Assert.AreEqual ("name", info.Name, "Name");
-        Assert.AreEqual ("fullnamespace", info.Namespace, "Namespace");
-        Assert.IsTrue (info.IsPublic, "IsPublic");
-    }
+               [Test]
+               public void Constructor_InvalidRegexOptions ()
+               {
+                       RegexOptions options = (RegexOptions) Int32.MinValue;
+                       RegexCompilationInfo info = new RegexCompilationInfo ("pattern", options, "name", "fullnamespace", true);
+                       Assert.AreEqual ("pattern", info.Pattern, "Pattern");
+                       Assert.AreEqual (options, info.Options, "Options");
+                       Assert.AreEqual ("name", info.Name, "Name");
+                       Assert.AreEqual ("fullnamespace", info.Namespace, "Namespace");
+                       Assert.IsTrue (info.IsPublic, "IsPublic");
+               }
 
-    [Test]
-    [ExpectedException (typeof (ArgumentNullException))]
-    public void Constructor_NullName ()
-    {
-        new RegexCompilationInfo ("pattern", RegexOptions.None, null, "fullnamespace", false);
-    }
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void Constructor_NullName ()
+               {
+                       new RegexCompilationInfo ("pattern", RegexOptions.None, null, "fullnamespace", false);
+               }
 
-    [Test]
+               [Test]
 #if NET_2_0
-    [ExpectedException (typeof (ArgumentException))]
+               [ExpectedException (typeof (ArgumentException))]
 #endif
-    public void Constructor_EmptyName ()
-    {
-        new RegexCompilationInfo ("pattern", RegexOptions.None, String.Empty, "fullnamespace", false);
-    }
+               public void Constructor_EmptyName ()
+               {
+                       new RegexCompilationInfo ("pattern", RegexOptions.None, String.Empty, "fullnamespace", false);
+               }
 
-    [Test]
-    [ExpectedException (typeof (ArgumentNullException))]
-    public void Constructor_NullNamespace ()
-    {
-        new RegexCompilationInfo ("pattern", RegexOptions.None, "name", null, false);
-    }
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void Constructor_NullNamespace ()
+               {
+                       new RegexCompilationInfo ("pattern", RegexOptions.None, "name", null, false);
+               }
 
-    [Test]
-    public void Constructor ()
-    {
-        RegexCompilationInfo info =  new RegexCompilationInfo (String.Empty, RegexOptions.None, "name", String.Empty, false);
-        Assert.AreEqual (String.Empty, info.Pattern, "Pattern");
-        Assert.AreEqual (RegexOptions.None, info.Options, "Options");
-        Assert.AreEqual ("name", info.Name, "Name");
-        Assert.AreEqual (String.Empty, info.Namespace, "Namespace");
-        Assert.IsFalse (info.IsPublic, "IsPublic");
-    }
+               [Test]
+               public void Constructor ()
+               {
+                       RegexCompilationInfo info =  new RegexCompilationInfo (String.Empty, RegexOptions.None, "name", String.Empty, false);
+                       Assert.AreEqual (String.Empty, info.Pattern, "Pattern");
+                       Assert.AreEqual (RegexOptions.None, info.Options, "Options");
+                       Assert.AreEqual ("name", info.Name, "Name");
+                       Assert.AreEqual (String.Empty, info.Namespace, "Namespace");
+                       Assert.IsFalse (info.IsPublic, "IsPublic");
+               }
 
-    [Test]
-    [ExpectedException (typeof (ArgumentNullException))]
-    public void Pattern_Null ()
-    {
-        RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
-        info.Pattern = null;
-    }
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void Pattern_Null ()
+               {
+                       RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
+                       info.Pattern = null;
+               }
 
-    [Test]
-    public void Options_Invalid ()
-    {
-        RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
-        info.Options = (RegexOptions) Int32.MinValue;
-    }
+               [Test]
+               public void Options_Invalid ()
+               {
+                       RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
+                       info.Options = (RegexOptions) Int32.MinValue;
+               }
 
-    [Test]
-    [ExpectedException (typeof (ArgumentNullException))]
-    public void Name_Null ()
-    {
-        RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
-        info.Name = null;
-    }
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void Name_Null ()
+               {
+                       RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
+                       info.Name = null;
+               }
 
-    [Test]
+               [Test]
 #if NET_2_0
-    [ExpectedException (typeof (ArgumentException))]
+               [ExpectedException (typeof (ArgumentException))]
 #endif
-    public void Name_Empty ()
-    {
-        RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
-        info.Name = String.Empty;
-    }
+               public void Name_Empty ()
+               {
+                       RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
+                       info.Name = String.Empty;
+               }
 
-    [Test]
-    [ExpectedException (typeof (ArgumentNullException))]
-    public void Namespace_Null ()
-    {
-        RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
-        info.Namespace = null;
-    }
-}
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void Namespace_Null ()
+               {
+                       RegexCompilationInfo info = new RegexCompilationInfo ("pattern", RegexOptions.None, "name", "fullnamespace", true);
+                       info.Namespace = null;
+               }
+       }
 }
index b8f9afc6dbc3498ba287377c5a05c51c5e57d5e2..351a8af003634099383ef383a642f8a9448ceef9 100644 (file)
@@ -6,459 +6,355 @@ using NUnit.Framework;
 
 namespace MonoTests.System.Text.RegularExpressions
 {
-[TestFixture]
-public class RegexMatchTests
-{
-    static RegexTrial [] trials = new RegexTrial [] {
-        new RegexTrial (@"(a)(b)(c)", RegexOptions.ExplicitCapture, "abc", "Pass. Group[0]=(0,3)"),//0
-        new RegexTrial (@"(a)(?<1>b)(c)", RegexOptions.ExplicitCapture, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,1)"),//1
-        new RegexTrial (@"(a)(?<2>b)(c)", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[1]=(1,1)(2,1)"),//2
-        new RegexTrial (@"(a)(?<foo>b)(c)", RegexOptions.ExplicitCapture, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,1)"),//3
-        new RegexTrial (@"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11", RegexOptions.None, "F2345678910LL", "Pass. Group[0]=(0,13)"//4
-        + " Group[1]=(0,1)"
-        + " Group[2]=(1,1)"
-        + " Group[3]=(2,1)"
-        + " Group[4]=(3,1)"
-        + " Group[5]=(4,1)"
-        + " Group[6]=(5,1)"
-        + " Group[7]=(6,1)"
-        + " Group[8]=(7,1)"
-        + " Group[9]=(8,1)"
-        + " Group[10]=(9,2)"
-        + " Group[11]=(11,1)"
-                       ),
-        new RegexTrial (@"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11", RegexOptions.ExplicitCapture, "F2345678910LL", "Fail."),//5
-        new RegexTrial (@"(F)(2)(3)(4)(5)(6)(?<S>7)(8)(9)(10)(L)\1", RegexOptions.None, "F2345678910L71", "Fail."),//6
-        new RegexTrial (@"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11", RegexOptions.None, "F2345678910LF1", "Fail."),//7
-        new RegexTrial (@"(F)(2)(3)(4)(5)(6)(?<S>7)(8)(9)(10)(L)\11", RegexOptions.None, "F2345678910L71", "Pass."//8
-        + "    Group[0]=(0,13)"
-        + " Group[1]=(0,1)"
-        + " Group[2]=(1,1)"
-        + " Group[3]=(2,1)"
-        + " Group[4]=(3,1)"
-        + " Group[5]=(4,1)"
-        + " Group[6]=(5,1)"
-        + " Group[7]=(7,1)"
-        + " Group[8]=(8,1)"
-        + " Group[9]=(9,2)"
-        + " Group[10]=(11,1)"
-        + " Group[11]=(6,1)"
-                       ),
-        new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)\10", RegexOptions.None, "F2345678910L71", "Pass."//9
-        + "    Group[0]=(0,13)"
-        + " Group[1]=(0,1)"
-        + " Group[2]=(1,1)"
-        + " Group[3]=(2,1)"
-        + " Group[4]=(4,1)"
-        + " Group[5]=(5,1)"
-        + " Group[6]=(7,1)"
-        + " Group[7]=(8,1)"
-        + " Group[8]=(9,2)"
-        + " Group[9]=(11,1)"
-        + " Group[10]=(3,1)(6,1)"
-                       ),
-        new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)\10", RegexOptions.ExplicitCapture, "F2345678910L70", "Fail."),//10
-        new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)\1", RegexOptions.ExplicitCapture, "F2345678910L70", "Pass. Group[0]=(0,13) Group[1]=(3,1)(6,1)"),//11
-        new RegexTrial (@"(?n:(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)\1)", RegexOptions.None, "F2345678910L70", "Pass. Group[0]=(0,13) Group[1]=(3,1)(6,1)"),//12
-        new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)(?(10)\10)", RegexOptions.None, "F2345678910L70","Pass."//13
-        + "    Group[0]=(0,13)"
-        + " Group[1]=(0,1)"
-        + " Group[2]=(1,1)"
-        + " Group[3]=(2,1)"
-        + " Group[4]=(4,1)"
-        + " Group[5]=(5,1)"
-        + " Group[6]=(7,1)"
-        + " Group[7]=(8,1)"
-        + " Group[8]=(9,2)"
-        + " Group[9]=(11,1)"
-        + " Group[10]=(3,1)(6,1)"
-                       ),
-        new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)(?(S)|\10)", RegexOptions.None, "F2345678910L70","Pass."//14
-        + "    Group[0]=(0,12)"
-        + " Group[1]=(0,1)"
-        + " Group[2]=(1,1)"
-        + " Group[3]=(2,1)"
-        + " Group[4]=(4,1)"
-        + " Group[5]=(5,1)"
-        + " Group[6]=(7,1)"
-        + " Group[7]=(8,1)"
-        + " Group[8]=(9,2)"
-        + " Group[9]=(11,1)"
-        + " Group[10]=(3,1)(6,1)"
-                       ),
-        new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)(?(7)|\10)", RegexOptions.None, "F2345678910L70","Pass."//15
-        + "    Group[0]=(0,12)"
-        + " Group[1]=(0,1)"
-        + " Group[2]=(1,1)"
-        + " Group[3]=(2,1)"
-        + " Group[4]=(4,1)"
-        + " Group[5]=(5,1)"
-        + " Group[6]=(7,1)"
-        + " Group[7]=(8,1)"
-        + " Group[8]=(9,2)"
-        + " Group[9]=(11,1)"
-        + " Group[10]=(3,1)(6,1)"
-                       ),
-        new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)(?(K)|\10)", RegexOptions.None, "F2345678910L70","Pass."//16
-        + "    Group[0]=(0,13)"
-        + " Group[1]=(0,1)"
-        + " Group[2]=(1,1)"
-        + " Group[3]=(2,1)"
-        + " Group[4]=(4,1)"
-        + " Group[5]=(5,1)"
-        + " Group[6]=(7,1)"
-        + " Group[7]=(8,1)"
-        + " Group[8]=(9,2)"
-        + " Group[9]=(11,1)"
-        + " Group[10]=(3,1)(6,1)"
-                       ),
-        new RegexTrial (@"\P{IsHebrew}", RegexOptions.None, "Fì", "Pass. Group[0]=(0,1)"),//17
-        new RegexTrial (@"\p{IsHebrew}", RegexOptions.None, "Fì", "Pass. Group[0]=(1,1)"),//18
-        new RegexTrial (@"(?<=a+)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//19
-        new RegexTrial (@"(?<=a*)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(0,4)"),//20
-        new RegexTrial (@"(?<=a{1,5})(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//21
-        new RegexTrial (@"(?<=a{1})(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//22
-        new RegexTrial (@"(?<=a{1,})(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//23
-        new RegexTrial (@"(?<=a+?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//24
-        new RegexTrial (@"(?<=a*?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(0,4)"),//25
-        new RegexTrial (@"(?<=a{1,5}?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//26
-        new RegexTrial (@"(?<=a{1}?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//27
-        new RegexTrial (@"(?<=a{1}?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//28
-        new RegexTrial (@"(?<!a+)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(0,4)"),//29
-        new RegexTrial (@"(?<!a*)(?:a)*bc", RegexOptions.None, "aabc", "Fail."),//30
-        new RegexTrial (@"abc*(?=c*)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//31
-        new RegexTrial (@"abc*(?=c+)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//32
-        new RegexTrial (@"abc*(?=c{1})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//33
-        new RegexTrial (@"abc*(?=c{1,5})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//34
-        new RegexTrial (@"abc*(?=c{1,})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//35
-        new RegexTrial (@"abc*(?=c*?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//36
-        new RegexTrial (@"abc*(?=c+?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//37
-        new RegexTrial (@"abc*(?=c{1}?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//38
-        new RegexTrial (@"abc*(?=c{1,5}?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//39
-        new RegexTrial (@"abc*(?=c{1,}?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//40
-        new RegexTrial (@"abc*?(?=c*)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//41
-        new RegexTrial (@"abc*?(?=c+)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//42
-        new RegexTrial (@"abc*?(?=c{1})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//43
-        new RegexTrial (@"abc*?(?=c{1,5})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//44
-        new RegexTrial (@"abc*?(?=c{1,})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//45
-        new RegexTrial (@"abc*(?!c*)", RegexOptions.None, "abcc", "Fail."),//46
-        new RegexTrial (@"abc*(?!c+)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//47
-        new RegexTrial (@"abc*(?!c{1})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//48
-        new RegexTrial (@"abc*(?!c{1,5})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//49
-        new RegexTrial (@"abc*(?!c{1,})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//50
-        new RegexTrial (@"(a)(?<1>b)(?'1'c)", RegexOptions.ExplicitCapture, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,1)(2,1)"),//51
-        new RegexTrial (@"(?>a*).", RegexOptions.ExplicitCapture, "aaaa", "Fail."),//52
-
-        new RegexTrial (@"(?<ab>ab)c\1", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,5) Group[1]=(0,2)"),//53
-        new RegexTrial (@"\1", RegexOptions.ECMAScript, "-", "Fail."),//54
-        new RegexTrial (@"\2", RegexOptions.ECMAScript, "-", "Fail."),//55
-        new RegexTrial (@"(a)|\2", RegexOptions.ECMAScript, "-", "Fail."),//56
-        new RegexTrial (@"\4400", RegexOptions.None, "asdf 012", "Pass. Group[0]=(4,2)"),//57
-        new RegexTrial (@"\4400", RegexOptions.ECMAScript, "asdf 012", "Fail."),//58
-        new RegexTrial (@"\4400", RegexOptions.None, "asdf$0012", "Fail."),//59
-        new RegexTrial (@"\4400", RegexOptions.ECMAScript, "asdf$0012", "Pass. Group[0]=(4,3)"),//60
-        new RegexTrial (@"(?<2>ab)(?<c>c)(?<d>d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(2,1) Group[2]=(0,2) Group[3]=(3,1)"),// 61
-        new RegexTrial (@"(?<1>ab)(c)", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,2)(2,1)"),//62
-        new RegexTrial (@"(?<44>a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[44]=(0,1)"),//63
-        new RegexTrial (@"(?<44>a)(?<8>b)", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[8]=(1,1) Group[44]=(0,1)"),//64
-        new RegexTrial (@"(?<44>a)(?<8>b)(?<1>c)(d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(2,1)(3,1) Group[8]=(1,1) Group[44]=(0,1)"),//65
-        new RegexTrial (@"(?<44>a)(?<44>b)", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[44]=(0,1)(1,1)"),//66
-        new RegexTrial (@"(?<44>a)\440", RegexOptions.None, "a ", "Pass. Group[0]=(0,2) Group[44]=(0,1)"),//67
-        new RegexTrial (@"(?<44>a)\440", RegexOptions.ECMAScript, "a ", "Fail."),//68
-        new RegexTrial (@"(?<44>a)\440", RegexOptions.None, "aa0", "Fail."),//69
-        new RegexTrial (@"(?<44>a)\440", RegexOptions.ECMAScript, "aa0", "Pass. Group[0]=(0,3) Group[44]=(0,1)"),//70
-    };
+       [TestFixture]
+       public class RegexMatchTests
+       {
+               static RegexTrial [] trials = new RegexTrial [] {
+                       new RegexTrial (@"(a)(b)(c)", RegexOptions.ExplicitCapture, "abc", "Pass. Group[0]=(0,3)"),//0
+                       new RegexTrial (@"(a)(?<1>b)(c)", RegexOptions.ExplicitCapture, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,1)"),//1
+                       new RegexTrial (@"(a)(?<2>b)(c)", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[1]=(1,1)(2,1)"),//2
+                       new RegexTrial (@"(a)(?<foo>b)(c)", RegexOptions.ExplicitCapture, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,1)"),//3
+                       new RegexTrial (@"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11", RegexOptions.None, "F2345678910LL", "Pass. Group[0]=(0,13)"//4
+                       + " Group[1]=(0,1)"
+                       + " Group[2]=(1,1)"
+                       + " Group[3]=(2,1)"
+                       + " Group[4]=(3,1)"
+                       + " Group[5]=(4,1)"
+                       + " Group[6]=(5,1)"
+                       + " Group[7]=(6,1)"
+                       + " Group[8]=(7,1)"
+                       + " Group[9]=(8,1)"
+                       + " Group[10]=(9,2)"
+                       + " Group[11]=(11,1)"
+                       ),
+                       new RegexTrial (@"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11", RegexOptions.ExplicitCapture, "F2345678910LL", "Fail."),//5
+                       new RegexTrial (@"(F)(2)(3)(4)(5)(6)(?<S>7)(8)(9)(10)(L)\1", RegexOptions.None, "F2345678910L71", "Fail."),//6
+                       new RegexTrial (@"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11", RegexOptions.None, "F2345678910LF1", "Fail."),//7
+                       new RegexTrial (@"(F)(2)(3)(4)(5)(6)(?<S>7)(8)(9)(10)(L)\11", RegexOptions.None, "F2345678910L71", "Pass."//8
+                       + "     Group[0]=(0,13)"
+                       + " Group[1]=(0,1)"
+                       + " Group[2]=(1,1)"
+                       + " Group[3]=(2,1)"
+                       + " Group[4]=(3,1)"
+                       + " Group[5]=(4,1)"
+                       + " Group[6]=(5,1)"
+                       + " Group[7]=(7,1)"
+                       + " Group[8]=(8,1)"
+                       + " Group[9]=(9,2)"
+                       + " Group[10]=(11,1)"
+                       + " Group[11]=(6,1)"
+                       ),
+                       new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)\10", RegexOptions.None, "F2345678910L71", "Pass."//9
+                       + "     Group[0]=(0,13)"
+                       + " Group[1]=(0,1)"
+                       + " Group[2]=(1,1)"
+                       + " Group[3]=(2,1)"
+                       + " Group[4]=(4,1)"
+                       + " Group[5]=(5,1)"
+                       + " Group[6]=(7,1)"
+                       + " Group[7]=(8,1)"
+                       + " Group[8]=(9,2)"
+                       + " Group[9]=(11,1)"
+                       + " Group[10]=(3,1)(6,1)"
+                       ),
+                       new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)\10", RegexOptions.ExplicitCapture, "F2345678910L70", "Fail."),//10
+                       new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)\1", RegexOptions.ExplicitCapture, "F2345678910L70", "Pass. Group[0]=(0,13) Group[1]=(3,1)(6,1)"),//11
+                       new RegexTrial (@"(?n:(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)\1)", RegexOptions.None, "F2345678910L70", "Pass. Group[0]=(0,13) Group[1]=(3,1)(6,1)"),//12
+                       new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)(?(10)\10)", RegexOptions.None, "F2345678910L70","Pass."//13
+                       + "     Group[0]=(0,13)"
+                       + " Group[1]=(0,1)"
+                       + " Group[2]=(1,1)"
+                       + " Group[3]=(2,1)"
+                       + " Group[4]=(4,1)"
+                       + " Group[5]=(5,1)"
+                       + " Group[6]=(7,1)"
+                       + " Group[7]=(8,1)"
+                       + " Group[8]=(9,2)"
+                       + " Group[9]=(11,1)"
+                       + " Group[10]=(3,1)(6,1)"
+                       ),
+                       new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)(?(S)|\10)", RegexOptions.None, "F2345678910L70","Pass."//14
+                       + "     Group[0]=(0,12)"
+                       + " Group[1]=(0,1)"
+                       + " Group[2]=(1,1)"
+                       + " Group[3]=(2,1)"
+                       + " Group[4]=(4,1)"
+                       + " Group[5]=(5,1)"
+                       + " Group[6]=(7,1)"
+                       + " Group[7]=(8,1)"
+                       + " Group[8]=(9,2)"
+                       + " Group[9]=(11,1)"
+                       + " Group[10]=(3,1)(6,1)"
+                       ),
+                       new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)(?(7)|\10)", RegexOptions.None, "F2345678910L70","Pass."//15
+                       + "     Group[0]=(0,12)"
+                       + " Group[1]=(0,1)"
+                       + " Group[2]=(1,1)"
+                       + " Group[3]=(2,1)"
+                       + " Group[4]=(4,1)"
+                       + " Group[5]=(5,1)"
+                       + " Group[6]=(7,1)"
+                       + " Group[7]=(8,1)"
+                       + " Group[8]=(9,2)"
+                       + " Group[9]=(11,1)"
+                       + " Group[10]=(3,1)(6,1)"
+                       ),
+                       new RegexTrial (@"(F)(2)(3)(?<S>4)(5)(6)(?'S'7)(8)(9)(10)(L)(?(K)|\10)", RegexOptions.None, "F2345678910L70","Pass."//16
+                       + "     Group[0]=(0,13)"
+                       + " Group[1]=(0,1)"
+                       + " Group[2]=(1,1)"
+                       + " Group[3]=(2,1)"
+                       + " Group[4]=(4,1)"
+                       + " Group[5]=(5,1)"
+                       + " Group[6]=(7,1)"
+                       + " Group[7]=(8,1)"
+                       + " Group[8]=(9,2)"
+                       + " Group[9]=(11,1)"
+                       + " Group[10]=(3,1)(6,1)"
+                       ),
+                       new RegexTrial (@"\P{IsHebrew}", RegexOptions.None, "Fì", "Pass. Group[0]=(0,1)"),//17
+                       new RegexTrial (@"\p{IsHebrew}", RegexOptions.None, "Fì", "Pass. Group[0]=(1,1)"),//18
+                       new RegexTrial (@"(?<=a+)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//19
+                       new RegexTrial (@"(?<=a*)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(0,4)"),//20
+                       new RegexTrial (@"(?<=a{1,5})(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//21
+                       new RegexTrial (@"(?<=a{1})(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//22
+                       new RegexTrial (@"(?<=a{1,})(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//23
+                       new RegexTrial (@"(?<=a+?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//24
+                       new RegexTrial (@"(?<=a*?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(0,4)"),//25
+                       new RegexTrial (@"(?<=a{1,5}?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//26
+                       new RegexTrial (@"(?<=a{1}?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//27
+                       new RegexTrial (@"(?<=a{1}?)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),//28
+                       new RegexTrial (@"(?<!a+)(?:a)*bc", RegexOptions.None, "aabc", "Pass. Group[0]=(0,4)"),//29
+                       new RegexTrial (@"(?<!a*)(?:a)*bc", RegexOptions.None, "aabc", "Fail."),//30
+                       new RegexTrial (@"abc*(?=c*)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//31
+                       new RegexTrial (@"abc*(?=c+)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//32
+                       new RegexTrial (@"abc*(?=c{1})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//33
+                       new RegexTrial (@"abc*(?=c{1,5})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//34
+                       new RegexTrial (@"abc*(?=c{1,})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//35
+                       new RegexTrial (@"abc*(?=c*?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//36
+                       new RegexTrial (@"abc*(?=c+?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//37
+                       new RegexTrial (@"abc*(?=c{1}?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//38
+                       new RegexTrial (@"abc*(?=c{1,5}?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//39
+                       new RegexTrial (@"abc*(?=c{1,}?)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),//40
+                       new RegexTrial (@"abc*?(?=c*)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//41
+                       new RegexTrial (@"abc*?(?=c+)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//42
+                       new RegexTrial (@"abc*?(?=c{1})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//43
+                       new RegexTrial (@"abc*?(?=c{1,5})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//44
+                       new RegexTrial (@"abc*?(?=c{1,})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,2)"),//45
+                       new RegexTrial (@"abc*(?!c*)", RegexOptions.None, "abcc", "Fail."),//46
+                       new RegexTrial (@"abc*(?!c+)", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//47
+                       new RegexTrial (@"abc*(?!c{1})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//48
+                       new RegexTrial (@"abc*(?!c{1,5})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//49
+                       new RegexTrial (@"abc*(?!c{1,})", RegexOptions.None, "abcc", "Pass. Group[0]=(0,4)"),//50
+                       new RegexTrial (@"(a)(?<1>b)(?'1'c)", RegexOptions.ExplicitCapture, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,1)(2,1)"),//51
+                       new RegexTrial (@"(?>a*).", RegexOptions.ExplicitCapture, "aaaa", "Fail."),//52
 
-    [Test]
-    public void RegexJvmTrial0000 ()
-    {
-        trials [0].Execute ();
-    }
+                       new RegexTrial (@"(?<ab>ab)c\1", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,5) Group[1]=(0,2)"),//53
+                       new RegexTrial (@"\1", RegexOptions.ECMAScript, "-", "Fail."),//54
+                       new RegexTrial (@"\2", RegexOptions.ECMAScript, "-", "Fail."),//55
+                       new RegexTrial (@"(a)|\2", RegexOptions.ECMAScript, "-", "Fail."),//56
+                       new RegexTrial (@"\4400", RegexOptions.None, "asdf 012", "Pass. Group[0]=(4,2)"),//57
+                       new RegexTrial (@"\4400", RegexOptions.ECMAScript, "asdf 012", "Fail."),//58
+                       new RegexTrial (@"\4400", RegexOptions.None, "asdf$0012", "Fail."),//59
+                       new RegexTrial (@"\4400", RegexOptions.ECMAScript, "asdf$0012", "Pass. Group[0]=(4,3)"),//60
+                       new RegexTrial (@"(?<2>ab)(?<c>c)(?<d>d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(2,1) Group[2]=(0,2) Group[3]=(3,1)"),// 61
+                       new RegexTrial (@"(?<1>ab)(c)", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,2)(2,1)"),//62
+                       new RegexTrial (@"(?<44>a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[44]=(0,1)"),//63
+                       new RegexTrial (@"(?<44>a)(?<8>b)", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[8]=(1,1) Group[44]=(0,1)"),//64
+                       new RegexTrial (@"(?<44>a)(?<8>b)(?<1>c)(d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(2,1)(3,1) Group[8]=(1,1) Group[44]=(0,1)"),//65
+                       new RegexTrial (@"(?<44>a)(?<44>b)", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[44]=(0,1)(1,1)"),//66
+                       new RegexTrial (@"(?<44>a)\440", RegexOptions.None, "a ", "Pass. Group[0]=(0,2) Group[44]=(0,1)"),//67
+                       new RegexTrial (@"(?<44>a)\440", RegexOptions.ECMAScript, "a ", "Fail."),//68
+                       new RegexTrial (@"(?<44>a)\440", RegexOptions.None, "aa0", "Fail."),//69
+                       new RegexTrial (@"(?<44>a)\440", RegexOptions.ECMAScript, "aa0", "Pass. Group[0]=(0,3) Group[44]=(0,1)"),//70
+               };
 
-    [Test]
-    public void RegexJvmTrial0001 ()
-    {
-        trials [1].Execute ();
-    }
+               [Test]
+               public void RegexJvmTrial0000 ()
+               {
+                       trials [0].Execute ();
+               }
 
-    [Test]
-    [Category ("NotDotNet")]
-    [Category ("NotWorking")]
-    public void RegexJvmTrial0002 ()
-    {
-        trials [2].Execute ();
-    }
+               [Test]
+               public void RegexJvmTrial0001 ()
+               {
+                       trials [1].Execute ();
+               }
 
-    [Test]
-    public void RegexJvmTrial0003 ()
-    {
-        trials [3].Execute ();
-    }
+               [Test]
+               [Category ("NotDotNet")]
+               [Category ("NotWorking")]
+               public void RegexJvmTrial0002 ()
+               {
+                       trials [2].Execute ();
+               }
 
-    [Test]
-    public void RegexJvmTrial0004 ()
-    {
-        trials [4].Execute ();
-    }
+               [Test]
+               public void RegexJvmTrial0003 ()
+               {
+                       trials [3].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    public void RegexJvmTrial0005 ()
-    {
-        trials [5].Execute ();
-    }
+               [Test]
+               public void RegexJvmTrial0004 ()
+               {
+                       trials [4].Execute ();
+               }
 
-    [Test]
-    public void RegexJvmTrial0006 ()
-    {
-        trials [6].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               public void RegexJvmTrial0005 ()
+               {
+                       trials [5].Execute ();
+               }
 
-    [Test]
-    public void RegexJvmTrial0007 ()
-    {
-        trials [7].Execute ();
-    }
+               [Test]
+               public void RegexJvmTrial0006 ()
+               {
+                       trials [6].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    [Category ("NotDotNet")]
-    public void RegexJvmTrial0008 ()
-    {
-        trials [8].Execute ();
-    }
+               [Test]
+               public void RegexJvmTrial0007 ()
+               {
+                       trials [7].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    [Category ("NotDotNet")]
-    public void RegexJvmTrial0009 ()
-    {
-        trials [9].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               [Category ("NotDotNet")]
+               public void RegexJvmTrial0008 ()
+               {
+                       trials [8].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    public void RegexJvmTrial0010 ()
-    {
-        trials [10].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               [Category ("NotDotNet")]
+               public void RegexJvmTrial0009 ()
+               {
+                       trials [9].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    public void RegexJvmTrial0011 ()
-    {
-        trials [11].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               public void RegexJvmTrial0010 ()
+               {
+                       trials [10].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    public void RegexJvmTrial0012 ()
-    {
-        trials [12].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               public void RegexJvmTrial0011 ()
+               {
+                       trials [11].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    [Category ("NotDotNet")]
-    public void RegexJvmTrial0013 ()
-    {
-        trials [13].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               public void RegexJvmTrial0012 ()
+               {
+                       trials [12].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    [Category ("NotDotNet")]
-    public void RegexJvmTrial0014 ()
-    {
-        trials [14].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               [Category ("NotDotNet")]
+               public void RegexJvmTrial0013 ()
+               {
+                       trials [13].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    [Category ("NotDotNet")]
-    public void RegexJvmTrial0015 ()
-    {
-        trials [15].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               [Category ("NotDotNet")]
+               public void RegexJvmTrial0014 ()
+               {
+                       trials [14].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    [Category ("NotDotNet")]
-    public void RegexJvmTrial0016 ()
-    {
-        trials [16].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               [Category ("NotDotNet")]
+               public void RegexJvmTrial0015 ()
+               {
+                       trials [15].Execute ();
+               }
 
-    [Test]
-    public void RegexJvmTrial0017 ()
-    {
-        trials [17].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               [Category ("NotDotNet")]
+               public void RegexJvmTrial0016 ()
+               {
+                       trials [16].Execute ();
+               }
 
-    [Test]
-    [Category ("NotWorking")]
-    [Category ("NotDotNet")]
-    public void RegexJvmTrial0018 ()
-    {
-        trials [18].Execute ();
-    }
+               [Test]
+               public void RegexJvmTrial0017 ()
+               {
+                       trials [17].Execute ();
+               }
 
-    [Test]     public void RegexJvmTrial0019 () {
-        trials [19].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0020 () {
-        trials [20].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0021 () {
-        trials [21].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0022 () {
-        trials [22].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0023 () {
-        trials [23].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0024 () {
-        trials [24].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0025 () {
-        trials [25].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0026 () {
-        trials [26].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0027 () {
-        trials [27].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0028 () {
-        trials [28].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0029 () {
-        trials [29].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0030 () {
-        trials [30].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0031 () {
-        trials [31].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0032 () {
-        trials [32].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0033 () {
-        trials [33].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0034 () {
-        trials [34].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0035 () {
-        trials [35].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0036 () {
-        trials [36].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0037 () {
-        trials [37].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0038 () {
-        trials [38].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0039 () {
-        trials [39].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0040 () {
-        trials [40].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0041 () {
-        trials [41].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0042 () {
-        trials [42].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0043 () {
-        trials [43].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0044 () {
-        trials [44].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0045 () {
-        trials [45].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0046 () {
-        trials [46].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0047 () {
-        trials [47].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0048 () {
-        trials [48].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0049 () {
-        trials [49].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0050 () {
-        trials [50].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0051 () {
-        trials [51].Execute ();
-    }
-    [Test]     public void RegexJvmTrial0052 () {
-        trials [52].Execute ();
-    }
+               [Test]
+               [Category ("NotWorking")]
+               [Category ("NotDotNet")]
+               public void RegexJvmTrial0018 ()
+               {
+                       trials [18].Execute ();
+               }
+               
+               [Test]  public void RegexJvmTrial0019 () { trials [19].Execute (); }
+               [Test]  public void RegexJvmTrial0020 () { trials [20].Execute (); }
+               [Test]  public void RegexJvmTrial0021 () { trials [21].Execute (); }
+               [Test]  public void RegexJvmTrial0022 () { trials [22].Execute (); }
+               [Test]  public void RegexJvmTrial0023 () { trials [23].Execute (); }
+               [Test]  public void RegexJvmTrial0024 () { trials [24].Execute (); }
+               [Test]  public void RegexJvmTrial0025 () { trials [25].Execute (); }
+               [Test]  public void RegexJvmTrial0026 () { trials [26].Execute (); }
+               [Test]  public void RegexJvmTrial0027 () { trials [27].Execute (); }
+               [Test]  public void RegexJvmTrial0028 () { trials [28].Execute (); }
+               [Test]  public void RegexJvmTrial0029 () { trials [29].Execute (); }
+               [Test]  public void RegexJvmTrial0030 () { trials [30].Execute (); }
+               [Test]  public void RegexJvmTrial0031 () { trials [31].Execute (); }
+               [Test]  public void RegexJvmTrial0032 () { trials [32].Execute (); }
+               [Test]  public void RegexJvmTrial0033 () { trials [33].Execute (); }
+               [Test]  public void RegexJvmTrial0034 () { trials [34].Execute (); }
+               [Test]  public void RegexJvmTrial0035 () { trials [35].Execute (); }
+               [Test]  public void RegexJvmTrial0036 () { trials [36].Execute (); }
+               [Test]  public void RegexJvmTrial0037 () { trials [37].Execute (); }
+               [Test]  public void RegexJvmTrial0038 () { trials [38].Execute (); }
+               [Test]  public void RegexJvmTrial0039 () { trials [39].Execute (); }
+               [Test]  public void RegexJvmTrial0040 () { trials [40].Execute (); }
+               [Test]  public void RegexJvmTrial0041 () { trials [41].Execute (); }
+               [Test]  public void RegexJvmTrial0042 () { trials [42].Execute (); }
+               [Test]  public void RegexJvmTrial0043 () { trials [43].Execute (); }
+               [Test]  public void RegexJvmTrial0044 () { trials [44].Execute (); }
+               [Test]  public void RegexJvmTrial0045 () { trials [45].Execute (); }
+               [Test]  public void RegexJvmTrial0046 () { trials [46].Execute (); }
+               [Test]  public void RegexJvmTrial0047 () { trials [47].Execute (); }
+               [Test]  public void RegexJvmTrial0048 () { trials [48].Execute (); }
+               [Test]  public void RegexJvmTrial0049 () { trials [49].Execute (); }
+               [Test]  public void RegexJvmTrial0050 () { trials [50].Execute (); }
+               [Test]  public void RegexJvmTrial0051 () { trials [51].Execute (); }
+               [Test]  public void RegexJvmTrial0052 () { trials [52].Execute (); }
 
-    [Test]     public void RegexTrial0053 () {
-        trials [53].Execute ();
-    }
-    [Test]     public void RegexTrial0054 () {
-        trials [54].Execute ();
-    }
-    [Test]     public void RegexTrial0055 () {
-        trials [55].Execute ();
-    }
-    [Test]     public void RegexTrial0056 () {
-        trials [56].Execute ();
-    }
-    [Test]     public void RegexTrial0057 () {
-        trials [57].Execute ();
-    }
-    [Test]     public void RegexTrial0058 () {
-        trials [58].Execute ();
-    }
-    [Test]     public void RegexTrial0059 () {
-        trials [59].Execute ();
-    }
-    [Test]     public void RegexTrial0060 () {
-        trials [60].Execute ();
-    }
-    [Test]     public void RegexTrial0061 () {
-        trials [61].Execute ();
-    }
-    [Test]     public void RegexTrial0062 () {
-        trials [62].Execute ();
-    }
-    [Test]     public void RegexTrial0063 () {
-        trials [63].Execute ();
-    }
-    [Test]     public void RegexTrial0064 () {
-        trials [64].Execute ();
-    }
-    [Test]     public void RegexTrial0065 () {
-        trials [65].Execute ();
-    }
-    [Test]     public void RegexTrial0066 () {
-        trials [66].Execute ();
-    }
-    [Test]     public void RegexTrial0067 () {
-        trials [67].Execute ();
-    }
-    [Test]     public void RegexTrial0068 () {
-        trials [68].Execute ();
-    }
-    [Test]     public void RegexTrial0069 () {
-        trials [69].Execute ();
-    }
-    [Test]     public void RegexTrial0070 () {
-        trials [70].Execute ();
-    }
-}
+               [Test]  public void RegexTrial0053 () { trials [53].Execute (); }
+               [Test]  public void RegexTrial0054 () { trials [54].Execute (); }
+               [Test]  public void RegexTrial0055 () { trials [55].Execute (); }
+               [Test]  public void RegexTrial0056 () { trials [56].Execute (); }
+               [Test]  public void RegexTrial0057 () { trials [57].Execute (); }
+               [Test]  public void RegexTrial0058 () { trials [58].Execute (); }
+               [Test]  public void RegexTrial0059 () { trials [59].Execute (); }
+               [Test]  public void RegexTrial0060 () { trials [60].Execute (); }
+               [Test]  public void RegexTrial0061 () { trials [61].Execute (); }
+               [Test]  public void RegexTrial0062 () { trials [62].Execute (); }
+               [Test]  public void RegexTrial0063 () { trials [63].Execute (); }
+               [Test]  public void RegexTrial0064 () { trials [64].Execute (); }
+               [Test]  public void RegexTrial0065 () { trials [65].Execute (); }
+               [Test]  public void RegexTrial0066 () { trials [66].Execute (); }
+               [Test]  public void RegexTrial0067 () { trials [67].Execute (); }
+               [Test]  public void RegexTrial0068 () { trials [68].Execute (); }
+               [Test]  public void RegexTrial0069 () { trials [69].Execute (); }
+               [Test]  public void RegexTrial0070 () { trials [70].Execute (); }
+       }
 }
index e9f826228e890112dd7070b576f9211e548336f2..d74c21c835ee4c7c246fc6b7bd2a64d3899f6bb4 100644 (file)
@@ -13,138 +13,135 @@ using NUnit.Framework;
 
 namespace MonoTests.System.Text.RegularExpressions {
 
-[TestFixture]
-public class RegexReplaceTest {
-    [Flags]
-    enum direction {
-        LTR = 1,
-        RTL = 2,
-        Both = 3
-    }
-    struct testcase {
-        public string original, pattern, replacement, expected;
-        public direction direction;
-        public testcase (string o, string p, string r, string e, direction d)
-        {
-            original = o;
-            pattern = p;
-            replacement = r;
-            expected = e;
-            direction = d;
-        }
-        public testcase (string o, string p, string r, string e) : this (o, p, r, e, direction.Both) {}
-    }
+       [TestFixture]
+       public class RegexReplaceTest {
+               [Flags]
+               enum direction {
+                       LTR = 1,
+                       RTL = 2,
+                       Both = 3
+               }
+               struct testcase {
+                       public string original, pattern, replacement, expected;
+                       public direction direction;
+                       public testcase (string o, string p, string r, string e, direction d)
+                       {
+                               original = o;
+                               pattern = p;
+                               replacement = r;
+                               expected = e;
+                               direction = d;
+                       }
+                       public testcase (string o, string p, string r, string e) : this (o, p, r, e, direction.Both) {}
+               }
 
-    static testcase [] tests = {
-        //     original        pattern                 replacement             expected
-        new testcase ("text",  "x",                    "y",                    "teyt"          ),
-        new testcase ("text",  "x",                    "$",                    "te$t"          ),
-        new testcase ("text",  "x",                    "$1",                   "te$1t"         ),
-        new testcase ("text",  "x",                    "${1}",                 "te${1}t"       ),
-        new testcase ("text",  "x",                    "$5",                   "te$5t"         ),
-        new testcase ("te(x)t",        "x",                    "$5",                   "te($5)t"       ),
-        new testcase ("text",  "x",                    "${5",                  "te${5t"        ),
-        new testcase ("text",  "x",                    "${foo",                "te${foot"      ),
-        new testcase ("text",  "(x)",                  "$5",                   "te$5t"         ),
-        new testcase ("text",  "(x)",                  "$1",                   "text"          ),
-        new testcase ("text",  "e(x)",                 "$1",                   "txt"           ),
-        new testcase ("text",  "e(x)",                 "$5",                   "t$5t"          ),
-        new testcase ("text",  "e(x)",                 "$4",                   "t$4t"          ),
-        new testcase ("text",  "e(x)",                 "$3",                   "t$3t"          ),
-        new testcase ("text",  "e(x)",                 "${1}",                 "txt"           ),
-        new testcase ("text",  "e(x)",                 "${3}",                 "t${3}t"        ),
-        new testcase ("text",  "e(x)",                 "${1}${3}",             "tx${3}t"       ),
-        new testcase ("text",  "e(x)",                 "${1}${name}",          "tx${name}t"    ),
-        new testcase ("text",  "e(?<foo>x)",           "${1}${name}",          "tx${name}t"    ),
-        new testcase ("text",  "e(?<foo>x)",           "${1}${foo}",           "txxt"          ),
-        new testcase ("text",  "e(?<foo>x)",           "${goll}${foo}",        "t${goll}xt"    ),
-        new testcase ("text",  "e(?<foo>x)",           "${goll${foo}",         "t${gollxt"     ),
-        new testcase ("text",  "e(?<foo>x)",           "${goll${foo}}",        "t${gollx}t"    ),
-        new testcase ("text",  "e(?<foo>x)",           "$${foo}}",             "t${foo}}t"     ),
-        new testcase ("text",  "e(?<foo>x)",           "${${foo}}",            "t${x}t"        ),
-        new testcase ("text",  "e(?<foo>x)",           "$${foo}}",             "t${foo}}t"     ),
-        new testcase ("text",  "e(?<foo>x)",           "$${bfoo}}",            "t${bfoo}}t"    ),
-        new testcase ("text",  "e(?<foo>x)",           "$${foo}}",             "t${foo}}t"     ),
-        new testcase ("text",  "e(?<foo>x)",           "$${foo}",              "t${foo}t"      ),
-        new testcase ("text",  "e(?<foo>x)",           "$$",                   "t$t"           ),
-        new testcase ("text",  "(?<foo>e)(?<foo>x)",   "${foo}$1$2",           "txx$2t", direction.LTR),
-        new testcase ("text",  "(?<foo>e)(?<foo>x)",   "${foo}$1$2",           "tee$2t", direction.RTL),
-        new testcase ("text",  "(e)(?<foo>x)", "${foo}$1$2",           "txext" ),
-        new testcase ("text",  "(?<foo>e)(x)", "${foo}$1$2",           "texet" ),
-        new testcase ("text",  "(e)(?<foo>x)", "${foo}$1$2$+",         "txexxt"        ),
-        new testcase ("text",  "(?<foo>e)(x)", "${foo}$1$2$+",         "texeet"        ),
-        new testcase ("314 1592 65358",                @"\d\d\d\d|\d\d\d", "a",        "a a a8", direction.LTR),
-        new testcase ("314 1592 65358",                @"\d\d\d\d|\d\d\d", "a",        "a a 6a", direction.RTL),
-        new testcase ("2 314 1592 65358",      @"\d\d\d\d|\d\d\d", "a",        "2 a a a8", direction.LTR),
-        new testcase ("2 314 1592 65358",      @"\d\d\d\d|\d\d\d", "a",        "2 a a 6a", direction.RTL),
-        new testcase ("<i>am not</i>",         "<(.+?)>",      "[$0:$1]",      "[<i>:i]am not[</i>:/i]"),
-        new testcase ("texts", "(?<foo>e)(x)", "${foo}$1$2$_",         "texetextsts"   ),
-        new testcase ("texts", "(?<foo>e)(x)", "${foo}$1$2$`",         "texetts"       ),
-        new testcase ("texts", "(?<foo>e)(x)", "${foo}$1$2$'",         "texetsts"      ),
-        new testcase ("texts", "(?<foo>e)(x)", "${foo}$1$2$&",         "texeexts"      ),
-        //new testcase ("F2345678910L71",      @"(F)(2)(3)(4)(5)(6)(?<S>7)(8)(9)(10)(L)\11",   "${S}$11$1", "77F1"     ),
-        new testcase ("F2345678910L71",        @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11",       "${S}$11$1", "F2345678910L71"   ),
-        new testcase ("F2345678910LL1",        @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11",       "${S}$11$1", "${S}LF1", /*FIXME: this should work in RTL direction too */ direction.LTR),
-        new testcase ("a", "a", @"\\", @"\\"), // bug #317092
-        new testcase ("a", "^", "x", "xa"), // bug #324390
-    };
+               static testcase [] tests = {
+                       //      original        pattern                 replacement             expected
+                       new testcase ("text",   "x",                    "y",                    "teyt"          ),
+                       new testcase ("text",   "x",                    "$",                    "te$t"          ),
+                       new testcase ("text",   "x",                    "$1",                   "te$1t"         ),
+                       new testcase ("text",   "x",                    "${1}",                 "te${1}t"       ),
+                       new testcase ("text",   "x",                    "$5",                   "te$5t"         ),
+                       new testcase ("te(x)t", "x",                    "$5",                   "te($5)t"       ),
+                       new testcase ("text",   "x",                    "${5",                  "te${5t"        ),
+                       new testcase ("text",   "x",                    "${foo",                "te${foot"      ),
+                       new testcase ("text",   "(x)",                  "$5",                   "te$5t"         ),
+                       new testcase ("text",   "(x)",                  "$1",                   "text"          ),
+                       new testcase ("text",   "e(x)",                 "$1",                   "txt"           ),
+                       new testcase ("text",   "e(x)",                 "$5",                   "t$5t"          ),
+                       new testcase ("text",   "e(x)",                 "$4",                   "t$4t"          ),
+                       new testcase ("text",   "e(x)",                 "$3",                   "t$3t"          ),
+                       new testcase ("text",   "e(x)",                 "${1}",                 "txt"           ),
+                       new testcase ("text",   "e(x)",                 "${3}",                 "t${3}t"        ),
+                       new testcase ("text",   "e(x)",                 "${1}${3}",             "tx${3}t"       ),
+                       new testcase ("text",   "e(x)",                 "${1}${name}",          "tx${name}t"    ),
+                       new testcase ("text",   "e(?<foo>x)",           "${1}${name}",          "tx${name}t"    ),
+                       new testcase ("text",   "e(?<foo>x)",           "${1}${foo}",           "txxt"          ),
+                       new testcase ("text",   "e(?<foo>x)",           "${goll}${foo}",        "t${goll}xt"    ),
+                       new testcase ("text",   "e(?<foo>x)",           "${goll${foo}",         "t${gollxt"     ),
+                       new testcase ("text",   "e(?<foo>x)",           "${goll${foo}}",        "t${gollx}t"    ),
+                       new testcase ("text",   "e(?<foo>x)",           "$${foo}}",             "t${foo}}t"     ),
+                       new testcase ("text",   "e(?<foo>x)",           "${${foo}}",            "t${x}t"        ),
+                       new testcase ("text",   "e(?<foo>x)",           "$${foo}}",             "t${foo}}t"     ),
+                       new testcase ("text",   "e(?<foo>x)",           "$${bfoo}}",            "t${bfoo}}t"    ),
+                       new testcase ("text",   "e(?<foo>x)",           "$${foo}}",             "t${foo}}t"     ),
+                       new testcase ("text",   "e(?<foo>x)",           "$${foo}",              "t${foo}t"      ),
+                       new testcase ("text",   "e(?<foo>x)",           "$$",                   "t$t"           ),
+                       new testcase ("text",   "(?<foo>e)(?<foo>x)",   "${foo}$1$2",           "txx$2t", direction.LTR),
+                       new testcase ("text",   "(?<foo>e)(?<foo>x)",   "${foo}$1$2",           "tee$2t", direction.RTL),
+                       new testcase ("text",   "(e)(?<foo>x)", "${foo}$1$2",           "txext" ),
+                       new testcase ("text",   "(?<foo>e)(x)", "${foo}$1$2",           "texet" ),
+                       new testcase ("text",   "(e)(?<foo>x)", "${foo}$1$2$+",         "txexxt"        ),
+                       new testcase ("text",   "(?<foo>e)(x)", "${foo}$1$2$+",         "texeet"        ),
+                       new testcase ("314 1592 65358",         @"\d\d\d\d|\d\d\d", "a",        "a a a8", direction.LTR),
+                       new testcase ("314 1592 65358",         @"\d\d\d\d|\d\d\d", "a",        "a a 6a", direction.RTL),
+                       new testcase ("2 314 1592 65358",       @"\d\d\d\d|\d\d\d", "a",        "2 a a a8", direction.LTR),
+                       new testcase ("2 314 1592 65358",       @"\d\d\d\d|\d\d\d", "a",        "2 a a 6a", direction.RTL),
+                       new testcase ("<i>am not</i>",          "<(.+?)>",      "[$0:$1]",      "[<i>:i]am not[</i>:/i]"),
+                       new testcase ("texts",  "(?<foo>e)(x)", "${foo}$1$2$_",         "texetextsts"   ),
+                       new testcase ("texts",  "(?<foo>e)(x)", "${foo}$1$2$`",         "texetts"       ),
+                       new testcase ("texts",  "(?<foo>e)(x)", "${foo}$1$2$'",         "texetsts"      ),
+                       new testcase ("texts",  "(?<foo>e)(x)", "${foo}$1$2$&",         "texeexts"      ),
+                       //new testcase ("F2345678910L71",       @"(F)(2)(3)(4)(5)(6)(?<S>7)(8)(9)(10)(L)\11",   "${S}$11$1", "77F1"     ),
+                       new testcase ("F2345678910L71", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11",       "${S}$11$1", "F2345678910L71"   ),
+                       new testcase ("F2345678910LL1", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11",       "${S}$11$1", "${S}LF1", /*FIXME: this should work in RTL direction too */ direction.LTR),
+                       new testcase ("a", "a", @"\\", @"\\"), // bug #317092
+                       new testcase ("a", "^", "x", "xa"), // bug #324390
+               };
 
-    [Test]
-    public void ReplaceTests ()
-    {
-        string result = "";
-        int i = 0;
-        foreach (testcase test in tests) {
-            if ((test.direction & direction.LTR) == direction.LTR) {
-                try {
-                    result = Regex.Replace (test.original, test.pattern, test.replacement);
-                } catch (Exception e) {
-                    Assert.Fail ("rr#{0}ltr Exception thrown: " + e.ToString (), i);
-                }
-                Assert.AreEqual (test.expected, result, "rr#{0}ltr: {1} ~ s,{2},{3},", i,
-                                 test.original, test.pattern, test.replacement);
-            }
+               [Test]
+               public void ReplaceTests ()
+               {
+                       string result = "";
+                       int i = 0;
+                       foreach (testcase test in tests) {
+                               if ((test.direction & direction.LTR) == direction.LTR) {
+                                       try {
+                                               result = Regex.Replace (test.original, test.pattern, test.replacement);
+                                       } catch (Exception e) {
+                                               Assert.Fail ("rr#{0}ltr Exception thrown: " + e.ToString (), i);
+                                       }
+                                       Assert.AreEqual (test.expected, result, "rr#{0}ltr: {1} ~ s,{2},{3},", i,
+                                                        test.original, test.pattern, test.replacement);
+                               }
 
-            if ((test.direction & direction.RTL) == direction.RTL) {
-                try {
-                    result = Regex.Replace (test.original, test.pattern, test.replacement, RegexOptions.RightToLeft);
-                } catch (Exception e) {
-                    Assert.Fail ("rr#{0}rtl Exception thrown: " + e.ToString (), i);
-                }
-                Assert.AreEqual (test.expected, result, "rr#{0}rtl: {1} ~ s,{2},{3},", i,
-                                 test.original, test.pattern, test.replacement);
-            }
-            ++i;
-        }
-    }
+                               if ((test.direction & direction.RTL) == direction.RTL) {
+                                       try {
+                                               result = Regex.Replace (test.original, test.pattern, test.replacement, RegexOptions.RightToLeft);
+                                       } catch (Exception e) {
+                                               Assert.Fail ("rr#{0}rtl Exception thrown: " + e.ToString (), i);
+                                       }
+                                       Assert.AreEqual (test.expected, result, "rr#{0}rtl: {1} ~ s,{2},{3},", i,
+                                                        test.original, test.pattern, test.replacement);
+                               }
+                               ++i;
+                       }
+               }
 
-    static string substitute (Match m)
-    {
-        switch (m.Value.Substring(2, m.Length - 3)) {
-        case "foo":
-            return "bar";
-        case "hello":
-            return "world";
-        default:
-            return "ERROR";
-        }
-    }
+               static string substitute (Match m)
+               {
+                       switch (m.Value.Substring(2, m.Length - 3)) {
+                       case "foo": return "bar";
+                       case "hello": return "world";
+                       default: return "ERROR";
+                       }
+               }
 
-    static string resolve (string val, Regex r)
-    {
-        MatchEvaluator ev = new MatchEvaluator (substitute);
-        while (r.IsMatch (val))
-            val = r.Replace (val, ev);
-        return val;
-    }
+               static string resolve (string val, Regex r)
+               {
+                       MatchEvaluator ev = new MatchEvaluator (substitute);
+                       while (r.IsMatch (val))
+                               val = r.Replace (val, ev);
+                       return val;
+               }
 
-    [Test] // #321036
-    public void EvaluatorTests ()
-    {
-        string test = "@(foo) @(hello)";
-        string regex = "\\@\\([^\\)]*?\\)";
-        Assert.AreEqual ("bar world", resolve (test, new Regex (regex)), "ltr");
-        Assert.AreEqual ("bar world", resolve (test, new Regex (regex, RegexOptions.RightToLeft)), "rtl");
-    }
-}
+               [Test] // #321036
+               public void EvaluatorTests ()
+               {
+                       string test = "@(foo) @(hello)";
+                       string regex = "\\@\\([^\\)]*?\\)";
+                       Assert.AreEqual ("bar world", resolve (test, new Regex (regex)), "ltr");
+                       Assert.AreEqual ("bar world", resolve (test, new Regex (regex, RegexOptions.RightToLeft)), "rtl");
+               }
+       }
 }
index 0d5c608ae40f079d6f930705ffb3bcc419283e54..5d30f5d7ed0e7a90c79c11166ee0809f53f52306 100644 (file)
@@ -5,442 +5,236 @@ using NUnit.Framework;
 
 namespace MonoTests.System.Text.RegularExpressions
 {
-[TestFixture]
-public class RegexReplaceTests
-{
-    struct testcase
-    {
-        public string original, pattern, replacement, expected;
-        public testcase (string o, string p, string r, string e) {
-            original = o;
-            pattern = p;
-            replacement = r;
-            expected = e;
-        }
-        public void Execute () {
-            string result;
-            try {
-                result = Regex.Replace (original, pattern, replacement);
-            }
-            catch (Exception e) {
-                result = "Error.";
-            }
-            Assert.AreEqual (expected, result, "rr#: {0} ~ s,{1},{2},",
-                             original, pattern, replacement);
-        }
-    }
+       [TestFixture]
+       public class RegexReplaceTests
+       {
+               struct testcase
+               {
+                       public string original, pattern, replacement, expected;
+                       public testcase (string o, string p, string r, string e) {
+                               original = o;
+                               pattern = p;
+                               replacement = r;
+                               expected = e;
+                       }
+                       public void Execute () {
+                               string result;
+                               try {
+                                       result = Regex.Replace (original, pattern, replacement);
+                               }
+                               catch (Exception e) {
+                                       result = "Error.";
+                               }
+                               Assert.AreEqual (expected, result, "rr#: {0} ~ s,{1},{2},",
+                                       original, pattern, replacement);
+                       }
+               }
 
-    [Test]
-    public void ReplaceTest_001 () {
-        new testcase (@"(?(w)a|o)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_002 () {
-        new testcase (@"(?(w)|o)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_003 () {
-        new testcase (@"(?(w)a)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_004 () {
-        new testcase (@"(?(w)a|)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_005 () {
-        new testcase (@"(?(w)?|a|o)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_006 () {
-        new testcase (@"(?(w)||o)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_007 () {
-        new testcase (@"(?(w)(a)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_008 () {
-        new testcase (@"(?(w))\a|)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_009 () {
-        new testcase (@"(?(2)a|o)", @"\(\?\([^\)]+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_010 () {
-        new testcase (@"(?(|)a|o)", @"\(\?\([^\)]+\).*\|?.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_011 () {
-        new testcase (@"a\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"a\5b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_012 () {
-        new testcase (@"\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"\5b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_013 () {
-        new testcase (@"\\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"\\3b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_014 () {
-        new testcase (@"\\\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"\\\5b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_015 () {
-        new testcase (@"a\\\\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"a\\\\3b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_016 () {
-        new testcase (@"\\\k<g>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k<(\w+)>", @"\5", @"\\\5").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_017 () {
-        new testcase (@"a\\\k<g>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k<(\w+)>", @"\5", @"a\\\5").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_018 () {
-        new testcase (@"\\\\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w+)'", @"\5", @"\\\\k'g'").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_019 () {
-        new testcase (@"a\\\\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w+)'", @"\5", @"a\\\\k'g'").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_020 () {
-        new testcase (@"\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w+)'", @"\5", @"\5").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_021 () {
-        new testcase (@"(?<n1-n2>)", @"\(\?<[A-Za-z]\w*-[A-Za-z]\w*>.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_022 () {
-        new testcase (@"(?'n1-n2'a)", @"\(\?'[A-Za-z]\w*-[A-Za-z]\w*'.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_023 () {
-        new testcase (@"\p{Isa}", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\\[pP]\{)Is(?=\w+\})", "In", @"\p{Ina}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_024 () {
-        new testcase (@"\p{Is}", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\\[pP]\{)Is(?=\w+\})", "In", @"\p{Is}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_025 () {
-        new testcase (@"\p{Isa", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\\[pP]\{)Is(?=\w+\})", "In", @"\p{Isa").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_026 () {
-        new testcase (@"a(?#|)", @"\(\?#[^\)]*\)", "", "a").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_027 () {
-        new testcase (@"(?#|)", @"\(\?#[^\)]*\)", "", "").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_028 () {
-        new testcase (@"(?#|)", @"\#[^\n\r]*", "", "(?").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_029 () {
-        new testcase (@"(?inm-xs:\#)", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?[imsx]*n[-imsx]*:[^\)]+\)", "r", @"(r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_030 () {
-        new testcase (@"(?ni:())", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?[imsx]*n[-imsx]*:[^\)]+\)", "r", @"(r)").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_031 () {
-        new testcase (@"(?x-i:)", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?[imsx]*n[-imsx]*:[^\)]+\)", "r", @"(?x-i:)").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_032 () {
-        new testcase (@"(?n:))", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?[imsx]*n[-imsx]*:[^\)]+\)", "r", @"(?n:))").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_033 () {
-        new testcase (@"(?<n1>)", @"\(\?<[A-Za-z]\w*>.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_034 () {
-        new testcase (@"(?'n1'y)", @"\(\?'[A-Za-z]\w*'.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_035 () {
-        new testcase (@"(?<45>y)", @"\(\?<\d+>.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_036 () {
-        new testcase (@"(?'7'o)", @"\(\?'\d+'.*\)", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_037 () {
-        new testcase (@"\\\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"\\r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_038 () {
-        new testcase (@"a\\\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"a\\r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_039 () {
-        new testcase (@"\\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"\\(").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_040 () {
-        new testcase (@"a\\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"a\\(").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_041 () {
-        new testcase (@"\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_042 () {
-        new testcase (@"a\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"ar").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_043 () {
-        new testcase (@"?:", @"(?:^\?[:imnsx=!>-]|^\?<[!=])", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_044 () {
-        new testcase (@"?<!", @"(?:^\?[:imnsx=!>-]|^\?<[!=])", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_045 () {
-        new testcase (@"?-", @"(?:^\?[:imnsx=!>-]|^\?<[!=])", "r", "r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_046 () {
-        new testcase (@"\\(?<n>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?<[A-Za-z]\w*>", "r", @"\\(r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_047 () {
-        new testcase (@"a\\(?'n'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?'[A-Za-z]\w*'", "r", @"a\\(r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_048 () {
-        new testcase (@"\\\\(?<2>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?<\d+>", "r", @"\\\\(r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_049 () {
-        new testcase (@"(?'2'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?'\d+'", "r", "(r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_050 () {
-        new testcase (@"\\[\b]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\\[\\u0008]").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_051 () {
-        new testcase (@"\\[a\bb]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\\[a\\u0008b]").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_052 () {
-        new testcase (@"\[\b]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\[\b]").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_053 () {
-        new testcase (@"\\[\\b]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\\[\\b]").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_054 () {
-        new testcase (@"\\[\\\b]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\\[\\\\u0008]").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_055 () {
-        new testcase (@"[[]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\[(?=[^\[\]]*\])", @"\\[", @"[\\[]").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_056 () {
-        new testcase (@"\[[]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\[(?=[^\[\]]*\])", @"\\[", @"\[[]").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_057 () {
-        new testcase (@"\\[\\[]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\[(?=[^\[\]]*\])", @"\\[", @"\\[\\\\[]").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_058 () {
-        new testcase (@"\\[\\\[]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\[(?=[^\[\]]*\])", @"\\[", @"\\[\\\[]").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_059 () {
-        new testcase (@"\\{", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\\\{").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_060 () {
-        new testcase (@"\\{", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\\\{").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_061 () {
-        new testcase (@"\\{1,2}", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\{1,2}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_062 () {
-        new testcase (@"\\{1}", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\{1}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_063 () {
-        new testcase (@"\\{1,}", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\{1,}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_064 () {
-        new testcase (@"\{1", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\{1").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_065 () {
-        new testcase (@"\\}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"\\\\}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_066 () {
-        new testcase (@"{\\}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"{\\\\}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_067 () {
-        new testcase (@"{1,2}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"{1,2}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_068 () {
-        new testcase (@"\\{1}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"\\{1}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_069 () {
-        new testcase (@"\\{1\}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"\\{1\\\}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_070 () {
-        new testcase (@"\{1}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"\{1\\}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_071 () {
-        new testcase (@"{1,}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"{1,}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_072 () {
-        new testcase (@"\0", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\\0(?!\d)", @"\\u0000", @"\\u0000").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_073 () {
-        new testcase (@"\03", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\\0(?!\d)", @"\\u0000", @"\03").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_074 () {
-        new testcase (@"\\0", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\\0(?!\d)", @"\\u0000", @"\\0").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_075 () {
-        new testcase (@"\\\0a", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\\0(?!\d)", @"\\u0000", @"\\\\u0000a").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_076 () {
-        new testcase (@"a(?<=b*c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_077 () {
-        new testcase (@"a(?<=b*c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_078 () {
-        new testcase (@"a(?<=b*c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_079 () {
-        new testcase (@"a(?<=b+c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_080 () {
-        new testcase (@"a(?<!b+c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_081 () {
-        new testcase (@"a(?<!b*c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_082 () {
-        new testcase (@"(?<!b{1}c))", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"(?<!b{1}c))").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_083 () {
-        new testcase (@"(?<!b{1,}c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_084 () {
-        new testcase (@"(?<!b{1,4}c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"(?<!b{1,4}c)").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_085 () {
-        new testcase (@"\p{Isa}", @"(?<=\\[pP]\{)Is(?=\w+\})", "In", @"\p{Ina}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_086 () {
-        new testcase (@"\p{Is}", @"(?<=\\[pP]\{)Is(?=\w+\})", "In", @"\p{Is}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_087 () {
-        new testcase (@"\p{Isa", @"(?<=\\[pP]\{)Is(?=\w+\})", "In", @"\p{Isa").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_088 () {
-        new testcase (@"a\3b", @"\\(\d+)", @"\5", @"a\5b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_089 () {
-        new testcase (@"\3b", @"\\(\d+)", @"\5", @"\5b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_090 () {
-        new testcase (@"\\3b", @"(?<=\\)\\(\d)", @"\5", @"\\5b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_091 () {
-        new testcase (@"\\\3b", @"(?<=\\\\)\\(\d)", @"\5", @"\\\5b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_092 () {
-        new testcase (@"a\\\\3b", @"(?<=(\\){0,5})\\(\d)", @"\5", @"a\\\\5b").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_093 () {
-        new testcase (@"\\\k<g>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k<(\w)>", @"\5", @"\\\5").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_094 () {
-        new testcase (@"a\\\k<g>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k<(\w)>", @"\5", @"a\\\5").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_095 () {
-        new testcase (@"\\\\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w)'", @"\5", @"\\\\k'g'").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_096 () {
-        new testcase (@"a\\\\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w)'", @"\5", @"a\\\\k'g'").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_097 () {
-        new testcase (@"\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w)'", @"\5", @"\5").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_098 () {
-        new testcase (@"\\(?<={1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"\5", @"\5").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_099 () {
-        new testcase (@"{1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_100 () {
-        new testcase (@"({1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_101 () {
-        new testcase (@"(?{1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"(?{1}").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_102 () {
-        new testcase (@"(?:{1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"r").Execute ();
-    }
-    [Test]
-    public void ReplaceTest_103 () {
-        new testcase (@"\({1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"\({1}").Execute ();
-    }
-}
+               [Test]
+               public void ReplaceTest_001 () { new testcase (@"(?(w)a|o)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_002 () { new testcase (@"(?(w)|o)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_003 () { new testcase (@"(?(w)a)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_004 () { new testcase (@"(?(w)a|)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_005 () { new testcase (@"(?(w)?|a|o)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_006 () { new testcase (@"(?(w)||o)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_007 () { new testcase (@"(?(w)(a)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_008 () { new testcase (@"(?(w))\a|)", @"\(\?\(\w+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_009 () { new testcase (@"(?(2)a|o)", @"\(\?\([^\)]+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_010 () { new testcase (@"(?(|)a|o)", @"\(\?\([^\)]+\).*\|?.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_011 () { new testcase (@"a\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"a\5b").Execute (); }
+               [Test]
+               public void ReplaceTest_012 () { new testcase (@"\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"\5b").Execute (); }
+               [Test]
+               public void ReplaceTest_013 () { new testcase (@"\\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"\\3b").Execute (); }
+               [Test]
+               public void ReplaceTest_014 () { new testcase (@"\\\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"\\\5b").Execute (); }
+               [Test]
+               public void ReplaceTest_015 () { new testcase (@"a\\\\3b", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\(\d+)", @"\5", @"a\\\\3b").Execute (); }
+               [Test]
+               public void ReplaceTest_016 () { new testcase (@"\\\k<g>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k<(\w+)>", @"\5", @"\\\5").Execute (); }
+               [Test]
+               public void ReplaceTest_017 () { new testcase (@"a\\\k<g>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k<(\w+)>", @"\5", @"a\\\5").Execute (); }
+               [Test]
+               public void ReplaceTest_018 () { new testcase (@"\\\\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w+)'", @"\5", @"\\\\k'g'").Execute (); }
+               [Test]
+               public void ReplaceTest_019 () { new testcase (@"a\\\\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w+)'", @"\5", @"a\\\\k'g'").Execute (); }
+               [Test]
+               public void ReplaceTest_020 () { new testcase (@"\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w+)'", @"\5", @"\5").Execute (); }
+               [Test]
+               public void ReplaceTest_021 () { new testcase (@"(?<n1-n2>)", @"\(\?<[A-Za-z]\w*-[A-Za-z]\w*>.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_022 () { new testcase (@"(?'n1-n2'a)", @"\(\?'[A-Za-z]\w*-[A-Za-z]\w*'.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_023 () { new testcase (@"\p{Isa}", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\\[pP]\{)Is(?=\w+\})", "In", @"\p{Ina}").Execute (); }
+               [Test]
+               public void ReplaceTest_024 () { new testcase (@"\p{Is}", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\\[pP]\{)Is(?=\w+\})", "In", @"\p{Is}").Execute (); }
+               [Test]
+               public void ReplaceTest_025 () { new testcase (@"\p{Isa", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\\[pP]\{)Is(?=\w+\})", "In", @"\p{Isa").Execute (); }
+               [Test]
+               public void ReplaceTest_026 () { new testcase (@"a(?#|)", @"\(\?#[^\)]*\)", "", "a").Execute (); }
+               [Test]
+               public void ReplaceTest_027 () { new testcase (@"(?#|)", @"\(\?#[^\)]*\)", "", "").Execute (); }
+               [Test]
+               public void ReplaceTest_028 () { new testcase (@"(?#|)", @"\#[^\n\r]*", "", "(?").Execute (); }
+               [Test]
+               public void ReplaceTest_029 () { new testcase (@"(?inm-xs:\#)", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?[imsx]*n[-imsx]*:[^\)]+\)", "r", @"(r").Execute (); }
+               [Test]
+               public void ReplaceTest_030 () { new testcase (@"(?ni:())", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?[imsx]*n[-imsx]*:[^\)]+\)", "r", @"(r)").Execute (); }
+               [Test]
+               public void ReplaceTest_031 () { new testcase (@"(?x-i:)", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?[imsx]*n[-imsx]*:[^\)]+\)", "r", @"(?x-i:)").Execute (); }
+               [Test]
+               public void ReplaceTest_032 () { new testcase (@"(?n:))", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?[imsx]*n[-imsx]*:[^\)]+\)", "r", @"(?n:))").Execute (); }
+               [Test]
+               public void ReplaceTest_033 () { new testcase (@"(?<n1>)", @"\(\?<[A-Za-z]\w*>.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_034 () { new testcase (@"(?'n1'y)", @"\(\?'[A-Za-z]\w*'.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_035 () { new testcase (@"(?<45>y)", @"\(\?<\d+>.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_036 () { new testcase (@"(?'7'o)", @"\(\?'\d+'.*\)", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_037 () { new testcase (@"\\\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"\\r").Execute (); }
+               [Test]
+               public void ReplaceTest_038 () { new testcase (@"a\\\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"a\\r").Execute (); }
+               [Test]
+               public void ReplaceTest_039 () { new testcase (@"\\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"\\(").Execute (); }
+               [Test]
+               public void ReplaceTest_040 () { new testcase (@"a\\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"a\\(").Execute (); }
+               [Test]
+               public void ReplaceTest_041 () { new testcase (@"\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"r").Execute (); }
+               [Test]
+               public void ReplaceTest_042 () { new testcase (@"a\(", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\\(", "r", @"ar").Execute (); }
+               [Test]
+               public void ReplaceTest_043 () { new testcase (@"?:", @"(?:^\?[:imnsx=!>-]|^\?<[!=])", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_044 () { new testcase (@"?<!", @"(?:^\?[:imnsx=!>-]|^\?<[!=])", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_045 () { new testcase (@"?-", @"(?:^\?[:imnsx=!>-]|^\?<[!=])", "r", "r").Execute (); }
+               [Test]
+               public void ReplaceTest_046 () { new testcase (@"\\(?<n>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?<[A-Za-z]\w*>", "r", @"\\(r").Execute (); }
+               [Test]
+               public void ReplaceTest_047 () { new testcase (@"a\\(?'n'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?'[A-Za-z]\w*'", "r", @"a\\(r").Execute (); }
+               [Test]
+               public void ReplaceTest_048 () { new testcase (@"\\\\(?<2>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?<\d+>", "r", @"\\\\(r").Execute (); }
+               [Test]
+               public void ReplaceTest_049 () { new testcase (@"(?'2'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823}\()\?'\d+'", "r", "(r").Execute (); }
+               [Test]
+               public void ReplaceTest_050 () { new testcase (@"\\[\b]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\\[\\u0008]").Execute (); }
+               [Test]
+               public void ReplaceTest_051 () { new testcase (@"\\[a\bb]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\\[a\\u0008b]").Execute (); }
+               [Test]
+               public void ReplaceTest_052 () { new testcase (@"\[\b]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\[\b]").Execute (); }
+               [Test]
+               public void ReplaceTest_053 () { new testcase (@"\\[\\b]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\\[\\b]").Execute (); }
+               [Test]
+               public void ReplaceTest_054 () { new testcase (@"\\[\\\b]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\\b(?=[^\[\]]*\])", @"\\u0008", @"\\[\\\\u0008]").Execute (); }
+               [Test]
+               public void ReplaceTest_055 () { new testcase (@"[[]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\[(?=[^\[\]]*\])", @"\\[", @"[\\[]").Execute (); }
+               [Test]
+               public void ReplaceTest_056 () { new testcase (@"\[[]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\[(?=[^\[\]]*\])", @"\\[", @"\[[]").Execute (); }
+               [Test]
+               public void ReplaceTest_057 () { new testcase (@"\\[\\[]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\[(?=[^\[\]]*\])", @"\\[", @"\\[\\\\[]").Execute (); }
+               [Test]
+               public void ReplaceTest_058 () { new testcase (@"\\[\\\[]", @"(?<=(?:\A|[^\\])(?:[\\]{2})*(?:\[|\[[^\[\]]*[^\[\]\\])(?:[\\]{2})*)\[(?=[^\[\]]*\])", @"\\[", @"\\[\\\[]").Execute (); }
+               [Test]
+               public void ReplaceTest_059 () { new testcase (@"\\{", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\\\{").Execute (); }
+               [Test]
+               public void ReplaceTest_060 () { new testcase (@"\\{", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\\\{").Execute (); }
+               [Test]
+               public void ReplaceTest_061 () { new testcase (@"\\{1,2}", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\{1,2}").Execute (); }
+               [Test]
+               public void ReplaceTest_062 () { new testcase (@"\\{1}", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\{1}").Execute (); }
+               [Test]
+               public void ReplaceTest_063 () { new testcase (@"\\{1,}", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\\{1,}").Execute (); }
+               [Test]
+               public void ReplaceTest_064 () { new testcase (@"\{1", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\{(?!\d\d*(,(\d\d*)?)?\})", @"\\{", @"\{1").Execute (); }
+               [Test]
+               public void ReplaceTest_065 () { new testcase (@"\\}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"\\\\}").Execute (); }
+               [Test]
+               public void ReplaceTest_066 () { new testcase (@"{\\}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"{\\\\}").Execute (); }
+               [Test]
+               public void ReplaceTest_067 () { new testcase (@"{1,2}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"{1,2}").Execute (); }
+               [Test]
+               public void ReplaceTest_068 () { new testcase (@"\\{1}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"\\{1}").Execute (); }
+               [Test]
+               public void ReplaceTest_069 () { new testcase (@"\\{1\}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"\\{1\\\}").Execute (); }
+               [Test]
+               public void ReplaceTest_070 () { new testcase (@"\{1}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"\{1\\}").Execute (); }
+               [Test]
+               public void ReplaceTest_071 () { new testcase (@"{1,}", @"(?<!(\A|[^\\])(\\{2})*\{\d\d*(,(\d\d*)?)?)\}", @"\\}", @"{1,}").Execute (); }
+               [Test]
+               public void ReplaceTest_072 () { new testcase (@"\0", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\\0(?!\d)", @"\\u0000", @"\\u0000").Execute (); }
+               [Test]
+               public void ReplaceTest_073 () { new testcase (@"\03", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\\0(?!\d)", @"\\u0000", @"\03").Execute (); }
+               [Test]
+               public void ReplaceTest_074 () { new testcase (@"\\0", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\\0(?!\d)", @"\\u0000", @"\\0").Execute (); }
+               [Test]
+               public void ReplaceTest_075 () { new testcase (@"\\\0a", @"(?<=(?:\A|[^\\])(?:[\\]{2})*)\\0(?!\d)", @"\\u0000", @"\\\\u0000a").Execute (); }
+               [Test]
+               public void ReplaceTest_076 () { new testcase (@"a(?<=b*c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute (); }
+               [Test]
+               public void ReplaceTest_077 () { new testcase (@"a(?<=b*c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute (); }
+               [Test]
+               public void ReplaceTest_078 () { new testcase (@"a(?<=b*c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute (); }
+               [Test]
+               public void ReplaceTest_079 () { new testcase (@"a(?<=b+c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute (); }
+               [Test]
+               public void ReplaceTest_080 () { new testcase (@"a(?<!b+c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute (); }
+               [Test]
+               public void ReplaceTest_081 () { new testcase (@"a(?<!b*c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"ar").Execute (); }
+               [Test]
+               public void ReplaceTest_082 () { new testcase (@"(?<!b{1}c))", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"(?<!b{1}c))").Execute (); }
+               [Test]
+               public void ReplaceTest_083 () { new testcase (@"(?<!b{1,}c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"r").Execute (); }
+               [Test]
+               public void ReplaceTest_084 () { new testcase (@"(?<!b{1,4}c)", @"\(\?\<[=!][^\)]*(?:[\*\+]|\{\d+,\}).*\)", @"r", @"(?<!b{1,4}c)").Execute (); }
+               [Test]
+               public void ReplaceTest_085 () { new testcase (@"\p{Isa}", @"(?<=\\[pP]\{)Is(?=\w+\})", "In", @"\p{Ina}").Execute (); }
+               [Test]
+               public void ReplaceTest_086 () { new testcase (@"\p{Is}", @"(?<=\\[pP]\{)Is(?=\w+\})", "In", @"\p{Is}").Execute (); }
+               [Test]
+               public void ReplaceTest_087 () { new testcase (@"\p{Isa", @"(?<=\\[pP]\{)Is(?=\w+\})", "In", @"\p{Isa").Execute (); }
+               [Test]
+               public void ReplaceTest_088 () { new testcase (@"a\3b", @"\\(\d+)", @"\5", @"a\5b").Execute (); }
+               [Test]
+               public void ReplaceTest_089 () { new testcase (@"\3b", @"\\(\d+)", @"\5", @"\5b").Execute (); }
+               [Test]
+               public void ReplaceTest_090 () { new testcase (@"\\3b", @"(?<=\\)\\(\d)", @"\5", @"\\5b").Execute (); }
+               [Test]
+               public void ReplaceTest_091 () { new testcase (@"\\\3b", @"(?<=\\\\)\\(\d)", @"\5", @"\\\5b").Execute (); }
+               [Test]
+               public void ReplaceTest_092 () { new testcase (@"a\\\\3b", @"(?<=(\\){0,5})\\(\d)", @"\5", @"a\\\\5b").Execute (); }
+               [Test]
+               public void ReplaceTest_093 () { new testcase (@"\\\k<g>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k<(\w)>", @"\5", @"\\\5").Execute (); }
+               [Test]
+               public void ReplaceTest_094 () { new testcase (@"a\\\k<g>", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k<(\w)>", @"\5", @"a\\\5").Execute (); }
+               [Test]
+               public void ReplaceTest_095 () { new testcase (@"\\\\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w)'", @"\5", @"\\\\k'g'").Execute (); }
+               [Test]
+               public void ReplaceTest_096 () { new testcase (@"a\\\\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w)'", @"\5", @"a\\\\k'g'").Execute (); }
+               [Test]
+               public void ReplaceTest_097 () { new testcase (@"\k'g'", @"(?<=(?:\A|[^\\])(?:[\\]{2}){0,1073741823})\\k'(\w)'", @"\5", @"\5").Execute (); }
+               [Test]
+               public void ReplaceTest_098 () { new testcase (@"\\(?<={1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"\5", @"\5").Execute (); }
+               [Test]
+               public void ReplaceTest_099 () { new testcase (@"{1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"r").Execute (); }
+               [Test]
+               public void ReplaceTest_100 () { new testcase (@"({1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"r").Execute (); }
+               [Test]
+               public void ReplaceTest_101 () { new testcase (@"(?{1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"(?{1}").Execute (); }
+               [Test]
+               public void ReplaceTest_102 () { new testcase (@"(?:{1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"r").Execute (); }
+               [Test] 
+               public void ReplaceTest_103 () { new testcase (@"\({1}", @"(\A|((\A|[^\\])([\\]{2})*\((\?([:>=!]|<([=!]|(\w+>))))?))\{\d+(,(\d+)?)?\}", @"r", @"\({1}").Execute (); }
+       }
 }
index 16e1254687dd69c93ca969de6c564cf147a7129d..1cf18ee74dace4a3f68ec722b79399b6482ea14d 100644 (file)
@@ -5,267 +5,175 @@ using NUnit.Framework;
 
 namespace MonoTests.System.Text.RegularExpressions
 {
-[TestFixture]
-public class RegexResultTests
-{
+       [TestFixture]
+       public class RegexResultTests
+       {
 
-    struct testcase
-    {
-        public string original, pattern, replacement, expected;
-        public testcase (string o, string p, string r, string e) {
-            original = o;
-            pattern = p;
-            replacement = r;
-            expected = e;
-        }
-        public void Execute () {
-            string result;
-            try {
-                Match match = Regex.Match (original, pattern);
-                result = match.Result (replacement);
-            }
-            catch (Exception e) {
-                result = "Error.";
-            }
-            Assert.AreEqual (expected, result, "rr#: {0} ~ s,{1},{2},",
-                             original, pattern, replacement);
+               struct testcase
+               {
+                       public string original, pattern, replacement, expected;
+                       public testcase (string o, string p, string r, string e) {
+                               original = o;
+                               pattern = p;
+                               replacement = r;
+                               expected = e;
+                       }
+                       public void Execute () {
+                               string result;
+                               try {
+                                       Match match = Regex.Match (original, pattern);
+                                       result = match.Result (replacement);
+                               }
+                               catch (Exception e) {
+                                       result = "Error.";
+                               }
+                               Assert.AreEqual (expected, result, "rr#: {0} ~ s,{1},{2},",
+                                       original, pattern, replacement);
 
-        }
-    }
-    static testcase [] tests = {
-        //     original        pattern                 replacement             expected
-        new testcase ("F2345678910L71",        @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11",       "${S}$11$1", "Error."   ),//0
-        new testcase ("F2345678910LL1",        @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11",       "${S}$11$1", "${S}LF"   ),//1
-        new testcase ("texts", "(?<foo>e)(x)",         "${foo}$1$2$&",         "exeex"         ),//2
-        new testcase ("texts", "(?<foo>e)(x)",         "${foo}$1$2$_",         "exetexts"      ),//3
-        new testcase ("texts", "(?<foo>e)(x)",         "${foo}$1$2$`",         "exet"  ),//4
-        new testcase ("texts", "(?<foo>e)(x)",         "${foo}$1$2$'",         "exets"         ),//5
-        new testcase ("text",  "x",                    "y",                    "y"             ),//6
-        new testcase ("text",  "x",                    "$",                    "$"             ),//7
-        new testcase ("text",  "x",                    "$1",                   "$1"            ),//8
-        new testcase ("text",  "x",                    "${1}",                 "${1}"  ),//9
-        new testcase ("text",  "x",                    "$5",                   "$5"            ),//10
-        new testcase ("te(x)t",        "x",                    "$5",                   "$5"    ),//11
-        new testcase ("text",  "x",                    "${5",                  "${5"   ),//12
-        new testcase ("text",  "x",                    "${foo",                "${foo" ),//13
-        new testcase ("text",  "(x)",                  "$5",                   "$5"            ),//14
-        new testcase ("text",  "(x)",                  "$1",                   "x"             ),//15
-        new testcase ("text",  "e(x)",                 "$1",                   "x"             ),//16
-        new testcase ("text",  "e(x)",                 "$5",                   "$5"            ),//17
-        new testcase ("text",  "e(x)",                 "$4",                   "$4"            ),//18
-        new testcase ("text",  "e(x)",                 "$3",                   "$3"            ),//19
-        new testcase ("text",  "e(x)",                 "${1}",                 "x"             ),//20
-        new testcase ("text",  "e(x)",                 "${3}",                 "${3}"  ),//21
-        new testcase ("text",  "e(x)",                 "${1}${3}",             "x${3}" ),//22
-        new testcase ("text",  "e(x)",                 "${1}${name}",          "x${name}"      ),//23
-        new testcase ("text",  "e(?<foo>x)",           "${1}${name}",          "x${name}"      ),//24
-        new testcase ("text",  "e(?<foo>x)",           "${1}${foo}",           "xx"            ),//25
-        new testcase ("text",  "e(?<foo>x)",           "${goll}${foo}",        "${goll}x"      ),//26
-        new testcase ("text",  "e(?<foo>x)",           "${goll${foo}",         "${gollx"       ),//27
-        new testcase ("text",  "e(?<foo>x)",           "${goll${foo}}",        "${gollx}"      ),//28
-        new testcase ("text",  "e(?<foo>x)",           "$${foo}}",             "${foo}}"       ),//29
-        new testcase ("text",  "e(?<foo>x)",           "${${foo}}",            "${x}"  ),//30
-        new testcase ("text",  "e(?<foo>x)",           "$${foo}}",             "${foo}}"       ),//31
-        new testcase ("text",  "e(?<foo>x)",           "$${bfoo}}",            "${bfoo}}"      ),//32
-        new testcase ("text",  "e(?<foo>x)",           "$${foo}}",             "${foo}}"       ),//33
-        new testcase ("text",  "e(?<foo>x)",           "$${foo}",              "${foo}"        ),//34
-        new testcase ("text",  "e(?<foo>x)",           "$$",                   "$"             ),//35
-        new testcase ("text",  "(?<foo>e)(?<foo>x)",   "${foo}$1$2",           "xx$2"  ),//36
-        new testcase ("text",  "(e)(?<foo>x)",         "${foo}$1$2",           "xex"   ),//37
-        new testcase ("text",  "(?<foo>e)(x)",         "${foo}$1$2",           "exe"   ),//38
-        new testcase ("text",  "(e)(?<foo>x)",         "${foo}$1$2$+",         "xexx"  ),//39
-        new testcase ("text",  "(?<foo>e)(x)",         "${foo}$1$2$+",         "exee"  ),//40
-        new testcase ("314 1592 65358",                @"\d\d\d\d|\d\d\d", "a",        "a"     ),//41
-        new testcase ("2 314 1592 65358",      @"\d\d\d\d|\d\d\d", "a",        "a"     ),//42
-        new testcase ("<i>am not</i>",                 "<(.+?)>",      "[$0:$1]",      "[<i>:i]"),//43
-        new testcase ("F2345678910L71",        @"(F)(2)(3)(4)(5)(6)(?<S>7)(8)(9)(10)(L)\11",   "${S}$11$1", "77F"      ),//44
-        new testcase ("a", "a", @"\\", @"\\"), // bug #317092 //45
-    };
+                       }
+               }
+               static testcase [] tests = {
+                       //      original        pattern                 replacement             expected
+                       new testcase ("F2345678910L71", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11",       "${S}$11$1", "Error."   ),//0
+                       new testcase ("F2345678910LL1", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11",       "${S}$11$1", "${S}LF"   ),//1
+                       new testcase ("texts",  "(?<foo>e)(x)",         "${foo}$1$2$&",         "exeex"         ),//2
+                       new testcase ("texts",  "(?<foo>e)(x)",         "${foo}$1$2$_",         "exetexts"      ),//3
+                       new testcase ("texts",  "(?<foo>e)(x)",         "${foo}$1$2$`",         "exet"  ),//4
+                       new testcase ("texts",  "(?<foo>e)(x)",         "${foo}$1$2$'",         "exets"         ),//5
+                       new testcase ("text",   "x",                    "y",                    "y"             ),//6
+                       new testcase ("text",   "x",                    "$",                    "$"             ),//7
+                       new testcase ("text",   "x",                    "$1",                   "$1"            ),//8
+                       new testcase ("text",   "x",                    "${1}",                 "${1}"  ),//9
+                       new testcase ("text",   "x",                    "$5",                   "$5"            ),//10
+                       new testcase ("te(x)t", "x",                    "$5",                   "$5"    ),//11
+                       new testcase ("text",   "x",                    "${5",                  "${5"   ),//12
+                       new testcase ("text",   "x",                    "${foo",                "${foo" ),//13
+                       new testcase ("text",   "(x)",                  "$5",                   "$5"            ),//14
+                       new testcase ("text",   "(x)",                  "$1",                   "x"             ),//15
+                       new testcase ("text",   "e(x)",                 "$1",                   "x"             ),//16
+                       new testcase ("text",   "e(x)",                 "$5",                   "$5"            ),//17
+                       new testcase ("text",   "e(x)",                 "$4",                   "$4"            ),//18
+                       new testcase ("text",   "e(x)",                 "$3",                   "$3"            ),//19
+                       new testcase ("text",   "e(x)",                 "${1}",                 "x"             ),//20
+                       new testcase ("text",   "e(x)",                 "${3}",                 "${3}"  ),//21
+                       new testcase ("text",   "e(x)",                 "${1}${3}",             "x${3}" ),//22
+                       new testcase ("text",   "e(x)",                 "${1}${name}",          "x${name}"      ),//23
+                       new testcase ("text",   "e(?<foo>x)",           "${1}${name}",          "x${name}"      ),//24
+                       new testcase ("text",   "e(?<foo>x)",           "${1}${foo}",           "xx"            ),//25
+                       new testcase ("text",   "e(?<foo>x)",           "${goll}${foo}",        "${goll}x"      ),//26
+                       new testcase ("text",   "e(?<foo>x)",           "${goll${foo}",         "${gollx"       ),//27
+                       new testcase ("text",   "e(?<foo>x)",           "${goll${foo}}",        "${gollx}"      ),//28
+                       new testcase ("text",   "e(?<foo>x)",           "$${foo}}",             "${foo}}"       ),//29
+                       new testcase ("text",   "e(?<foo>x)",           "${${foo}}",            "${x}"  ),//30
+                       new testcase ("text",   "e(?<foo>x)",           "$${foo}}",             "${foo}}"       ),//31
+                       new testcase ("text",   "e(?<foo>x)",           "$${bfoo}}",            "${bfoo}}"      ),//32
+                       new testcase ("text",   "e(?<foo>x)",           "$${foo}}",             "${foo}}"       ),//33
+                       new testcase ("text",   "e(?<foo>x)",           "$${foo}",              "${foo}"        ),//34
+                       new testcase ("text",   "e(?<foo>x)",           "$$",                   "$"             ),//35
+                       new testcase ("text",   "(?<foo>e)(?<foo>x)",   "${foo}$1$2",           "xx$2"  ),//36
+                       new testcase ("text",   "(e)(?<foo>x)",         "${foo}$1$2",           "xex"   ),//37
+                       new testcase ("text",   "(?<foo>e)(x)",         "${foo}$1$2",           "exe"   ),//38
+                       new testcase ("text",   "(e)(?<foo>x)",         "${foo}$1$2$+",         "xexx"  ),//39
+                       new testcase ("text",   "(?<foo>e)(x)",         "${foo}$1$2$+",         "exee"  ),//40
+                       new testcase ("314 1592 65358",         @"\d\d\d\d|\d\d\d", "a",        "a"     ),//41
+                       new testcase ("2 314 1592 65358",       @"\d\d\d\d|\d\d\d", "a",        "a"     ),//42
+                       new testcase ("<i>am not</i>",          "<(.+?)>",      "[$0:$1]",      "[<i>:i]"),//43
+                       new testcase ("F2345678910L71", @"(F)(2)(3)(4)(5)(6)(?<S>7)(8)(9)(10)(L)\11",   "${S}$11$1", "77F"      ),//44
+                       new testcase ("a", "a", @"\\", @"\\"), // bug #317092 //45
+               };
 
-    [Test]
-    public void ResultTest_000 () {
-        tests [0].Execute ();
-    }
-    [Test]
-    public void ResultTest_001 () {
-        tests [1].Execute ();
-    }
-    [Test]
-    public void ResultTest_002 () {
-        tests [2].Execute ();
-    }
-    [Test]
-    public void ResultTest_003 () {
-        tests [3].Execute ();
-    }
-    [Test]
-    public void ResultTest_004 () {
-        tests [4].Execute ();
-    }
-    [Test]
-    public void ResultTest_005 () {
-        tests [5].Execute ();
-    }
-    [Test]
-    public void ResultTest_006 () {
-        tests [6].Execute ();
-    }
-    [Test]
-    public void ResultTest_007 () {
-        tests [7].Execute ();
-    }
-    [Test]
-    public void ResultTest_008 () {
-        tests [8].Execute ();
-    }
-    [Test]
-    public void ResultTest_009 () {
-        tests [9].Execute ();
-    }
-    [Test]
-    public void ResultTest_010 () {
-        tests [10].Execute ();
-    }
-    [Test]
-    public void ResultTest_011 () {
-        tests [11].Execute ();
-    }
-    [Test]
-    public void ResultTest_012 () {
-        tests [12].Execute ();
-    }
-    [Test]
-    public void ResultTest_013 () {
-        tests [13].Execute ();
-    }
-    [Test]
-    public void ResultTest_014 () {
-        tests [14].Execute ();
-    }
-    [Test]
-    public void ResultTest_015 () {
-        tests [15].Execute ();
-    }
-    [Test]
-    public void ResultTest_016 () {
-        tests [16].Execute ();
-    }
-    [Test]
-    public void ResultTest_017 () {
-        tests [17].Execute ();
-    }
-    [Test]
-    public void ResultTest_018 () {
-        tests [18].Execute ();
-    }
-    [Test]
-    public void ResultTest_019 () {
-        tests [19].Execute ();
-    }
-    [Test]
-    public void ResultTest_020 () {
-        tests [20].Execute ();
-    }
-    [Test]
-    public void ResultTest_021 () {
-        tests [21].Execute ();
-    }
-    [Test]
-    public void ResultTest_022 () {
-        tests [22].Execute ();
-    }
-    [Test]
-    public void ResultTest_023 () {
-        tests [23].Execute ();
-    }
-    [Test]
-    public void ResultTest_024 () {
-        tests [24].Execute ();
-    }
-    [Test]
-    public void ResultTest_025 () {
-        tests [25].Execute ();
-    }
-    [Test]
-    public void ResultTest_026 () {
-        tests [26].Execute ();
-    }
-    [Test]
-    public void ResultTest_027 () {
-        tests [27].Execute ();
-    }
-    [Test]
-    public void ResultTest_028 () {
-        tests [28].Execute ();
-    }
-    [Test]
-    public void ResultTest_029 () {
-        tests [29].Execute ();
-    }
-    [Test]
-    public void ResultTest_030 () {
-        tests [30].Execute ();
-    }
-    [Test]
-    public void ResultTest_031 () {
-        tests [31].Execute ();
-    }
-    [Test]
-    public void ResultTest_032 () {
-        tests [32].Execute ();
-    }
-    [Test]
-    public void ResultTest_033 () {
-        tests [33].Execute ();
-    }
-    [Test]
-    public void ResultTest_034 () {
-        tests [34].Execute ();
-    }
-    [Test]
-    public void ResultTest_035 () {
-        tests [35].Execute ();
-    }
-    [Test]
-    public void ResultTest_036 () {
-        tests [36].Execute ();
-    }
-    [Test]
-    public void ResultTest_037 () {
-        tests [37].Execute ();
-    }
-    [Test]
-    public void ResultTest_038 () {
-        tests [38].Execute ();
-    }
-    [Test]
-    public void ResultTest_039 () {
-        tests [39].Execute ();
-    }
-    [Test]
-    public void ResultTest_040 () {
-        tests [40].Execute ();
-    }
-    [Test]
-    public void ResultTest_041 () {
-        tests [41].Execute ();
-    }
-    [Test]
-    public void ResultTest_042 () {
-        tests [42].Execute ();
-    }
-    [Test]
-    public void ResultTest_043 () {
-        tests [43].Execute ();
-    }
-    [Test]
-    [Category("NotWorking")]
-    public void ResultTest_044 () {
-        tests [44].Execute ();
-    }
-    [Test]
-    public void ResultTest_045 () {
-        tests [45].Execute ();
-    }
-}
+               [Test]
+               public void ResultTest_000 () { tests [0].Execute (); }
+               [Test]
+               public void ResultTest_001 () { tests [1].Execute (); }
+               [Test]
+               public void ResultTest_002 () { tests [2].Execute (); }
+               [Test]
+               public void ResultTest_003 () { tests [3].Execute (); }
+               [Test]
+               public void ResultTest_004 () { tests [4].Execute (); }
+               [Test]
+               public void ResultTest_005 () { tests [5].Execute (); }
+               [Test]
+               public void ResultTest_006 () { tests [6].Execute (); }
+               [Test]
+               public void ResultTest_007 () { tests [7].Execute (); }
+               [Test]
+               public void ResultTest_008 () { tests [8].Execute (); }
+               [Test]
+               public void ResultTest_009 () { tests [9].Execute (); }
+               [Test]
+               public void ResultTest_010 () { tests [10].Execute (); }
+               [Test]
+               public void ResultTest_011 () { tests [11].Execute (); }
+               [Test]
+               public void ResultTest_012 () { tests [12].Execute (); }
+               [Test]
+               public void ResultTest_013 () { tests [13].Execute (); }
+               [Test]
+               public void ResultTest_014 () { tests [14].Execute (); }
+               [Test]
+               public void ResultTest_015 () { tests [15].Execute (); }
+               [Test]
+               public void ResultTest_016 () { tests [16].Execute (); }
+               [Test]
+               public void ResultTest_017 () { tests [17].Execute (); }
+               [Test]
+               public void ResultTest_018 () { tests [18].Execute (); }
+               [Test]
+               public void ResultTest_019 () { tests [19].Execute (); }
+               [Test]
+               public void ResultTest_020 () { tests [20].Execute (); }
+               [Test]
+               public void ResultTest_021 () { tests [21].Execute (); }
+               [Test]
+               public void ResultTest_022 () { tests [22].Execute (); }
+               [Test]
+               public void ResultTest_023 () { tests [23].Execute (); }
+               [Test]
+               public void ResultTest_024 () { tests [24].Execute (); }
+               [Test]
+               public void ResultTest_025 () { tests [25].Execute (); }
+               [Test]
+               public void ResultTest_026 () { tests [26].Execute (); }
+               [Test]
+               public void ResultTest_027 () { tests [27].Execute (); }
+               [Test]
+               public void ResultTest_028 () { tests [28].Execute (); }
+               [Test]
+               public void ResultTest_029 () { tests [29].Execute (); }
+               [Test]
+               public void ResultTest_030 () { tests [30].Execute (); }
+               [Test]
+               public void ResultTest_031 () { tests [31].Execute (); }
+               [Test]
+               public void ResultTest_032 () { tests [32].Execute (); }
+               [Test]
+               public void ResultTest_033 () { tests [33].Execute (); }
+               [Test]
+               public void ResultTest_034 () { tests [34].Execute (); }
+               [Test]
+               public void ResultTest_035 () { tests [35].Execute (); }
+               [Test]
+               public void ResultTest_036 () { tests [36].Execute (); }
+               [Test]
+               public void ResultTest_037 () { tests [37].Execute (); }
+               [Test]
+               public void ResultTest_038 () { tests [38].Execute (); }
+               [Test]
+               public void ResultTest_039 () { tests [39].Execute (); }
+               [Test]
+               public void ResultTest_040 () { tests [40].Execute (); }
+               [Test]
+               public void ResultTest_041 () { tests [41].Execute (); }
+               [Test]
+               public void ResultTest_042 () { tests [42].Execute (); }
+               [Test]
+               public void ResultTest_043 () { tests [43].Execute (); }
+               [Test]
+               [Category("NotWorking")]
+               public void ResultTest_044 () { tests [44].Execute (); }
+               [Test]
+               public void ResultTest_045 () { tests [45].Execute (); }
+       }
 }
index c1672993e1b4d85998dcbf16e5cff19c95b12243..2240ad1341459cee75f8489a454e3d4174ae8334 100644 (file)
@@ -1,5 +1,5 @@
 //
-// RegexRunnerCas.cs
+// RegexRunnerCas.cs 
 //     - CAS unit tests for System.Text.RegularExpressions.RegexRunner
 //
 // Author:
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -37,113 +37,113 @@ using System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-class TestRegexRunner : RegexRunner {
+       class TestRegexRunner : RegexRunner {
 
-    public TestRegexRunner ()
-    {
-    }
+               public TestRegexRunner ()
+               {
+               }
 
-    protected override bool FindFirstChar ()
-    {
-        return false;
-    }
+               protected override bool FindFirstChar ()
+               {
+                       return false;
+               }
 
-    protected override void Go ()
-    {
-    }
+               protected override void Go ()
+               {
+               }
 
-    protected override void InitTrackCount ()
-    {
-    }
+               protected override void InitTrackCount ()
+               {
+               }
 
-    // easier to test from inside
-    public void Test ()
-    {
-        // abstract (and protected) stuff
-        Assert.IsFalse (this.FindFirstChar (), "FindFirstChar");
-        Go ();
-        InitTrackCount ();
+               // easier to test from inside
+               public void Test ()
+               {
+                       // abstract (and protected) stuff
+                       Assert.IsFalse (this.FindFirstChar (), "FindFirstChar");
+                       Go ();
+                       InitTrackCount ();
 
-        // protected stuff
-        Assert.IsNull (runcrawl, "runcrawl");
-        runcrawl = new int[3] { 0, 0, 0 };
-        Assert.AreEqual (0, runcrawlpos, "runcrawlpos");
-        runcrawlpos = 1;
-        Assert.IsNull (runmatch, "runmatch");
-        runmatch = Match.Empty;
-        Assert.IsNull (runregex, "runregex");
-        runregex = new Regex (String.Empty);
-        Assert.IsNull (runstack, "runstack");
-        runstack = new int[3] { 0, 0, 0 };
-        Assert.AreEqual (0, runstackpos, "runstackpos");
-        runstackpos = 1;
-        Assert.IsNull (runtext, "runtext");
-        runtext = "mono";
-        Assert.AreEqual (0, runtextbeg, "runtextbeg");
-        runtextbeg = 1;
-        Assert.AreEqual (0, runtextend, "runtextend");
-        runtextend = 1;
-        Assert.AreEqual (0, runtextpos, "runtextpos");
-        runtextpos = 1;
-        Assert.AreEqual (0, runtextstart, "runtextstart");
-        runtextstart = 1;
-        Assert.IsNull (runtrack, "runtrack");
-        runtrack = new int[3] { 0, 0, 0 };
-        Assert.AreEqual (0, runtrackcount, "runtrackcount");
-        runtrackcount = 1;
-        Assert.AreEqual (0, runtrackpos, "runtrackpos");
-        runtrackpos = 1;
+                       // protected stuff
+                       Assert.IsNull (runcrawl, "runcrawl");
+                       runcrawl = new int[3] { 0, 0, 0 };
+                       Assert.AreEqual (0, runcrawlpos, "runcrawlpos");
+                       runcrawlpos = 1;
+                       Assert.IsNull (runmatch, "runmatch");
+                       runmatch = Match.Empty;
+                       Assert.IsNull (runregex, "runregex");
+                       runregex = new Regex (String.Empty);
+                       Assert.IsNull (runstack, "runstack");
+                       runstack = new int[3] { 0, 0, 0 };
+                       Assert.AreEqual (0, runstackpos, "runstackpos");
+                       runstackpos = 1;
+                       Assert.IsNull (runtext, "runtext");
+                       runtext = "mono";
+                       Assert.AreEqual (0, runtextbeg, "runtextbeg");
+                       runtextbeg = 1;
+                       Assert.AreEqual (0, runtextend, "runtextend");
+                       runtextend = 1;
+                       Assert.AreEqual (0, runtextpos, "runtextpos");
+                       runtextpos = 1;
+                       Assert.AreEqual (0, runtextstart, "runtextstart");
+                       runtextstart = 1;
+                       Assert.IsNull (runtrack, "runtrack");
+                       runtrack = new int[3] { 0, 0, 0 };
+                       Assert.AreEqual (0, runtrackcount, "runtrackcount");
+                       runtrackcount = 1;
+                       Assert.AreEqual (0, runtrackpos, "runtrackpos");
+                       runtrackpos = 1;
 
-        Capture (0, 0, 0);
-        Assert.IsTrue (CharInSet ('a', "a", ""), "CharInSet");
-        Crawl (1);
-        Assert.AreEqual (4, Crawlpos (), "Crawlpos");
-        DoubleCrawl ();
-        DoubleStack ();
-        DoubleTrack ();
-        EnsureStorage ();
-        Assert.IsFalse (IsBoundary (0, 0, 0), "IsBoundary");
-        Assert.IsFalse (IsECMABoundary (0, 0, 0), "IsECMABoundary");
-        Assert.IsTrue (IsMatched (0), "IsMatched");
-        Assert.AreEqual (0, MatchIndex (0), "MatchIndex");
-        Assert.AreEqual (0, MatchLength (0), "MatchLength");
-        Assert.AreEqual (1, Popcrawl (), "Popcrawl");
-        TransferCapture (0, 0, 0, 0);
-        Uncapture ();
-        Assert.IsNotNull (Scan (new Regex (String.Empty), "mono", 0, 0, 0, 0, true), "Scan");
+                       Capture (0, 0, 0);
+                       Assert.IsTrue (CharInSet ('a', "a", ""), "CharInSet");
+                       Crawl (1);
+                       Assert.AreEqual (4, Crawlpos (), "Crawlpos");
+                       DoubleCrawl ();
+                       DoubleStack ();
+                       DoubleTrack ();
+                       EnsureStorage ();
+                       Assert.IsFalse (IsBoundary (0, 0, 0), "IsBoundary");
+                       Assert.IsFalse (IsECMABoundary (0, 0, 0), "IsECMABoundary");
+                       Assert.IsTrue (IsMatched (0), "IsMatched");
+                       Assert.AreEqual (0, MatchIndex (0), "MatchIndex");
+                       Assert.AreEqual (0, MatchLength (0), "MatchLength");
+                       Assert.AreEqual (1, Popcrawl (), "Popcrawl");
+                       TransferCapture (0, 0, 0, 0);
+                       Uncapture ();
+                       Assert.IsNotNull (Scan (new Regex (String.Empty), "mono", 0, 0, 0, 0, true), "Scan");
 #if NET_2_0
-        Assert.IsTrue (CharInSet ('a', "a", String.Empty), "CharInSet");
+                       Assert.IsTrue (CharInSet ('a', "a", String.Empty), "CharInSet");
 #endif
-    }
-}
+               }
+       }
 
-[TestFixture]
-[Category ("CAS")]
-public class RegexRunnerCas {
+       [TestFixture]
+       [Category ("CAS")]
+       public class RegexRunnerCas {
 
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    [Category ("NotWorking")]
-    public void Deny_Unrestricted ()
-    {
-        TestRegexRunner runner = new TestRegexRunner ();
-        runner.Test ();
-    }
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               [Category ("NotWorking")]
+               public void Deny_Unrestricted ()
+               {
+                       TestRegexRunner runner = new TestRegexRunner ();
+                       runner.Test ();
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        ConstructorInfo ci = typeof (TestRegexRunner).GetConstructor (new Type[0]);
-        Assert.IsNotNull (ci, "default .ctor");
-        Assert.IsNotNull (ci.Invoke (null), "invoke");
-    }
-}
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       ConstructorInfo ci = typeof (TestRegexRunner).GetConstructor (new Type[0]);
+                       Assert.IsNotNull (ci, "default .ctor");
+                       Assert.IsNotNull (ci.Invoke (null), "invoke");
+               }
+       }
 }
index a01629cab9171a9ae0fa28dd71c7cf3c2d98e48f..59c0e37aa1603cd93d92b0eba056df60fb1d480c 100644 (file)
@@ -1,5 +1,5 @@
 //
-// RegexRunnerFactoryCas.cs
+// RegexRunnerFactoryCas.cs 
 //     - CAS unit tests for System.Text.RegularExpressions.RegexRunnerFactory
 //
 // Author:
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -37,49 +37,49 @@ using System.Text.RegularExpressions;
 
 namespace MonoCasTests.System.Text.RegularExpressions {
 
-class TestRegexRunnerFactory: RegexRunnerFactory {
+       class TestRegexRunnerFactory: RegexRunnerFactory {
 
-    public TestRegexRunnerFactory ()
-    {
-    }
+               public TestRegexRunnerFactory ()
+               {
+               }
 
-    protected override RegexRunner CreateInstance ()
-    {
-        return null;
-    }
+               protected override RegexRunner CreateInstance ()
+               {
+                       return null;
+               }
 
-    public RegexRunner Create ()
-    {
-        return CreateInstance ();
-    }
-}
+               public RegexRunner Create ()
+               {
+                       return CreateInstance ();
+               }
+       }
 
-[TestFixture]
-[Category ("CAS")]
-public class RegexRunnerFactoryCas {
+       [TestFixture]
+       [Category ("CAS")]
+       public class RegexRunnerFactoryCas {
 
-    [SetUp]
-    public void SetUp ()
-    {
-        if (!SecurityManager.SecurityEnabled)
-            Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
-    }
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void Deny_Unrestricted ()
-    {
-        TestRegexRunnerFactory factory = new TestRegexRunnerFactory ();
-        Assert.IsNull (factory.Create (), "CreateInstance");
-    }
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Deny_Unrestricted ()
+               {
+                       TestRegexRunnerFactory factory = new TestRegexRunnerFactory ();
+                       Assert.IsNull (factory.Create (), "CreateInstance");
+               }
 
-    [Test]
-    [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
-    public void LinkDemand_Deny_Unrestricted ()
-    {
-        ConstructorInfo ci = typeof (TestRegexRunnerFactory).GetConstructor (new Type[0]);
-        Assert.IsNotNull (ci, "default .ctor");
-        Assert.IsNotNull (ci.Invoke (null), "invoke");
-    }
-}
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       ConstructorInfo ci = typeof (TestRegexRunnerFactory).GetConstructor (new Type[0]);
+                       Assert.IsNotNull (ci, "default .ctor");
+                       Assert.IsNotNull (ci.Invoke (null), "invoke");
+               }
+       }
 }
index 30f715b3fa64f3209c360eb840e71a4e05ee5df9..4f077e47bc57e1b1c5019042b7d44b3d678d1bea 100644 (file)
@@ -3,7 +3,7 @@
 // namespace:  MonoTests.System.Text.RegularExpressions
 // file:       RegexTest.cs
 //
-// Authors:
+// Authors:    
 //   Juraj Skripsky (juraj@hotfeet.ch)
 //
 // (c) 2003 Juraj Skripsky
@@ -20,498 +20,490 @@ using NUnit.Framework;
 namespace MonoTests.System.Text.RegularExpressions
 {
 
-[TestFixture]
-public class CompiledRegexTest :  RegexTest
-{
-    [SetUp]
-    public void SetUp ()
-    {
-        Compiled = true;
-    }
-}
-
-[TestFixture]
-public class InterpretedRegexTest :  RegexTest
-{
-    [SetUp]
-    public void SetUp ()
-    {
-        Compiled = false;
-    }
-}
+       [TestFixture]
+       public class CompiledRegexTest :  RegexTest
+       {
+               [SetUp]
+        public void SetUp ()
+               {
+                       Compiled = true;
+               }
+       }
+
+       [TestFixture]
+       public class InterpretedRegexTest :  RegexTest
+       {
+        [SetUp]
+        public void SetUp ()
+        {
+               Compiled = false;
+        }
+       }
 
 
-public class RegexTest
-{
+       public class RegexTest
+       {
 
-    RegexOptions AddOptions ( RegexOptions options ) {
-        if( Compiled ) {
-            options |= RegexOptions.Compiled;
-        }
+       RegexOptions AddOptions ( RegexOptions options ){
+              if( Compiled ){
+                      options |= RegexOptions.Compiled;
+              }
 
-        return options;
-    }
+              return options;
+       }
 
-    protected bool Compiled {
-        get;
-        set;
-    }
+       protected bool Compiled { get; set; }
 
 #if NET_2_0
-    private int cache_initial_value;
-
-    [TestFixtureSetUp]
-    public void FixtureSetUp ()
-    {
-        cache_initial_value = Regex.CacheSize;
-    }
-
-    [TearDown]
-    public void TearDown ()
-    {
-        Regex.CacheSize = cache_initial_value;
-    }
+               private int cache_initial_value;
+
+               [TestFixtureSetUp]
+               public void FixtureSetUp ()
+               {
+                       cache_initial_value = Regex.CacheSize;
+               }
+
+               [TearDown]
+               public void TearDown ()
+               {
+                       Regex.CacheSize = cache_initial_value;
+               }
 #endif
 
-    [Test]
-    public void Simple ()
-    {
-        char[] c = { (char)32, (char)8212, (char)32 };
-        string s = new String(c);
-        Assert.IsTrue (Regex.IsMatch(s, s), "char");
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void NullPattern1 ()
-    {
-        new Regex (null);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void NullPattern2 ()
-    {
-        new Regex (null, AddOptions( RegexOptions.None ));
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void InvalidOptions1 ()
-    {
-        new Regex ("foo", (RegexOptions) Int32.MaxValue);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void InvalidOptions2 ()
-    {
-        new Regex ("foo", AddOptions( RegexOptions.ECMAScript | RegexOptions.RightToLeft ));
-    }
-
-    [Test]
-    public void Unescape ()
-    {
-        string inString = @"\a\b\t\r\v\f\n\e\02400\x231\cC\ufffff\*";
-        char [] c = { (char)7, (char)8, (char)9, (char)13,
-                      (char)11, (char)12, (char)10, (char)27, (char) 20,
-                      (char)48, (char)48, (char)35, (char)49,
-                      (char)3, (char)65535, (char)102, (char)42
-                    };
-        string expectedString = new String(c);
-        string outString = Regex.Unescape(inString);
-
-        Assert.AreEqual (outString, expectedString, "unescape");
-    }
-
-    [Test]
-    public void Match1 ()
-    {
-        Regex email = new Regex ("(?<user>[^@]+)@(?<domain>.+)",
-                                 AddOptions( RegexOptions.None ));
-        Match m;
-
-        m = email.Match ("mono@go-mono.com");
-
-        Assert.IsTrue (m.Success, "#m01");
-        Assert.AreEqual ("mono", m.Groups ["user"].Value, "#m02");
-        Assert.AreEqual ("go-mono.com", m.Groups ["domain"].Value, "#m03");
-
-        m = email.Match ("mono.bugs@go-mono.com");
-        Assert.IsTrue (m.Success, "m04");
-        Assert.AreEqual ("mono.bugs", m.Groups ["user"].Value, "#m05");
-        Assert.AreEqual ("go-mono.com", m.Groups ["domain"].Value, "#m06");
-    }
-
-    [Test]
-    public void Match2 ()
-    {
-        Regex regex = new Regex(@"(?<tab>\t)|(?<text>[^\t]*)",
-                                AddOptions( RegexOptions.None ));
-        MatchCollection col = regex.Matches("\tjust a text");
-        Assert.AreEqual(3, col.Count);
-        Assert.AreEqual (col [0].Value, "\t");
-        Assert.AreEqual (col [1].Value, "just a text");
-        Assert.AreEqual(col[2].Value, string.Empty);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Match_Null1 ()
-    {
-        new Regex (@"foo",AddOptions( RegexOptions.None )).Match (null);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Match_BadStart1 ()
-    {
-        new Regex (@"foo",
-                   AddOptions( RegexOptions.None )).Match ("foobar", -1);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Match_BadStart2 ()
-    {
-        new Regex (@"foo",
-                   AddOptions( RegexOptions.None )).Match ("foobar", -1, 0);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Match_BadStart3 ()
-    {
-        new Regex (@"foo",
-                   AddOptions( RegexOptions.None )).Match ("foobar", 7);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Match_BadStart4 ()
-    {
-        new Regex (@"foo",
-                   AddOptions( RegexOptions.None )).Match ("foobar", 7, 0);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Match_BadLength1 ()
-    {
-        new Regex (@"foo",
-                   AddOptions( RegexOptions.None )).Match ("foobar", 5, -1);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Match_BadLength2 ()
-    {
-        new Regex (@"foo",
-                   AddOptions( RegexOptions.None )).Match ("foobar", 5, 3);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Matches_Null1 ()
-    {
-        new Regex (@"foo",
-                   AddOptions( RegexOptions.None )).Matches (null);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Matches_Null2 ()
-    {
-        new Regex (@"foo",
-                   AddOptions( RegexOptions.None )).Matches (null, 0);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Matches_Null3 ()
-    {
-        new Regex (@"foo",
-                   AddOptions(RegexOptions.RightToLeft)).Matches (null);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Replace_InputNull ()
-    {
-        Regex r = new Regex ("^.*$",
-                             AddOptions( RegexOptions.None ));
-        MatchEvaluator m = delegate (Match match) {
-            return null;
-        };
-        r.Replace (null, m, 0, 0);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Replace_InputNull2 ()
-    {
-        Regex r = new Regex ("^.*$",
-                             AddOptions( RegexOptions.None ));
-        r.Replace (null, "abc", 0, 0);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Replace_InputNull3 ()
-    {
-        Regex r = new Regex ("^.*$",
-                             AddOptions(RegexOptions.RightToLeft));
-        MatchEvaluator m = delegate (Match match) {
-            return null;
-        };
-        r.Replace (null, m);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Replace_InputNull4 ()
-    {
-        Regex r = new Regex ("^.*$",
-                             AddOptions(RegexOptions.RightToLeft));
-        r.Replace (null, "abc");
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Replace_ReplacementNull ()
-    {
-        Regex r = new Regex ("^.*$",
-                             AddOptions( RegexOptions.None ));
-        r.Replace ("string", (string) null, 0, 0);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Replace_EvaluatorNull ()
-    {
-        Regex r = new Regex ("^.*$",
-                             AddOptions( RegexOptions.None ));
-        MatchEvaluator m = null;
-        r.Replace ("string", m, 0, 0);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Replace_InvalidCount ()
-    {
-        Regex r = new Regex ("foo|bar",
-                             AddOptions( RegexOptions.None ));
-        r.Replace ("foo",  "baz", -4);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Replace_InvalidStart ()
-    {
-        Regex r = new Regex ("foo|bar",
-                             AddOptions( RegexOptions.None ));
-        r.Replace ("foo", "baz", 1, -4);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Split_InputNull1 ()
-    {
-        Regex.Split (null, "^.*$");
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Split_InputNull2 ()
-    {
-        Regex.Split (null, "^.*$", RegexOptions.RightToLeft);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Split_InvalidCount ()
-    {
-        Regex r = new Regex ("^.*$",
-                             AddOptions( RegexOptions.None ));
-        r.Split ("foo", -4);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void Split_InvalidCount2 ()
-    {
-        Regex r = new Regex ("^.*$",
-                             AddOptions( RegexOptions.None ));
-        r.Split ("foo", 1, -4);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Escape_Null ()
-    {
-        Regex.Escape (null);
-    }
-
-    [Test, ExpectedException (typeof (ArgumentNullException))]
-    public void Unescape_Null ()
-    {
-        Regex.Unescape (null);
-    }
-
-    static string story =
-        "Two little dragons lived in the forest\n" +
-        "They spent their days collecting honey suckle,\n" +
-        "And eating curds and whey\n" +
-        "Until an evil sorcer came along\n" +
-        "And chased my dragon friends away";
-
-    struct MatchCollectionTrial {
-        public readonly string name;
-        public readonly string text;
-        public readonly string regex;
-        public readonly string [] matches;
-        public MatchCollectionTrial (string name, string text, string regex, string [] matches)
-        {
-            this.name = name;
-            this.text = text;
-            this.regex = regex;
-            this.matches = matches;
-        }
-    }
-
-    static readonly MatchCollectionTrial [] trials = {
-        new MatchCollectionTrial ("word", "the fat cat ate the rat", "(?<word>\\w+)",
-        new string [] { "the", "fat", "cat", "ate", "the", "rat" }),
-        new MatchCollectionTrial ("digit", "0 1 2 3 4 5 6a7b8c9d10", "(?<digit>\\d+)",
-        new string [] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }),
-        new MatchCollectionTrial ("line", story, "(?<line>.+)",
-        new string [] { "Two little dragons lived in the forest",
-            "They spent their days collecting honey suckle,",
-            "And eating curds and whey",
-            "Until an evil sorcer came along",
-            "And chased my dragon friends away"
-        }),
-        new MatchCollectionTrial ("nonwhite", "ab 12 cde 456 fghi .,\niou", "(?<nonwhite>\\S+)",
-        new string [] { "ab", "12", "cde", "456", "fghi", ".,", "iou" }),
-        new MatchCollectionTrial ("nondigit", "ab0cd1ef2", "(?<nondigit>\\D+)",
-        new string [] { "ab", "cd", "ef" })
-    };
-
-    static void runTrial (MatchCollectionTrial t, bool compiled)
-    {
-        runTrial (t, false, compiled);
-        runTrial (t, true, compiled);
-    }
-
-    static void runTrial (MatchCollectionTrial t, bool rtl, bool compiled)
-    {
-        int i;
-        MatchCollection mc;
-
-        string name = t.name;
-        if (rtl)
-            name += "-rtl";
-
-        int len = t.matches.Length;
-        RegexOptions options = rtl ? RegexOptions.RightToLeft : RegexOptions.None;
-        if( compiled )
-            options |= RegexOptions.Compiled;
-
-        Regex r = new Regex (t.regex,options);
-
-        // Incremental mode -- this access
-        mc = r.Matches (t.text);
-        for (i = 0; i < len; ++i)
-            Assert.AreEqual (mc [i].Value, t.matches [rtl ? len - i - 1 : i], "{0}:this:{1}", name, i);
-        Assert.AreEqual (i, mc.Count, "{0}:this:count", name);
-
-        // Incremental mode -- enumerator
-        mc = r.Matches (t.text);
-        i = 0;
-        foreach (Match m in mc) {
-            Assert.AreEqual (m.Value, t.matches [rtl ? len - i - 1 : i], "{0}:enum:{1}", name, i);
-            ++i;
-        }
-        Assert.AreEqual (i, len, "{0}:enum:count", name);
-
-        // random mode
-        Random rng = new Random ();
-        for (int j = 0; j < len * 5; ++j) {
-            i = rng.Next (len);
-            Assert.AreEqual (mc [i].Value, t.matches [rtl ? len - i - 1 : i], "{0}:random{1}:{2}", name, j, i);
-        }
-
-        // Non-incremental mode
-        mc = r.Matches (t.text);
-        Assert.AreEqual (mc.Count, len);
-        i = 0;
-        foreach (Match m in mc) {
-            Assert.AreEqual (m.Value, t.matches [rtl ? len - i - 1 : i], "{0}:nienum:{1}", name, i);
-            ++i;
-        }
-        for (i = 0; i < len; ++i)
-            Assert.AreEqual (mc [i].Value, t.matches [rtl ? len - i - 1 : i], "{0}:nithis:{1}", name, i);
-    }
-
-    [Test]
-    public void Matches ()
-    {
-        foreach (MatchCollectionTrial t in trials)
-            runTrial (t,Compiled);
-    }
+               [Test]
+               public void Simple ()
+               {
+                       char[] c = { (char)32, (char)8212, (char)32 };
+                       string s = new String(c);
+                       Assert.IsTrue (Regex.IsMatch(s, s), "char");
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void NullPattern1 ()
+               {
+                       new Regex (null);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void NullPattern2 ()
+               {
+                       new Regex (null, AddOptions( RegexOptions.None ));
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void InvalidOptions1 ()
+               {
+                       new Regex ("foo", (RegexOptions) Int32.MaxValue);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void InvalidOptions2 ()
+               {
+                       new Regex ("foo", AddOptions( RegexOptions.ECMAScript | RegexOptions.RightToLeft ));
+               }
+               
+               [Test]
+               public void Unescape ()
+               {
+                       string inString = @"\a\b\t\r\v\f\n\e\02400\x231\cC\ufffff\*";
+                       char [] c = { (char)7, (char)8, (char)9, (char)13, 
+                                     (char)11, (char)12, (char)10, (char)27, (char) 20,
+                                     (char)48, (char)48, (char)35, (char)49, 
+                                     (char)3, (char)65535, (char)102, (char)42
+                       };
+                       string expectedString = new String(c);
+                       string outString = Regex.Unescape(inString);
+
+                       Assert.AreEqual (outString, expectedString, "unescape");
+               }
+
+               [Test]
+               public void Match1 ()
+               {
+                       Regex email = new Regex ("(?<user>[^@]+)@(?<domain>.+)",
+                                                AddOptions( RegexOptions.None ));
+                       Match m;
+
+                       m = email.Match ("mono@go-mono.com");
+
+                       Assert.IsTrue (m.Success, "#m01");
+                       Assert.AreEqual ("mono", m.Groups ["user"].Value, "#m02");
+                       Assert.AreEqual ("go-mono.com", m.Groups ["domain"].Value, "#m03");
+
+                       m = email.Match ("mono.bugs@go-mono.com");
+                       Assert.IsTrue (m.Success, "m04");
+                       Assert.AreEqual ("mono.bugs", m.Groups ["user"].Value, "#m05");
+                       Assert.AreEqual ("go-mono.com", m.Groups ["domain"].Value, "#m06");
+               }
+
+               [Test]
+               public void Match2 ()
+               {
+                       Regex regex = new Regex(@"(?<tab>\t)|(?<text>[^\t]*)",
+                                               AddOptions( RegexOptions.None ));
+                       MatchCollection col = regex.Matches("\tjust a text");
+                       Assert.AreEqual(3, col.Count);
+                       Assert.AreEqual (col [0].Value, "\t");
+                       Assert.AreEqual (col [1].Value, "just a text");
+                       Assert.AreEqual(col[2].Value, string.Empty);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Match_Null1 ()
+               {
+                       new Regex (@"foo",AddOptions( RegexOptions.None )).Match (null);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Match_BadStart1 ()
+               {
+                       new Regex (@"foo",
+                                  AddOptions( RegexOptions.None )).Match ("foobar", -1);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Match_BadStart2 ()
+               {
+                       new Regex (@"foo",
+                                  AddOptions( RegexOptions.None )).Match ("foobar", -1, 0);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Match_BadStart3 ()
+               {
+                       new Regex (@"foo",
+                                  AddOptions( RegexOptions.None )).Match ("foobar", 7);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Match_BadStart4 ()
+               {
+                       new Regex (@"foo",
+                                  AddOptions( RegexOptions.None )).Match ("foobar", 7, 0);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Match_BadLength1 ()
+               {
+                       new Regex (@"foo",
+                                  AddOptions( RegexOptions.None )).Match ("foobar", 5, -1);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Match_BadLength2 ()
+               {
+                       new Regex (@"foo",
+                                  AddOptions( RegexOptions.None )).Match ("foobar", 5, 3);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Matches_Null1 ()
+               {
+                       new Regex (@"foo",
+                                  AddOptions( RegexOptions.None )).Matches (null);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Matches_Null2 ()
+               {
+                       new Regex (@"foo",
+                                  AddOptions( RegexOptions.None )).Matches (null, 0);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Matches_Null3 ()
+               {
+                       new Regex (@"foo",
+                                  AddOptions(RegexOptions.RightToLeft)).Matches (null);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Replace_InputNull ()
+               {
+                       Regex r = new Regex ("^.*$",
+                                            AddOptions( RegexOptions.None ));
+                       MatchEvaluator m = delegate (Match match) {return null;};
+                       r.Replace (null, m, 0, 0);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Replace_InputNull2 ()
+               {
+                       Regex r = new Regex ("^.*$",
+                                            AddOptions( RegexOptions.None ));
+                       r.Replace (null, "abc", 0, 0);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Replace_InputNull3 ()
+               {
+                       Regex r = new Regex ("^.*$",
+                                            AddOptions(RegexOptions.RightToLeft));
+                       MatchEvaluator m = delegate (Match match) {return null;};
+                       r.Replace (null, m);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Replace_InputNull4 ()
+               {
+                       Regex r = new Regex ("^.*$",
+                                            AddOptions(RegexOptions.RightToLeft));
+                       r.Replace (null, "abc");
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Replace_ReplacementNull ()
+               {
+                       Regex r = new Regex ("^.*$",
+                                            AddOptions( RegexOptions.None ));
+                       r.Replace ("string", (string) null, 0, 0);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Replace_EvaluatorNull ()
+               {
+                       Regex r = new Regex ("^.*$",
+                                            AddOptions( RegexOptions.None ));
+                       MatchEvaluator m = null;
+                       r.Replace ("string", m, 0, 0);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Replace_InvalidCount ()
+               {
+                       Regex r = new Regex ("foo|bar",
+                                            AddOptions( RegexOptions.None ));
+                       r.Replace ("foo",  "baz", -4);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Replace_InvalidStart ()
+               {
+                       Regex r = new Regex ("foo|bar",
+                                            AddOptions( RegexOptions.None ));
+                       r.Replace ("foo", "baz", 1, -4);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Split_InputNull1 ()
+               {
+                       Regex.Split (null, "^.*$");
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Split_InputNull2 ()
+               {
+                       Regex.Split (null, "^.*$", RegexOptions.RightToLeft);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Split_InvalidCount ()
+               {
+                       Regex r = new Regex ("^.*$",
+                                            AddOptions( RegexOptions.None ));
+                       r.Split ("foo", -4);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void Split_InvalidCount2 ()
+               {
+                       Regex r = new Regex ("^.*$",
+                                            AddOptions( RegexOptions.None ));
+                       r.Split ("foo", 1, -4);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Escape_Null ()
+               {
+                       Regex.Escape (null);
+               }
+
+               [Test, ExpectedException (typeof (ArgumentNullException))]
+               public void Unescape_Null ()
+               {
+                       Regex.Unescape (null);
+               }
+
+               static string story =
+                       "Two little dragons lived in the forest\n" +
+                       "They spent their days collecting honey suckle,\n" +
+                       "And eating curds and whey\n" +
+                       "Until an evil sorcer came along\n" +
+                       "And chased my dragon friends away";
+
+               struct MatchCollectionTrial {
+                       public readonly string name;
+                       public readonly string text;
+                       public readonly string regex;
+                       public readonly string [] matches;
+                       public MatchCollectionTrial (string name, string text, string regex, string [] matches)
+                       {
+                               this.name = name;
+                               this.text = text;
+                               this.regex = regex;
+                               this.matches = matches;
+                       }
+               }
+
+               static readonly MatchCollectionTrial [] trials = {
+                       new MatchCollectionTrial ("word", "the fat cat ate the rat", "(?<word>\\w+)", 
+                               new string [] { "the", "fat", "cat", "ate", "the", "rat" }),
+                       new MatchCollectionTrial ("digit", "0 1 2 3 4 5 6a7b8c9d10", "(?<digit>\\d+)", 
+                               new string [] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }),
+                       new MatchCollectionTrial ("line", story, "(?<line>.+)", 
+                               new string [] { "Two little dragons lived in the forest",
+                                               "They spent their days collecting honey suckle,",
+                                               "And eating curds and whey",
+                                               "Until an evil sorcer came along",
+                                               "And chased my dragon friends away" }),
+                       new MatchCollectionTrial ("nonwhite", "ab 12 cde 456 fghi .,\niou", "(?<nonwhite>\\S+)",
+                               new string [] { "ab", "12", "cde", "456", "fghi", ".,", "iou" }),
+                       new MatchCollectionTrial ("nondigit", "ab0cd1ef2", "(?<nondigit>\\D+)",
+                               new string [] { "ab", "cd", "ef" })
+               };
+
+               static void runTrial (MatchCollectionTrial t, bool compiled)
+               {
+                       runTrial (t, false, compiled);
+                       runTrial (t, true, compiled);
+               }
+
+               static void runTrial (MatchCollectionTrial t, bool rtl, bool compiled)
+               {
+                       int i;
+                       MatchCollection mc;
+
+                       string name = t.name;
+                       if (rtl)
+                               name += "-rtl";
+
+                       int len = t.matches.Length;
+                       RegexOptions options = rtl ? RegexOptions.RightToLeft : RegexOptions.None;
+                       if( compiled )
+                               options |= RegexOptions.Compiled;
+
+                       Regex r = new Regex (t.regex,options);
+
+                       // Incremental mode -- this access
+                       mc = r.Matches (t.text);
+                       for (i = 0; i < len; ++i)
+                               Assert.AreEqual (mc [i].Value, t.matches [rtl ? len - i - 1 : i], "{0}:this:{1}", name, i);
+                       Assert.AreEqual (i, mc.Count, "{0}:this:count", name);
+
+                       // Incremental mode -- enumerator
+                       mc = r.Matches (t.text);
+                       i = 0;
+                       foreach (Match m in mc) {
+                               Assert.AreEqual (m.Value, t.matches [rtl ? len - i - 1 : i], "{0}:enum:{1}", name, i);
+                               ++i;
+                       }
+                       Assert.AreEqual (i, len, "{0}:enum:count", name);
+
+                       // random mode
+                       Random rng = new Random ();
+                       for (int j = 0; j < len * 5; ++j) {
+                               i = rng.Next (len);
+                               Assert.AreEqual (mc [i].Value, t.matches [rtl ? len - i - 1 : i], "{0}:random{1}:{2}", name, j, i);
+                       }
+
+                       // Non-incremental mode
+                       mc = r.Matches (t.text);
+                       Assert.AreEqual (mc.Count, len);
+                       i = 0;
+                       foreach (Match m in mc) {
+                               Assert.AreEqual (m.Value, t.matches [rtl ? len - i - 1 : i], "{0}:nienum:{1}", name, i);
+                               ++i;
+                       }
+                       for (i = 0; i < len; ++i)
+                               Assert.AreEqual (mc [i].Value, t.matches [rtl ? len - i - 1 : i], "{0}:nithis:{1}", name, i);
+               }
+
+               [Test]
+               public void Matches ()
+               {
+                       foreach (MatchCollectionTrial t in trials)
+                               runTrial (t,Compiled);
+               }
 #if NET_2_0
-    [Test]
-    public void CacheSize ()
-    {
-        Assert.AreEqual (15, Regex.CacheSize, "CacheSize");
-        Regex.CacheSize = 0;
-        Regex.CacheSize = Int32.MaxValue;
-    }
-
-    [Test]
-    [ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void CacheSize_Negative ()
-    {
-        Regex.CacheSize = -1;
-    }
-
-    [Test]
-    [ExpectedException (typeof (ArgumentOutOfRangeException))]
-    public void CacheSize_Min ()
-    {
-        Regex.CacheSize = Int32.MinValue;
-    }
-
-    static IEnumerable<uint> Primes (uint m)
-    {
-        if (m < 2)
-            yield break;
-
-        yield return 2;
-
-        Dictionary<uint, uint> w = new Dictionary<uint, uint> ();
-        uint p2, n1;
-
-        for (uint n = 3; n < m; n += 2) {
-            if (w.TryGetValue (n, out p2)) {
-                w.Remove (n);
-                n1 = n + p2;
-            } else {
-                yield return n;
-                n1 = n * n;
-                p2 = n + n;
-
-                // if there's an overflow, don't bother
-                if (n1 / n != n || n1 >= m)
-                    continue;
-            }
-
-            while (w.ContainsKey (n1))
-                n1 += p2;
-            w [n1] = p2;
-        }
-    }
-
-    [Test]
-    public void PrimeRegex ()
-    {
-        // Perl regex oneliner by: abigail@fnx.com (Abigail)
-        // from: http://www.mit.edu:8008/bloom-picayune.mit.edu/perl/10138
-        // perl -wle 'print "Prime" if (1 x shift) !~ /^1?$|^(11+?)\1+$/'
-
-        // This is a backtracking torture test
-
-        Regex composite = new Regex (@"^1?$|^(11+?)\1+$",
-                                     AddOptions( RegexOptions.None ));
-
-        uint i = 0;
-        string x = "";
-
-        foreach (uint p in Primes (3333)) {
-            while (i < p) {
-                Assert.IsTrue (composite.IsMatch (x));
-                ++i;
-                x += "1";
-            }
-            // i == p
-            Assert.IsFalse (composite.IsMatch (x));
-            ++i;
-            x += "1";
-        }
-    }
+               [Test]
+               public void CacheSize ()
+               {
+                       Assert.AreEqual (15, Regex.CacheSize, "CacheSize");
+                       Regex.CacheSize = 0;
+                       Regex.CacheSize = Int32.MaxValue;
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void CacheSize_Negative ()
+               {
+                       Regex.CacheSize = -1;
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentOutOfRangeException))]
+               public void CacheSize_Min ()
+               {
+                       Regex.CacheSize = Int32.MinValue;
+               }
+
+               static IEnumerable<uint> Primes (uint m)
+               {
+                       if (m < 2)
+                               yield break;
+
+                       yield return 2;
+
+                       Dictionary<uint, uint> w = new Dictionary<uint, uint> ();
+                       uint p2, n1;
+
+                       for (uint n = 3; n < m; n += 2) {
+                               if (w.TryGetValue (n, out p2)) {
+                                       w.Remove (n);
+                                       n1 = n + p2;
+                               } else {
+                                       yield return n;
+                                       n1 = n * n;
+                                       p2 = n + n;
+
+                                       // if there's an overflow, don't bother
+                                       if (n1 / n != n || n1 >= m)
+                                               continue;
+                               }
+
+                               while (w.ContainsKey (n1))
+                                       n1 += p2;
+                               w [n1] = p2;
+                       }
+               }
+
+               [Test]
+               public void PrimeRegex ()
+               {
+                       // Perl regex oneliner by: abigail@fnx.com (Abigail)
+                       // from: http://www.mit.edu:8008/bloom-picayune.mit.edu/perl/10138
+                       // perl -wle 'print "Prime" if (1 x shift) !~ /^1?$|^(11+?)\1+$/'
+
+                       // This is a backtracking torture test
+
+                       Regex composite = new Regex (@"^1?$|^(11+?)\1+$",
+                                                    AddOptions( RegexOptions.None ));
+
+                       uint i = 0;
+                       string x = "";
+
+                       foreach (uint p in Primes (3333)) {
+                               while (i < p) {
+                                       Assert.IsTrue (composite.IsMatch (x));
+                                       ++i;
+                                       x += "1";
+                               }
+                               // i == p
+                               Assert.IsFalse (composite.IsMatch (x));
+                               ++i;
+                               x += "1";
+                       }
+               }
 #endif
-}
+       }
 }
index 4efba61326e2053153137cdf08a94252287d06ee..ab4fecc0d04997cae65b45fe27d20547c01877e4 100644 (file)
@@ -5,110 +5,104 @@ using NUnit.Framework;
 
 namespace MonoTests.System.Text.RegularExpressions {
 
-class RegexTrial {
-    public string pattern;
-    public RegexOptions options;
-    public string input;
-
-    public string expected;
-    public string error = "";
-
-    public RegexTrial (string pattern, RegexOptions options, string input, string expected)
-    {
-        this.pattern = pattern;
-        this.options = options;
-        this.input = input;
-        this.expected = expected;
-    }
-
-    public string Expected {
-        get {
-            return expected;
-        }
-    }
-
-    public string Error {
-        get {
-            return this.error;
-        }
-    }
-
-    public void Execute ()
-    {
-        string result;
-
-        for (int compiled = 0; compiled < 2; ++compiled) {
-            RegexOptions real_options = (compiled == 1) ? (options | RegexOptions.Compiled) : options;
-            try {
-                Regex re = new Regex (pattern, real_options);
-                int [] group_nums = re.GetGroupNumbers ();
-                Match m = re.Match (input);
-
-                if (m.Success) {
-                    result = "Pass.";
-
-                    for (int i = 0; i < m.Groups.Count; ++ i) {
-                        int gid = group_nums [i];
-                        Group group = m.Groups [gid];
-
-                        result += " Group[" + gid + "]=";
-                        foreach (Capture cap in group.Captures)
-                            result += "(" + cap.Index + "," + cap.Length + ")";
-                    }
-                } else {
-                    result = "Fail.";
-                }
-            }
-            catch (Exception e) {
-                error = e.Message + "\n" + e.StackTrace + "\n\n";
-
-                result = "Error.";
-            }
-
-            Assert.AreEqual (expected, result,
-                             "Matching input '{0}' against pattern '{1}' with options '{2}'", input, pattern, real_options);
-        }
-    }
-}
-
-class Checksum {
-    public Checksum () {
-        this.sum = 0;
-    }
-
-    public uint Value {
-        get {
-            return sum;
-        }
-    }
-
-    public void Add (string str) {
-        for (int i = 0; i < str.Length; ++ i)
-            Add (str[i], 16);
-    }
-
-    public void Add (uint n) {
-        Add (n, 32);
-    }
-
-    public void Add (ulong n, int bits) {
-        ulong mask = 1ul << (bits - 1);
-        for (int i = 0; i < bits; ++ i) {
-            Add ((n & mask) != 0);
-            mask >>= 1;
-        }
-    }
-
-    public void Add (bool bit) {
-        bool top = (sum & 0x80000000) != 0;
-        sum <<= 1;
-        sum ^= bit ? (uint)1 : (uint)0;
-
-        if (top)
-            sum ^= key;
-    }
-
-    private uint sum;
-    private readonly uint key = 0x04c11db7;
-}
+       class RegexTrial {
+               public string pattern;
+               public RegexOptions options;
+               public string input;
+
+               public string expected;
+               public string error = "";
+
+               public RegexTrial (string pattern, RegexOptions options, string input, string expected)
+               {
+                       this.pattern = pattern;
+                       this.options = options;
+                       this.input = input;
+                       this.expected = expected;
+               }
+
+               public string Expected {
+                       get { return expected; }
+               }
+               
+               public string Error {
+                       get { return this.error; }
+               }
+
+               public void Execute ()
+               {
+                       string result;
+
+                       for (int compiled = 0; compiled < 2; ++compiled) {
+                               RegexOptions real_options = (compiled == 1) ? (options | RegexOptions.Compiled) : options;
+                               try {
+                                       Regex re = new Regex (pattern, real_options);
+                                       int [] group_nums = re.GetGroupNumbers ();
+                                       Match m = re.Match (input);
+
+                                       if (m.Success) {
+                                               result = "Pass.";
+
+                                               for (int i = 0; i < m.Groups.Count; ++ i) {
+                                                       int gid = group_nums [i];
+                                                       Group group = m.Groups [gid];
+
+                                                       result += " Group[" + gid + "]=";
+                                                       foreach (Capture cap in group.Captures)
+                                                               result += "(" + cap.Index + "," + cap.Length + ")";
+                                               }
+                                       } else {
+                                               result = "Fail.";
+                                       }
+                               }
+                               catch (Exception e) {
+                                       error = e.Message + "\n" + e.StackTrace + "\n\n";
+
+                                       result = "Error.";
+                               }
+
+                               Assert.AreEqual (expected, result,
+                                                                "Matching input '{0}' against pattern '{1}' with options '{2}'", input, pattern, real_options);
+                       }
+               }
+       }
+
+       class Checksum {
+               public Checksum () {
+                       this.sum = 0;
+               }
+
+               public uint Value {
+                       get { return sum; }
+               }
+
+               public void Add (string str) {
+                       for (int i = 0; i < str.Length; ++ i)
+                               Add (str[i], 16);
+               }
+
+               public void Add (uint n) {
+                       Add (n, 32);
+               }
+
+               public void Add (ulong n, int bits) {
+                       ulong mask = 1ul << (bits - 1);
+                       for (int i = 0; i < bits; ++ i) {
+                               Add ((n & mask) != 0);
+                               mask >>= 1;
+                       }
+               }
+
+               public void Add (bool bit) {
+                       bool top = (sum & 0x80000000) != 0;
+                       sum <<= 1;
+                       sum ^= bit ? (uint)1 : (uint)0;
+
+                       if (top)
+                               sum ^= key;
+               }
+
+               private uint sum;
+               private readonly uint key = 0x04c11db7;
+       }
 }
index 6d21e37491ff2b4446876d27d56b66f36051aa22..52b47903f914572ab1d8beb6ee3fc8c1c75530df 100644 (file)
 // distribute, sublicense, and/or sell copies of the Software, and to
 // permit persons to whom the Software is furnished to do so, subject to
 // the following conditions:
-//
+// 
 // The above copyright notice and this permission notice shall be
 // included in all copies or substantial portions of the Software.
-//
+// 
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
@@ -33,53 +33,41 @@ using System.Text.RegularExpressions;
 
 namespace MonoTests.System.Text.RegularExpressions
 {
-[TestFixture]
-public class SpliTest {
+       [TestFixture]
+       public class SpliTest {
 
-    static void TestSplit (string pattern, string text, params string[] res) {
-        var r = new Regex (pattern);
-        var a = r.Split (text);
-        if (a.Length != res.Length) {
-            Assert.AreEqual (res.Length, a.Length, "length");
-        }
+       static void TestSplit (string pattern, string text, params string[] res) {
+               var r = new Regex (pattern);
+               var a = r.Split (text);
+               if (a.Length != res.Length) {
+                       Assert.AreEqual (res.Length, a.Length, "length");
+               }
 
-        for (int i = 0; i < res.Length; ++i) {
-            if (!a [i].Equals (res [i])) {
-                Assert.AreEqual (res [i], a [i], "idx_" + i);
-            }
-        }
-    }
+               for (int i = 0; i < res.Length; ++i) {
+                       if (!a [i].Equals (res [i])) {
+                               Assert.AreEqual (res [i], a [i], "idx_" + i);
+                       }
+               }
+       }
 
-    [Test]
-    public void NoGroups () {
-        TestSplit ("el", "hello", "h", "lo");
-    }
+       [Test]
+       public void NoGroups () { TestSplit ("el", "hello", "h", "lo"); }
 
-    [Test]
-    public void SingleGroup () {
-        TestSplit ( "(el)", "hello", "h", "el", "lo");
-    }
+       [Test]
+       public void SingleGroup () { TestSplit ( "(el)", "hello", "h", "el", "lo"); }
 
-    [Test]
-    public void TwoGroups () {
-        TestSplit ("(el)|(xx)", "hello", "h", "el", "lo");
-    }
+       [Test]
+       public void TwoGroups () { TestSplit ("(el)|(xx)", "hello", "h", "el", "lo"); }
 
-    [Test]
-    public void TwoGroupsInverted () {
-        TestSplit ("(cc)|(el)", "hello", "h", "el", "lo");
-    }
+       [Test]
+       public void TwoGroupsInverted () { TestSplit ("(cc)|(el)", "hello", "h", "el", "lo"); }
 
-    [Test]
-    public void TwoValidGroups () {
-        TestSplit ("(el)|(lo)", "hello", "h", "el", "", "lo", "");
-    }
+       [Test]
+       public void TwoValidGroups () { TestSplit ("(el)|(lo)", "hello", "h", "el", "", "lo", ""); }
 
-    [Test]
-    public void ThreGroups () {
-        TestSplit ("(el)|(xx)|(yy)", "hello", "h", "el", "lo");
-    }
+       [Test]
+       public void ThreGroups () { TestSplit ("(el)|(xx)|(yy)", "hello", "h", "el", "lo"); }
 
-}
+       }
 }