Browse Source

Removed /nowarn:1595, added /noconfig flag to build file (CSC was using the
Microsoft assemblies in preference.)

Removed checksum from Perl regex trial descriptions. Now using a descriptive
string.

svn path=/trunk/mcs/; revision=2216

Dan Lewis 24 years ago
parent
commit
b862e0ee3b

+ 8 - 132
mcs/class/System/Test/System.Text.RegularExpressions/PerlTest.cs

@@ -23,142 +23,18 @@ namespace MonoTests.System.Text.RegularExpressions {
 
 		public void TestTrials () {
 			foreach (RegexTrial trial in PerlTrials.trials) {
-				string msg = trial.Execute ();
-				if (msg != null)
-					Assertion.Fail (msg);
+				string actual = trial.Execute ();
+				if (actual != trial.Expected) {
+					Assertion.Fail (
+						trial.ToString () +
+						"Expected " + trial.Expected +
+						" but got " + actual
+					);
+				}
 			}
 		}
 
 		protected override void SetUp () { }
 		protected override void TearDown () { }
 	}
-
-	class RegexTrial {
-		public string pattern;
-		public RegexOptions options;
-		public string input;
-
-		public Result expected;
-		public uint checksum;
-
-		public RegexTrial (string pattern, RegexOptions options, string input, Result expected, uint checksum) {
-			this.pattern = pattern;
-			this.options = options;
-			this.input = input;
-			this.expected = expected;
-			this.checksum = checksum;
-		}
-
-		public string Execute () {
-			try {
-				Regex re = new Regex (pattern, options);
-				Match m = re.Match (input);
-
-				if (m.Success) {
-					uint sum = CreateChecksum (re, m);
-					return Report (Result.Pass, sum);
-				}
-
-				return Report (Result.Fail, 0);
-			}
-			catch (Exception) {
-				return Report (Result.Error, 0);
-			}
-		}
-
-		public override string ToString () {
-			return
-				"Matching input '" + input +
-				"' against pattern '" + pattern +
-				"' with options '" + options + "'.";
-		}
-
-		// private
-
-		private static uint CreateChecksum (Regex re, Match m) {
-			Checksum sum = new Checksum ();
-		
-			// group name mapping
-
-			string[] names = re.GetGroupNames ();
-			foreach (string name in re.GetGroupNames ()) {
-				sum.Add (name);
-				sum.Add ((uint)re.GroupNumberFromName (name));
-			}
-
-			// capture history
-
-			foreach (Group group in m.Groups) {
-				foreach (Capture cap in group.Captures) {
-					sum.Add ((uint)cap.Index);
-					sum.Add ((uint)cap.Length);
-				}
-			}
-
-			return sum.Value;
-		}
-
-		private string Report (Result actual, uint sum) {
-			if (actual == expected && sum == checksum)
-				return null;
-
-			string msg = this.ToString ();
-			if (actual != expected) {
-				msg +=
-					" Expected " + expected +
-					", but result was " + actual + ".";
-			}
-
-			if (sum != checksum)
-				msg += " Bad checksum.";
-
-			return msg;
-		}
-
-	}
-
-	enum Result {
-		Pass,
-		Fail,
-		Error
-	}
-
-	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;
-	}
 }

+ 727 - 727
mcs/class/System/Test/System.Text.RegularExpressions/PerlTrials.cs

@@ -14,733 +14,733 @@ namespace MonoTests.System.Text.RegularExpressions {
 		// ported from perl-5.6.1/t/op/re_tests
 
 		public static RegexTrial[] trials = new RegexTrial[] {
-new RegexTrial (@"abc", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"abc", RegexOptions.None, "xbc", Result.Fail, 0x0u),
-new RegexTrial (@"abc", RegexOptions.None, "axc", Result.Fail, 0x0u),
-new RegexTrial (@"abc", RegexOptions.None, "abx", Result.Fail, 0x0u),
-new RegexTrial (@"abc", RegexOptions.None, "xabcy", Result.Pass, 0x2c0e31d3u),
-new RegexTrial (@"abc", RegexOptions.None, "ababc", Result.Pass, 0x214d170au),
-new RegexTrial (@"ab*c", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab*bc", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab*bc", RegexOptions.None, "abbc", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"ab*bc", RegexOptions.None, "abbbbc", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@".{1}", RegexOptions.None, "abbbbc", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@".{3,4}", RegexOptions.None, "abbbbc", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"ab{0,}bc", RegexOptions.None, "abbbbc", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab+bc", RegexOptions.None, "abbc", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"ab+bc", RegexOptions.None, "abc", Result.Fail, 0x0u),
-new RegexTrial (@"ab+bc", RegexOptions.None, "abq", Result.Fail, 0x0u),
-new RegexTrial (@"ab{1,}bc", RegexOptions.None, "abq", Result.Fail, 0x0u),
-new RegexTrial (@"ab+bc", RegexOptions.None, "abbbbc", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab{1,}bc", RegexOptions.None, "abbbbc", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab{1,3}bc", RegexOptions.None, "abbbbc", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab{3,4}bc", RegexOptions.None, "abbbbc", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab{4,5}bc", RegexOptions.None, "abbbbc", Result.Fail, 0x0u),
-new RegexTrial (@"ab?bc", RegexOptions.None, "abbc", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"ab?bc", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab{0,1}bc", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab?bc", RegexOptions.None, "abbbbc", Result.Fail, 0x0u),
-new RegexTrial (@"ab?c", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab{0,1}c", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"^abc$", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"^abc$", RegexOptions.None, "abcc", Result.Fail, 0x0u),
-new RegexTrial (@"^abc", RegexOptions.None, "abcc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"^abc$", RegexOptions.None, "aabc", Result.Fail, 0x0u),
-new RegexTrial (@"abc$", RegexOptions.None, "aabc", Result.Pass, 0x2c0e31d3u),
-new RegexTrial (@"abc$", RegexOptions.None, "aabcd", Result.Fail, 0x0u),
-new RegexTrial (@"^", RegexOptions.None, "abc", Result.Pass, 0x28cf2c67u),
-new RegexTrial (@"$", RegexOptions.None, "abc", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"a.c", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a.c", RegexOptions.None, "axc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a.*c", RegexOptions.None, "axyzc", Result.Pass, 0x28cf2c62u),
-new RegexTrial (@"a.*c", RegexOptions.None, "axyzd", Result.Fail, 0x0u),
-new RegexTrial (@"a[bc]d", RegexOptions.None, "abc", Result.Fail, 0x0u),
-new RegexTrial (@"a[bc]d", RegexOptions.None, "abd", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[b-d]e", RegexOptions.None, "abd", Result.Fail, 0x0u),
-new RegexTrial (@"a[b-d]e", RegexOptions.None, "ace", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[b-d]", RegexOptions.None, "aac", Result.Pass, 0x2c0e31d2u),
-new RegexTrial (@"a[-b]", RegexOptions.None, "a-", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"a[b-]", RegexOptions.None, "a-", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"a[b-a]", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"a[]b", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"a[", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"a]", RegexOptions.None, "a]", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"a[]]b", RegexOptions.None, "a]b", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[^bc]d", RegexOptions.None, "aed", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[^bc]d", RegexOptions.None, "abd", Result.Fail, 0x0u),
-new RegexTrial (@"a[^-b]c", RegexOptions.None, "adc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[^-b]c", RegexOptions.None, "a-c", Result.Fail, 0x0u),
-new RegexTrial (@"a[^]b]c", RegexOptions.None, "a]c", Result.Fail, 0x0u),
-new RegexTrial (@"a[^]b]c", RegexOptions.None, "adc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"\ba\b", RegexOptions.None, "a-", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"\ba\b", RegexOptions.None, "-a", Result.Pass, 0x2c0e31d1u),
-new RegexTrial (@"\ba\b", RegexOptions.None, "-a-", Result.Pass, 0x2c0e31d1u),
-new RegexTrial (@"\by\b", RegexOptions.None, "xy", Result.Fail, 0x0u),
-new RegexTrial (@"\by\b", RegexOptions.None, "yz", Result.Fail, 0x0u),
-new RegexTrial (@"\by\b", RegexOptions.None, "xyz", Result.Fail, 0x0u),
-new RegexTrial (@"\Ba\B", RegexOptions.None, "a-", Result.Fail, 0x0u),
-new RegexTrial (@"\Ba\B", RegexOptions.None, "-a", Result.Fail, 0x0u),
-new RegexTrial (@"\Ba\B", RegexOptions.None, "-a-", Result.Fail, 0x0u),
-new RegexTrial (@"\By\b", RegexOptions.None, "xy", Result.Pass, 0x2c0e31d1u),
-new RegexTrial (@"\by\B", RegexOptions.None, "yz", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"\By\B", RegexOptions.None, "xyz", Result.Pass, 0x2c0e31d1u),
-new RegexTrial (@"\w", RegexOptions.None, "a", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"\w", RegexOptions.None, "-", Result.Fail, 0x0u),
-new RegexTrial (@"\W", RegexOptions.None, "a", Result.Fail, 0x0u),
-new RegexTrial (@"\W", RegexOptions.None, "-", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"a\sb", RegexOptions.None, "a b", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a\sb", RegexOptions.None, "a-b", Result.Fail, 0x0u),
-new RegexTrial (@"a\Sb", RegexOptions.None, "a b", Result.Fail, 0x0u),
-new RegexTrial (@"a\Sb", RegexOptions.None, "a-b", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"\d", RegexOptions.None, "1", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"\d", RegexOptions.None, "-", Result.Fail, 0x0u),
-new RegexTrial (@"\D", RegexOptions.None, "1", Result.Fail, 0x0u),
-new RegexTrial (@"\D", RegexOptions.None, "-", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"[\w]", RegexOptions.None, "a", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"[\w]", RegexOptions.None, "-", Result.Fail, 0x0u),
-new RegexTrial (@"[\W]", RegexOptions.None, "a", Result.Fail, 0x0u),
-new RegexTrial (@"[\W]", RegexOptions.None, "-", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"a[\s]b", RegexOptions.None, "a b", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[\s]b", RegexOptions.None, "a-b", Result.Fail, 0x0u),
-new RegexTrial (@"a[\S]b", RegexOptions.None, "a b", Result.Fail, 0x0u),
-new RegexTrial (@"a[\S]b", RegexOptions.None, "a-b", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"[\d]", RegexOptions.None, "1", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"[\d]", RegexOptions.None, "-", Result.Fail, 0x0u),
-new RegexTrial (@"[\D]", RegexOptions.None, "1", Result.Fail, 0x0u),
-new RegexTrial (@"[\D]", RegexOptions.None, "-", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"ab|cd", RegexOptions.None, "abc", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"ab|cd", RegexOptions.None, "abcd", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"()ef", RegexOptions.None, "def", Result.Pass, 0xbcfda03au),
-new RegexTrial (@"*a", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"(*)b", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"$b", RegexOptions.None, "b", Result.Fail, 0x0u),
-new RegexTrial (@"a\", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"a\(b", RegexOptions.None, "a(b", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a\(*b", RegexOptions.None, "ab", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"a\(*b", RegexOptions.None, "a((b", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"a\\b", RegexOptions.None, "a\\b", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"abc)", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"(abc", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"((a))", RegexOptions.None, "abc", Result.Pass, 0xc4a5a5eeu),
-new RegexTrial (@"(a)b(c)", RegexOptions.None, "abc", Result.Pass, 0x18ae2f3du),
-new RegexTrial (@"a+b+c", RegexOptions.None, "aabbabc", Result.Pass, 0x3bcb5ab8u),
-new RegexTrial (@"a{1,}b{1,}c", RegexOptions.None, "aabbabc", Result.Pass, 0x3bcb5ab8u),
-new RegexTrial (@"a**", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"a.+?c", RegexOptions.None, "abcabc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"(a+|b)*", RegexOptions.None, "ab", Result.Pass, 0x914c3aa6u),
-new RegexTrial (@"(a+|b){0,}", RegexOptions.None, "ab", Result.Pass, 0x914c3aa6u),
-new RegexTrial (@"(a+|b)+", RegexOptions.None, "ab", Result.Pass, 0x914c3aa6u),
-new RegexTrial (@"(a+|b){1,}", RegexOptions.None, "ab", Result.Pass, 0x914c3aa6u),
-new RegexTrial (@"(a+|b)?", RegexOptions.None, "ab", Result.Pass, 0x912bbf7du),
-new RegexTrial (@"(a+|b){0,1}", RegexOptions.None, "ab", Result.Pass, 0x912bbf7du),
-new RegexTrial (@")(", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"[^ab]*", RegexOptions.None, "cde", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"abc", RegexOptions.None, "", Result.Fail, 0x0u),
-new RegexTrial (@"a*", RegexOptions.None, "", Result.Pass, 0x28cf2c67u),
-new RegexTrial (@"([abc])*d", RegexOptions.None, "abbbcd", Result.Pass, 0xf3355bc8u),
-new RegexTrial (@"([abc])*bcd", RegexOptions.None, "abcd", Result.Pass, 0xf8d25b73u),
-new RegexTrial (@"a|b|c|d|e", RegexOptions.None, "e", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.None, "ef", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"abcd*efg", RegexOptions.None, "abcdefg", Result.Pass, 0x28cf2c60u),
-new RegexTrial (@"ab*", RegexOptions.None, "xabyabbbz", Result.Pass, 0x2c0e31d2u),
-new RegexTrial (@"ab*", RegexOptions.None, "xayabbbz", Result.Pass, 0x2c0e31d1u),
-new RegexTrial (@"(ab|cd)e", RegexOptions.None, "abcde", Result.Pass, 0xea730271u),
-new RegexTrial (@"[abhgefdc]ij", RegexOptions.None, "hij", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"^(ab|cd)e", RegexOptions.None, "abcde", Result.Fail, 0x0u),
-new RegexTrial (@"(abc|)ef", RegexOptions.None, "abcdef", Result.Pass, 0x9c79ee76u),
-new RegexTrial (@"(a|b)c*d", RegexOptions.None, "abcd", Result.Pass, 0xf5f0c7b6u),
-new RegexTrial (@"(ab|ab*)bc", RegexOptions.None, "abc", Result.Pass, 0x03317067u),
-new RegexTrial (@"a([bc]*)c*", RegexOptions.None, "abc", Result.Pass, 0x07f06dd3u),
-new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.None, "abcd", Result.Pass, 0xa787a90eu),
-new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.None, "abcd", Result.Pass, 0xa787a90eu),
-new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.None, "abcd", Result.Pass, 0x78511c2du),
-new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.None, "adcdcde", Result.Pass, 0x28cf2c60u),
-new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.None, "adcdcde", Result.Fail, 0x0u),
-new RegexTrial (@"(ab|a)b*c", RegexOptions.None, "abc", Result.Pass, 0x03317064u),
-new RegexTrial (@"((a)(b)c)(d)", RegexOptions.None, "abcd", Result.Pass, 0x6ddabcb1u),
-new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.None, "alpha", Result.Pass, 0x28cf2c62u),
-new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.None, "abh", Result.Pass, 0xb096539bu),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "effgz", Result.Pass, 0x763564b3u),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "ij", Result.Pass, 0x265ef776u),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "effg", Result.Fail, 0x0u),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "bcdd", Result.Fail, 0x0u),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "reffgz", Result.Pass, 0x80f4d362u),
-new RegexTrial (@"((((((((((a))))))))))", RegexOptions.None, "a", Result.Pass, 0x9f9493edu),
-new RegexTrial (@"((((((((((a))))))))))\10", RegexOptions.None, "aa", Result.Pass, 0x907a037cu),
-new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.None, "aa", Result.Fail, 0x0u),
-new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.None, "a!", Result.Pass, 0x907a037cu),
-new RegexTrial (@"(((((((((a)))))))))", RegexOptions.None, "a", Result.Pass, 0x3baf03adu),
-new RegexTrial (@"multiple words of text", RegexOptions.None, "uh-uh", Result.Fail, 0x0u),
-new RegexTrial (@"multiple words", RegexOptions.None, "multiple words, yeah", Result.Pass, 0x28cf2c69u),
-new RegexTrial (@"(.*)c(.*)", RegexOptions.None, "abcde", Result.Pass, 0xbd23556eu),
-new RegexTrial (@"\((.*), (.*)\)", RegexOptions.None, "(a, b)", Result.Pass, 0xb75ee021u),
-new RegexTrial (@"[k]", RegexOptions.None, "ab", Result.Fail, 0x0u),
-new RegexTrial (@"abcd", RegexOptions.None, "abcd", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"a(bc)d", RegexOptions.None, "abcd", Result.Pass, 0xfc1346c7u),
-new RegexTrial (@"a[-]?c", RegexOptions.None, "ac", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"(abc)\1", RegexOptions.None, "abcabc", Result.Pass, 0x6ac8946bu),
-new RegexTrial (@"([a-c]*)\1", RegexOptions.None, "abcabc", Result.Pass, 0x6ac8946bu),
-new RegexTrial (@"\1", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"\2", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"(a)|\1", RegexOptions.None, "a", Result.Pass, 0x912bbf7du),
-new RegexTrial (@"(a)|\1", RegexOptions.None, "x", Result.Fail, 0x0u),
-new RegexTrial (@"(a)|\2", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"(([a-c])b*?\2)*", RegexOptions.None, "ababbbcbc", Result.Pass, 0x49a0f52du),
-new RegexTrial (@"(([a-c])b*?\2){3}", RegexOptions.None, "ababbbcbc", Result.Pass, 0x6bad1a50u),
-new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.None, "aaxabxbaxbbx", Result.Fail, 0x0u),
-new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.None, "aaaxabaxbaaxbbax", Result.Pass, 0x9da92323u),
-new RegexTrial (@"((\3|b)\2(a)){2,}", RegexOptions.None, "bbaababbabaaaaabbaaaabba", Result.Pass, 0x6a4e8987u),
-new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"abc", RegexOptions.IgnoreCase, "XBC", Result.Fail, 0x0u),
-new RegexTrial (@"abc", RegexOptions.IgnoreCase, "AXC", Result.Fail, 0x0u),
-new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABX", Result.Fail, 0x0u),
-new RegexTrial (@"abc", RegexOptions.IgnoreCase, "XABCY", Result.Pass, 0x2c0e31d3u),
-new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABABC", Result.Pass, 0x214d170au),
-new RegexTrial (@"ab*c", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab*bc", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab*bc", RegexOptions.IgnoreCase, "ABBC", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"ab*?bc", RegexOptions.IgnoreCase, "ABBBBC", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab{0,}?bc", RegexOptions.IgnoreCase, "ABBBBC", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab+?bc", RegexOptions.IgnoreCase, "ABBC", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABC", Result.Fail, 0x0u),
-new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABQ", Result.Fail, 0x0u),
-new RegexTrial (@"ab{1,}bc", RegexOptions.IgnoreCase, "ABQ", Result.Fail, 0x0u),
-new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABBBBC", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab{1,}?bc", RegexOptions.IgnoreCase, "ABBBBC", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab{1,3}?bc", RegexOptions.IgnoreCase, "ABBBBC", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab{3,4}?bc", RegexOptions.IgnoreCase, "ABBBBC", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"ab{4,5}?bc", RegexOptions.IgnoreCase, "ABBBBC", Result.Fail, 0x0u),
-new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABBC", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab{0,1}?bc", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABBBBC", Result.Fail, 0x0u),
-new RegexTrial (@"ab??c", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab{0,1}?c", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "ABCC", Result.Fail, 0x0u),
-new RegexTrial (@"^abc", RegexOptions.IgnoreCase, "ABCC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "AABC", Result.Fail, 0x0u),
-new RegexTrial (@"abc$", RegexOptions.IgnoreCase, "AABC", Result.Pass, 0x2c0e31d3u),
-new RegexTrial (@"^", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c67u),
-new RegexTrial (@"$", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"a.c", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a.c", RegexOptions.IgnoreCase, "AXC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a.*?c", RegexOptions.IgnoreCase, "AXYZC", Result.Pass, 0x28cf2c62u),
-new RegexTrial (@"a.*c", RegexOptions.IgnoreCase, "AXYZD", Result.Fail, 0x0u),
-new RegexTrial (@"a[bc]d", RegexOptions.IgnoreCase, "ABC", Result.Fail, 0x0u),
-new RegexTrial (@"a[bc]d", RegexOptions.IgnoreCase, "ABD", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[b-d]e", RegexOptions.IgnoreCase, "ABD", Result.Fail, 0x0u),
-new RegexTrial (@"a[b-d]e", RegexOptions.IgnoreCase, "ACE", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[b-d]", RegexOptions.IgnoreCase, "AAC", Result.Pass, 0x2c0e31d2u),
-new RegexTrial (@"a[-b]", RegexOptions.IgnoreCase, "A-", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"a[b-]", RegexOptions.IgnoreCase, "A-", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"a[b-a]", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"a[]b", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"a[", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"a]", RegexOptions.IgnoreCase, "A]", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"a[]]b", RegexOptions.IgnoreCase, "A]B", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[^bc]d", RegexOptions.IgnoreCase, "AED", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[^bc]d", RegexOptions.IgnoreCase, "ABD", Result.Fail, 0x0u),
-new RegexTrial (@"a[^-b]c", RegexOptions.IgnoreCase, "ADC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a[^-b]c", RegexOptions.IgnoreCase, "A-C", Result.Fail, 0x0u),
-new RegexTrial (@"a[^]b]c", RegexOptions.IgnoreCase, "A]C", Result.Fail, 0x0u),
-new RegexTrial (@"a[^]b]c", RegexOptions.IgnoreCase, "ADC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"ab|cd", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"ab|cd", RegexOptions.IgnoreCase, "ABCD", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"()ef", RegexOptions.IgnoreCase, "DEF", Result.Pass, 0xbcfda03au),
-new RegexTrial (@"*a", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"(*)b", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"$b", RegexOptions.IgnoreCase, "B", Result.Fail, 0x0u),
-new RegexTrial (@"a\", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"a\(b", RegexOptions.IgnoreCase, "A(B", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a\(*b", RegexOptions.IgnoreCase, "AB", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"a\(*b", RegexOptions.IgnoreCase, "A((B", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"a\\b", RegexOptions.IgnoreCase, "A\\B", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"abc)", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"(abc", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"((a))", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0xc4a5a5eeu),
-new RegexTrial (@"(a)b(c)", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x18ae2f3du),
-new RegexTrial (@"a+b+c", RegexOptions.IgnoreCase, "AABBABC", Result.Pass, 0x3bcb5ab8u),
-new RegexTrial (@"a{1,}b{1,}c", RegexOptions.IgnoreCase, "AABBABC", Result.Pass, 0x3bcb5ab8u),
-new RegexTrial (@"a**", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"a.+?c", RegexOptions.IgnoreCase, "ABCABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a.*?c", RegexOptions.IgnoreCase, "ABCABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"a.{0,5}?c", RegexOptions.IgnoreCase, "ABCABC", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"(a+|b)*", RegexOptions.IgnoreCase, "AB", Result.Pass, 0x914c3aa6u),
-new RegexTrial (@"(a+|b){0,}", RegexOptions.IgnoreCase, "AB", Result.Pass, 0x914c3aa6u),
-new RegexTrial (@"(a+|b)+", RegexOptions.IgnoreCase, "AB", Result.Pass, 0x914c3aa6u),
-new RegexTrial (@"(a+|b){1,}", RegexOptions.IgnoreCase, "AB", Result.Pass, 0x914c3aa6u),
-new RegexTrial (@"(a+|b)?", RegexOptions.IgnoreCase, "AB", Result.Pass, 0x912bbf7du),
-new RegexTrial (@"(a+|b){0,1}", RegexOptions.IgnoreCase, "AB", Result.Pass, 0x912bbf7du),
-new RegexTrial (@"(a+|b){0,1}?", RegexOptions.IgnoreCase, "AB", Result.Pass, 0xb4574e2eu),
-new RegexTrial (@")(", RegexOptions.IgnoreCase, "-", Result.Error, 0x0u),
-new RegexTrial (@"[^ab]*", RegexOptions.IgnoreCase, "CDE", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"abc", RegexOptions.IgnoreCase, "", Result.Fail, 0x0u),
-new RegexTrial (@"a*", RegexOptions.IgnoreCase, "", Result.Pass, 0x28cf2c67u),
-new RegexTrial (@"([abc])*d", RegexOptions.IgnoreCase, "ABBBCD", Result.Pass, 0xf3355bc8u),
-new RegexTrial (@"([abc])*bcd", RegexOptions.IgnoreCase, "ABCD", Result.Pass, 0xf8d25b73u),
-new RegexTrial (@"a|b|c|d|e", RegexOptions.IgnoreCase, "E", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.IgnoreCase, "EF", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"abcd*efg", RegexOptions.IgnoreCase, "ABCDEFG", Result.Pass, 0x28cf2c60u),
-new RegexTrial (@"ab*", RegexOptions.IgnoreCase, "XABYABBBZ", Result.Pass, 0x2c0e31d2u),
-new RegexTrial (@"ab*", RegexOptions.IgnoreCase, "XAYABBBZ", Result.Pass, 0x2c0e31d1u),
-new RegexTrial (@"(ab|cd)e", RegexOptions.IgnoreCase, "ABCDE", Result.Pass, 0xea730271u),
-new RegexTrial (@"[abhgefdc]ij", RegexOptions.IgnoreCase, "HIJ", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"^(ab|cd)e", RegexOptions.IgnoreCase, "ABCDE", Result.Fail, 0x0u),
-new RegexTrial (@"(abc|)ef", RegexOptions.IgnoreCase, "ABCDEF", Result.Pass, 0x9c79ee76u),
-new RegexTrial (@"(a|b)c*d", RegexOptions.IgnoreCase, "ABCD", Result.Pass, 0xf5f0c7b6u),
-new RegexTrial (@"(ab|ab*)bc", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x03317067u),
-new RegexTrial (@"a([bc]*)c*", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x07f06dd3u),
-new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.IgnoreCase, "ABCD", Result.Pass, 0xa787a90eu),
-new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.IgnoreCase, "ABCD", Result.Pass, 0xa787a90eu),
-new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.IgnoreCase, "ABCD", Result.Pass, 0x78511c2du),
-new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.IgnoreCase, "ADCDCDE", Result.Pass, 0x28cf2c60u),
-new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.IgnoreCase, "ADCDCDE", Result.Fail, 0x0u),
-new RegexTrial (@"(ab|a)b*c", RegexOptions.IgnoreCase, "ABC", Result.Pass, 0x03317064u),
-new RegexTrial (@"((a)(b)c)(d)", RegexOptions.IgnoreCase, "ABCD", Result.Pass, 0x6ddabcb1u),
-new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.IgnoreCase, "ALPHA", Result.Pass, 0x28cf2c62u),
-new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.IgnoreCase, "ABH", Result.Pass, 0xb096539bu),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "EFFGZ", Result.Pass, 0x763564b3u),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "IJ", Result.Pass, 0x265ef776u),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "EFFG", Result.Fail, 0x0u),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "BCDD", Result.Fail, 0x0u),
-new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "REFFGZ", Result.Pass, 0x80f4d362u),
-new RegexTrial (@"((((((((((a))))))))))", RegexOptions.IgnoreCase, "A", Result.Pass, 0x9f9493edu),
-new RegexTrial (@"((((((((((a))))))))))\10", RegexOptions.IgnoreCase, "AA", Result.Pass, 0x907a037cu),
-new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.IgnoreCase, "AA", Result.Fail, 0x0u),
-new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.IgnoreCase, "A!", Result.Pass, 0x907a037cu),
-new RegexTrial (@"(((((((((a)))))))))", RegexOptions.IgnoreCase, "A", Result.Pass, 0x3baf03adu),
-new RegexTrial (@"(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))", RegexOptions.IgnoreCase, "A", Result.Pass, 0x912bbf7du),
-new RegexTrial (@"(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))", RegexOptions.IgnoreCase, "C", Result.Pass, 0x912bbf7du),
-new RegexTrial (@"multiple words of text", RegexOptions.IgnoreCase, "UH-UH", Result.Fail, 0x0u),
-new RegexTrial (@"multiple words", RegexOptions.IgnoreCase, "MULTIPLE WORDS, YEAH", Result.Pass, 0x28cf2c69u),
-new RegexTrial (@"(.*)c(.*)", RegexOptions.IgnoreCase, "ABCDE", Result.Pass, 0xbd23556eu),
-new RegexTrial (@"\((.*), (.*)\)", RegexOptions.IgnoreCase, "(A, B)", Result.Pass, 0xb75ee021u),
-new RegexTrial (@"[k]", RegexOptions.IgnoreCase, "AB", Result.Fail, 0x0u),
-new RegexTrial (@"abcd", RegexOptions.IgnoreCase, "ABCD", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"a(bc)d", RegexOptions.IgnoreCase, "ABCD", Result.Pass, 0xfc1346c7u),
-new RegexTrial (@"a[-]?c", RegexOptions.IgnoreCase, "AC", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"(abc)\1", RegexOptions.IgnoreCase, "ABCABC", Result.Pass, 0x6ac8946bu),
-new RegexTrial (@"([a-c]*)\1", RegexOptions.IgnoreCase, "ABCABC", Result.Pass, 0x6ac8946bu),
-new RegexTrial (@"a(?!b).", RegexOptions.None, "abad", Result.Pass, 0x214d170bu),
-new RegexTrial (@"a(?=d).", RegexOptions.None, "abad", Result.Pass, 0x214d170bu),
-new RegexTrial (@"a(?=c|d).", RegexOptions.None, "abad", Result.Pass, 0x214d170bu),
-new RegexTrial (@"a(?:b|c|d)(.)", RegexOptions.None, "ace", Result.Pass, 0x0ab34b09u),
-new RegexTrial (@"a(?:b|c|d)*(.)", RegexOptions.None, "ace", Result.Pass, 0x0ab34b09u),
-new RegexTrial (@"a(?:b|c|d)+?(.)", RegexOptions.None, "ace", Result.Pass, 0x0ab34b09u),
-new RegexTrial (@"a(?:b|c|d)+?(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x0ab34b09u),
-new RegexTrial (@"a(?:b|c|d)+(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x87888ff3u),
-new RegexTrial (@"a(?:b|c|d){2}(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0xf5917daau),
-new RegexTrial (@"a(?:b|c|d){4,5}(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x3943be56u),
-new RegexTrial (@"a(?:b|c|d){4,5}?(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x7d0dff02u),
-new RegexTrial (@"((foo)|(bar))*", RegexOptions.None, "foobar", Result.Pass, 0x53d75830u),
-new RegexTrial (@":(?:", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"a(?:b|c|d){6,7}(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x87888ff3u),
-new RegexTrial (@"a(?:b|c|d){6,7}?(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x87888ff3u),
-new RegexTrial (@"a(?:b|c|d){5,6}(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x87888ff3u),
-new RegexTrial (@"a(?:b|c|d){5,6}?(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x3943be56u),
-new RegexTrial (@"a(?:b|c|d){5,7}(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x87888ff3u),
-new RegexTrial (@"a(?:b|c|d){5,7}?(.)", RegexOptions.None, "acdbcdbe", Result.Pass, 0x3943be56u),
-new RegexTrial (@"a(?:b|(c|e){1,2}?|d)+?(.)", RegexOptions.None, "ace", Result.Pass, 0xeaae855bu),
-new RegexTrial (@"^(.+)?B", RegexOptions.None, "AB", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"^([^a-z])|(\^)$", RegexOptions.None, ".", Result.Pass, 0x56c1e734u),
-new RegexTrial (@"^[<>]&", RegexOptions.None, "<&OUT", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaaa", Result.Pass, 0xa7ce533au),
-new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaaa", Result.Pass, 0xa7ce533au),
-new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@"((a{4})+)", RegexOptions.None, "aaaaaaaaa", Result.Pass, 0x44695c66u),
-new RegexTrial (@"(((aa){2})+)", RegexOptions.None, "aaaaaaaaaa", Result.Pass, 0x31924fc7u),
-new RegexTrial (@"(((a{2}){2})+)", RegexOptions.None, "aaaaaaaaaa", Result.Pass, 0x31924fc7u),
-new RegexTrial (@"(?:(f)(o)(o)|(b)(a)(r))*", RegexOptions.None, "foobar", Result.Pass, 0x00ffa376u),
-new RegexTrial (@"(?<=a)b", RegexOptions.None, "ab", Result.Pass, 0x2c0e31d1u),
-new RegexTrial (@"(?<=a)b", RegexOptions.None, "cb", Result.Fail, 0x0u),
-new RegexTrial (@"(?<=a)b", RegexOptions.None, "b", Result.Fail, 0x0u),
-new RegexTrial (@"(?<!c)b", RegexOptions.None, "ab", Result.Pass, 0x2c0e31d1u),
-new RegexTrial (@"(?<!c)b", RegexOptions.None, "cb", Result.Fail, 0x0u),
-new RegexTrial (@"(?<!c)b", RegexOptions.None, "b", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"(?<!c)b", RegexOptions.None, "b", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"(?<%)b", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"(?:..)*a", RegexOptions.None, "aba", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"(?:..)*?a", RegexOptions.None, "aba", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"^(?:b|a(?=(.)))*\1", RegexOptions.None, "abc", Result.Pass, 0x4efd0a5du),
-new RegexTrial (@"^(){3,5}", RegexOptions.None, "abc", Result.Pass, 0x0043745bu),
-new RegexTrial (@"^(a+)*ax", RegexOptions.None, "aax", Result.Pass, 0x03317067u),
-new RegexTrial (@"^((a|b)+)*ax", RegexOptions.None, "aax", Result.Pass, 0x112c1453u),
-new RegexTrial (@"^((a|bc)+)*ax", RegexOptions.None, "aax", Result.Pass, 0x112c1453u),
-new RegexTrial (@"(a|x)*ab", RegexOptions.None, "cab", Result.Pass, 0xb096539bu),
-new RegexTrial (@"(a)*ab", RegexOptions.None, "cab", Result.Pass, 0xb096539bu),
-new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "ab", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?i)a)b", RegexOptions.None, "ab", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "Ab", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?i)a)b", RegexOptions.None, "Ab", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "aB", Result.Fail, 0x0u),
-new RegexTrial (@"((?i)a)b", RegexOptions.None, "aB", Result.Fail, 0x0u),
-new RegexTrial (@"(?i:a)b", RegexOptions.None, "ab", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?i:a))b", RegexOptions.None, "ab", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?i:a)b", RegexOptions.None, "Ab", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?i:a))b", RegexOptions.None, "Ab", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?i:a)b", RegexOptions.None, "aB", Result.Fail, 0x0u),
-new RegexTrial (@"((?i:a))b", RegexOptions.None, "aB", Result.Fail, 0x0u),
-new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "ab", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "ab", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "aB", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "aB", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "Ab", Result.Fail, 0x0u),
-new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "Ab", Result.Fail, 0x0u),
-new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "aB", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "aB", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "AB", Result.Fail, 0x0u),
-new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "AB", Result.Fail, 0x0u),
-new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "ab", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "ab", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "aB", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "aB", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "Ab", Result.Fail, 0x0u),
-new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "Ab", Result.Fail, 0x0u),
-new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "aB", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "aB", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "AB", Result.Fail, 0x0u),
-new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "AB", Result.Fail, 0x0u),
-new RegexTrial (@"((?-i:a.))b", RegexOptions.IgnoreCase, "a\nB", Result.Fail, 0x0u),
-new RegexTrial (@"((?s-i:a.))b", RegexOptions.IgnoreCase, "a\nB", Result.Pass, 0x03317064u),
-new RegexTrial (@"((?s-i:a.))b", RegexOptions.IgnoreCase, "B\nB", Result.Fail, 0x0u),
-new RegexTrial (@"(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))", RegexOptions.None, "cabbbb", Result.Pass, 0x28cf2c61u),
-new RegexTrial (@"(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))", RegexOptions.None, "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", Result.Pass, 0x28cf2c4eu),
-new RegexTrial (@"(ab)\d\1", RegexOptions.IgnoreCase, "Ab4ab", Result.Pass, 0xb1df3cfdu),
-new RegexTrial (@"(ab)\d\1", RegexOptions.IgnoreCase, "ab4Ab", Result.Pass, 0xb1df3cfdu),
-new RegexTrial (@"foo\w*\d{4}baz", RegexOptions.None, "foobar1234baz", Result.Pass, 0x28cf2c6au),
-new RegexTrial (@"x(~~)*(?:(?:F)?)?", RegexOptions.None, "x~~", Result.Pass, 0x07f06dd3u),
-new RegexTrial (@"^a(?#xxx){3}c", RegexOptions.None, "aaac", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"(?<![cd])b", RegexOptions.None, "dbcb", Result.Fail, 0x0u),
-new RegexTrial (@"(?<![cd])[ab]", RegexOptions.None, "dbaacb", Result.Pass, 0x214d1708u),
-new RegexTrial (@"(?<!(c|d))b", RegexOptions.None, "dbcb", Result.Fail, 0x0u),
-new RegexTrial (@"(?<!(c|d))[ab]", RegexOptions.None, "dbaacb", Result.Pass, 0xbdd57541u),
-new RegexTrial (@"(?<!cd)[ab]", RegexOptions.None, "cdaccb", Result.Pass, 0x3f0a470du),
-new RegexTrial (@"^(?:a?b?)*$", RegexOptions.None, "a--", Result.Fail, 0x0u),
-new RegexTrial (@"((?s)^a(.))((?m)^b$)", RegexOptions.None, "a\nb\nc\n", Result.Pass, 0x9611db24u),
-new RegexTrial (@"((?m)^b$)", RegexOptions.None, "a\nb\nc\n", Result.Pass, 0x7869cd68u),
-new RegexTrial (@"(?m)^b", RegexOptions.None, "a\nb\n", Result.Pass, 0x214d1708u),
-new RegexTrial (@"(?m)^(b)", RegexOptions.None, "a\nb\n", Result.Pass, 0x7869cd68u),
-new RegexTrial (@"((?m)^b)", RegexOptions.None, "a\nb\n", Result.Pass, 0x7869cd68u),
-new RegexTrial (@"\n((?m)^b)", RegexOptions.None, "a\nb\n", Result.Pass, 0xb1be86e2u),
-new RegexTrial (@"((?s).)c(?!.)", RegexOptions.None, "a\nb\nc\n", Result.Pass, 0x55bfd22eu),
-new RegexTrial (@"((?s).)c(?!.)", RegexOptions.None, "a\nb\nc\n", Result.Pass, 0x55bfd22eu),
-new RegexTrial (@"((?s)b.)c(?!.)", RegexOptions.None, "a\nb\nc\n", Result.Pass, 0xea730271u),
-new RegexTrial (@"((?s)b.)c(?!.)", RegexOptions.None, "a\nb\nc\n", Result.Pass, 0xea730271u),
-new RegexTrial (@"^b", RegexOptions.None, "a\nb\nc\n", Result.Fail, 0x0u),
-new RegexTrial (@"()^b", RegexOptions.None, "a\nb\nc\n", Result.Fail, 0x0u),
-new RegexTrial (@"((?m)^b)", RegexOptions.None, "a\nb\nc\n", Result.Pass, 0x7869cd68u),
-new RegexTrial (@"(x)?(?(1)a|b)", RegexOptions.None, "a", Result.Fail, 0x0u),
-new RegexTrial (@"(x)?(?(1)b|a)", RegexOptions.None, "a", Result.Pass, 0xb4574e2fu),
-new RegexTrial (@"()?(?(1)b|a)", RegexOptions.None, "a", Result.Pass, 0xb4574e2fu),
-new RegexTrial (@"()(?(1)b|a)", RegexOptions.None, "a", Result.Fail, 0x0u),
-new RegexTrial (@"()?(?(1)a|b)", RegexOptions.None, "a", Result.Pass, 0x912bbf7cu),
-new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "(blah)", Result.Pass, 0x419f57f0u),
-new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "blah", Result.Pass, 0xea93b3d0u),
-new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "blah)", Result.Fail, 0x0u),
-new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "(blah", Result.Fail, 0x0u),
-new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "(blah)", Result.Pass, 0x419f57f0u),
-new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "blah", Result.Pass, 0xea93b3d0u),
-new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "blah)", Result.Fail, 0x0u),
-new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "(blah", Result.Fail, 0x0u),
-new RegexTrial (@"(?(1)a|b|c)", RegexOptions.None, "a", Result.Error, 0x0u),
-new RegexTrial (@"(?(?!a)a|b)", RegexOptions.None, "a", Result.Fail, 0x0u),
-new RegexTrial (@"(?(?!a)b|a)", RegexOptions.None, "a", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"(?(?=a)b|a)", RegexOptions.None, "a", Result.Fail, 0x0u),
-new RegexTrial (@"(?(?=a)a|b)", RegexOptions.None, "a", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"(?=(a+?))(\1ab)", RegexOptions.None, "aaab", Result.Pass, 0xf03e92ddu),
-new RegexTrial (@"^(?=(a+?))\1ab", RegexOptions.None, "aaab", Result.Fail, 0x0u),
-new RegexTrial (@"(\w+:)+", RegexOptions.None, "one:", Result.Pass, 0xf8d25b76u),
-new RegexTrial (@"$(?<=^(a))", RegexOptions.None, "a", Result.Pass, 0x2a267296u),
-new RegexTrial (@"(?=(a+?))(\1ab)", RegexOptions.None, "aaab", Result.Pass, 0xf03e92ddu),
-new RegexTrial (@"^(?=(a+?))\1ab", RegexOptions.None, "aaab", Result.Fail, 0x0u),
-new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd:", Result.Fail, 0x0u),
-new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd", Result.Pass, 0x3f38033fu),
-new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "xy:z:::abcd", Result.Pass, 0xe6e0e8e7u),
-new RegexTrial (@"^[^bcd]*(c+)", RegexOptions.None, "aexycd", Result.Pass, 0xa2db4a22u),
-new RegexTrial (@"(a*)b+", RegexOptions.None, "caab", Result.Pass, 0xf5f0c7b5u),
-new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd:", Result.Fail, 0x0u),
-new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd", Result.Pass, 0x3f38033fu),
-new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "xy:z:::abcd", Result.Pass, 0xe6e0e8e7u),
-new RegexTrial (@"^[^bcd]*(c+)", RegexOptions.None, "aexycd", Result.Pass, 0xa2db4a22u),
-new RegexTrial (@"(>a+)ab", RegexOptions.None, "aaab", Result.Fail, 0x0u),
-new RegexTrial (@"(?>a+)b", RegexOptions.None, "aaab", Result.Pass, 0x28cf2c63u),
-new RegexTrial (@"([[:]+)", RegexOptions.None, "a:[b]:", Result.Pass, 0xbcfda038u),
-new RegexTrial (@"([[=]+)", RegexOptions.None, "a=[b]=", Result.Pass, 0xbcfda038u),
-new RegexTrial (@"([[.]+)", RegexOptions.None, "a.[b].", Result.Pass, 0xbcfda038u),
-new RegexTrial (@"[a[:]b[:c]", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"[a[:]b[:c]", RegexOptions.None, "abc", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"((?>a+)b)", RegexOptions.None, "aaab", Result.Pass, 0xf8d25b76u),
-new RegexTrial (@"(?>(a+))b", RegexOptions.None, "aaab", Result.Pass, 0xf8d25b71u),
-new RegexTrial (@"((?>[^()]+)|\([^()]*\))+", RegexOptions.None, "((abc(ade)ufh()()x", Result.Pass, 0x2f47f564u),
-new RegexTrial (@"(?<=x+)", RegexOptions.None, "xxxxy", Result.Pass, 0x2c0e31d0u),
-new RegexTrial (@"a{37,17}", RegexOptions.None, "-", Result.Error, 0x0u),
-new RegexTrial (@"\Z", RegexOptions.None, "a\nb\n", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"\z", RegexOptions.None, "a\nb\n", Result.Pass, 0x3bcb5abbu),
-new RegexTrial (@"$", RegexOptions.None, "a\nb\n", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"\Z", RegexOptions.None, "b\na\n", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"\z", RegexOptions.None, "b\na\n", Result.Pass, 0x3bcb5abbu),
-new RegexTrial (@"$", RegexOptions.None, "b\na\n", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"\Z", RegexOptions.None, "b\na", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"\z", RegexOptions.None, "b\na", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"$", RegexOptions.None, "b\na", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"\Z", RegexOptions.Multiline, "a\nb\n", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"\z", RegexOptions.Multiline, "a\nb\n", Result.Pass, 0x3bcb5abbu),
-new RegexTrial (@"$", RegexOptions.Multiline, "a\nb\n", Result.Pass, 0x2c0e31d0u),
-new RegexTrial (@"\Z", RegexOptions.Multiline, "b\na\n", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"\z", RegexOptions.Multiline, "b\na\n", Result.Pass, 0x3bcb5abbu),
-new RegexTrial (@"$", RegexOptions.Multiline, "b\na\n", Result.Pass, 0x2c0e31d0u),
-new RegexTrial (@"\Z", RegexOptions.Multiline, "b\na", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"\z", RegexOptions.Multiline, "b\na", Result.Pass, 0x258c0abeu),
-new RegexTrial (@"$", RegexOptions.Multiline, "b\na", Result.Pass, 0x2c0e31d0u),
-new RegexTrial (@"a\Z", RegexOptions.None, "a\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"a\z", RegexOptions.None, "a\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"a$", RegexOptions.None, "a\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"a\Z", RegexOptions.None, "b\na\n", Result.Pass, 0x214d1708u),
-new RegexTrial (@"a\z", RegexOptions.None, "b\na\n", Result.Fail, 0x0u),
-new RegexTrial (@"a$", RegexOptions.None, "b\na\n", Result.Pass, 0x214d1708u),
-new RegexTrial (@"a\Z", RegexOptions.None, "b\na", Result.Pass, 0x214d1708u),
-new RegexTrial (@"a\z", RegexOptions.None, "b\na", Result.Pass, 0x214d1708u),
-new RegexTrial (@"a$", RegexOptions.None, "b\na", Result.Pass, 0x214d1708u),
-new RegexTrial (@"a\z", RegexOptions.Multiline, "a\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"a$", RegexOptions.Multiline, "a\nb\n", Result.Pass, 0x28cf2c66u),
-new RegexTrial (@"a\Z", RegexOptions.Multiline, "b\na\n", Result.Pass, 0x214d1708u),
-new RegexTrial (@"a\z", RegexOptions.Multiline, "b\na\n", Result.Fail, 0x0u),
-new RegexTrial (@"a$", RegexOptions.Multiline, "b\na\n", Result.Pass, 0x214d1708u),
-new RegexTrial (@"a\Z", RegexOptions.Multiline, "b\na", Result.Pass, 0x214d1708u),
-new RegexTrial (@"a\z", RegexOptions.Multiline, "b\na", Result.Pass, 0x214d1708u),
-new RegexTrial (@"a$", RegexOptions.Multiline, "b\na", Result.Pass, 0x214d1708u),
-new RegexTrial (@"aa\Z", RegexOptions.None, "aa\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.None, "aa\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.None, "aa\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.None, "b\naa\n", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa\z", RegexOptions.None, "b\naa\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.None, "b\naa\n", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa\Z", RegexOptions.None, "b\naa", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa\z", RegexOptions.None, "b\naa", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa$", RegexOptions.None, "b\naa", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa\z", RegexOptions.Multiline, "aa\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.Multiline, "aa\nb\n", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\naa\n", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\naa\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.Multiline, "b\naa\n", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\naa", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\naa", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa$", RegexOptions.Multiline, "b\naa", Result.Pass, 0x214d170bu),
-new RegexTrial (@"aa\Z", RegexOptions.None, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.None, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.None, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.None, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.None, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.None, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.None, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.None, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.None, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.Multiline, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.Multiline, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.Multiline, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.None, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.None, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.None, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.None, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.None, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.None, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.None, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.None, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.None, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.Multiline, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.Multiline, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.Multiline, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.None, "ab\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.None, "ab\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.None, "ab\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.None, "b\nab\n", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab\z", RegexOptions.None, "b\nab\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.None, "b\nab\n", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab\Z", RegexOptions.None, "b\nab", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab\z", RegexOptions.None, "b\nab", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab$", RegexOptions.None, "b\nab", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab\z", RegexOptions.Multiline, "ab\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.Multiline, "ab\nb\n", Result.Pass, 0x28cf2c65u),
-new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nab\n", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nab\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nab\n", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nab", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nab", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nab", Result.Pass, 0x214d170bu),
-new RegexTrial (@"ab\Z", RegexOptions.None, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.None, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.None, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.None, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.None, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.None, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.None, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.None, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.None, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.Multiline, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.Multiline, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.Multiline, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.None, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.None, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.None, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.None, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.None, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.None, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.None, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.None, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.None, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.Multiline, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.Multiline, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.Multiline, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.None, "abb\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.None, "abb\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.None, "abb\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.None, "b\nabb\n", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb\z", RegexOptions.None, "b\nabb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.None, "b\nabb\n", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb\Z", RegexOptions.None, "b\nabb", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb\z", RegexOptions.None, "b\nabb", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb$", RegexOptions.None, "b\nabb", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb\z", RegexOptions.Multiline, "abb\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.Multiline, "abb\nb\n", Result.Pass, 0x28cf2c64u),
-new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nabb\n", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nabb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nabb\n", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nabb", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nabb", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nabb", Result.Pass, 0x214d170au),
-new RegexTrial (@"abb\Z", RegexOptions.None, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.None, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.None, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.None, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.None, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.None, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.None, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.None, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.None, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.Multiline, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.Multiline, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.Multiline, "ac\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nac\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nac", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.None, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.None, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.None, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.None, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.None, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.None, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.None, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.None, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.None, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.Multiline, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.Multiline, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.Multiline, "ca\nb\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nca\n", Result.Fail, 0x0u),
-new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nca", Result.Fail, 0x0u),
-new RegexTrial (@"(^|x)(c)", RegexOptions.None, "ca", Result.Pass, 0x8da8c263u),
-new RegexTrial (@"a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz", RegexOptions.None, "x", Result.Fail, 0x0u),
-new RegexTrial (@"round\(((?>[^()]+))\)", RegexOptions.None, "_I(round(xs * sz),1)", Result.Pass, 0x1b28807bu),
-new RegexTrial (@"foo.bart", RegexOptions.None, "foo.bart", Result.Pass, 0x28cf2c6fu),
-new RegexTrial (@"^d[x][x][x]", RegexOptions.Multiline, "abcd\ndxxx", Result.Pass, 0x3f0a4708u),
-new RegexTrial (@".X(.+)+X", RegexOptions.None, "bbbbXcXaaaaaaaa", Result.Pass, 0xfdd7d305u),
-new RegexTrial (@".X(.+)+XX", RegexOptions.None, "bbbbXcXXaaaaaaaa", Result.Pass, 0xb4dab488u),
-new RegexTrial (@".XX(.+)+X", RegexOptions.None, "bbbbXXcXaaaaaaaa", Result.Pass, 0xb9999251u),
-new RegexTrial (@".X(.+)+X", RegexOptions.None, "bbbbXXaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@".X(.+)+XX", RegexOptions.None, "bbbbXXXaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@".XX(.+)+X", RegexOptions.None, "bbbbXXXaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@".X(.+)+[X]", RegexOptions.None, "bbbbXcXaaaaaaaa", Result.Pass, 0xfdd7d305u),
-new RegexTrial (@".X(.+)+[X][X]", RegexOptions.None, "bbbbXcXXaaaaaaaa", Result.Pass, 0xb4dab488u),
-new RegexTrial (@".XX(.+)+[X]", RegexOptions.None, "bbbbXXcXaaaaaaaa", Result.Pass, 0xb9999251u),
-new RegexTrial (@".X(.+)+[X]", RegexOptions.None, "bbbbXXaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@".X(.+)+[X][X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@".XX(.+)+[X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@".[X](.+)+[X]", RegexOptions.None, "bbbbXcXaaaaaaaa", Result.Pass, 0xfdd7d305u),
-new RegexTrial (@".[X](.+)+[X][X]", RegexOptions.None, "bbbbXcXXaaaaaaaa", Result.Pass, 0xb4dab488u),
-new RegexTrial (@".[X][X](.+)+[X]", RegexOptions.None, "bbbbXXcXaaaaaaaa", Result.Pass, 0xb9999251u),
-new RegexTrial (@".[X](.+)+[X]", RegexOptions.None, "bbbbXXaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@".[X](.+)+[X][X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@".[X][X](.+)+[X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", Result.Fail, 0x0u),
-new RegexTrial (@"tt+$", RegexOptions.None, "xxxtt", Result.Pass, 0x258c0abcu),
-new RegexTrial (@"([\d-z]+)", RegexOptions.None, "a0-za", Result.Pass, 0xf5f0c7b4u),
-new RegexTrial (@"([\d-\s]+)", RegexOptions.None, "a0- z", Result.Pass, 0xf5f0c7b4u),
-new RegexTrial (@"\GX.*X", RegexOptions.None, "aaaXbX", Result.Fail, 0x0u),
-new RegexTrial (@"(\d+\.\d+)", RegexOptions.None, "3.1415926", Result.Pass, 0xd0c2b873u),
-new RegexTrial (@"(\ba.{0,10}br)", RegexOptions.None, "have a web browser", Result.Pass, 0xb94b91b3u),
-new RegexTrial (@"\.c(pp|xx|c)?$", RegexOptions.IgnoreCase, "Changes", Result.Fail, 0x0u),
-new RegexTrial (@"\.c(pp|xx|c)?$", RegexOptions.IgnoreCase, "IO.c", Result.Pass, 0xbdd57542u),
-new RegexTrial (@"(\.c(pp|xx|c)?$)", RegexOptions.IgnoreCase, "IO.c", Result.Pass, 0x64943db5u),
-new RegexTrial (@"^([a-z]:)", RegexOptions.None, "C:/", Result.Fail, 0x0u),
-new RegexTrial (@"^\S\s+aa$", RegexOptions.Multiline, "\nx aa", Result.Pass, 0x2c0e31d4u),
-new RegexTrial (@"(^|a)b", RegexOptions.None, "ab", Result.Pass, 0x4a3c17eau),
-new RegexTrial (@"^([ab]*?)(b)?(c)$", RegexOptions.None, "abac", Result.Pass, 0x9823bb1au),
-new RegexTrial (@"(\w)?(abc)\1b", RegexOptions.None, "abcab", Result.Fail, 0x0u),
-new RegexTrial (@"^(?:.,){2}c", RegexOptions.None, "a,b,c", Result.Pass, 0x28cf2c62u),
-new RegexTrial (@"^(.,){2}c", RegexOptions.None, "a,b,c", Result.Pass, 0xd5e72d9eu),
-new RegexTrial (@"^(?:[^,]*,){2}c", RegexOptions.None, "a,b,c", Result.Pass, 0x28cf2c62u),
-new RegexTrial (@"^([^,]*,){2}c", RegexOptions.None, "a,b,c", Result.Pass, 0xd5e72d9eu),
-new RegexTrial (@"^([^,]*,){3}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]*,){3,}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]*,){0,3}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]{1,3},){3}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]{1,3},){3,}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]{1,3},){0,3}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]{1,},){3}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]{1,},){3,}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]{1,},){0,3}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]{0,3},){3}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]{0,3},){3,}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"^([^,]{0,3},){0,3}d", RegexOptions.None, "aaa,b,c,d", Result.Pass, 0x10bdede3u),
-new RegexTrial (@"(?i)", RegexOptions.None, "", Result.Pass, 0x28cf2c67u),
-new RegexTrial (@"(?!\A)x", RegexOptions.Multiline, "a\nxb\n", Result.Pass, 0x214d1708u),
-new RegexTrial (@"^(a(b)?)+$", RegexOptions.None, "aba", Result.Pass, 0x293aa65cu),
-new RegexTrial (@"^(aa(bb)?)+$", RegexOptions.None, "aabbaa", Result.Pass, 0x7ea9fffeu),
-new RegexTrial (@"^.{9}abc.*\n", RegexOptions.Multiline, "123\nabcabcabcabc\n", Result.Pass, 0x3bcb5ab6u),
-new RegexTrial (@"^(a)?a$", RegexOptions.None, "a", Result.Pass, 0xb4574e2fu),
-new RegexTrial (@"^(a)?(?(1)a|b)+$", RegexOptions.None, "a", Result.Fail, 0x0u),
-new RegexTrial (@"^(a\1?)(a\1?)(a\2?)(a\3?)$", RegexOptions.None, "aaaaaa", Result.Pass, 0xdd6d7968u),
-new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaa", Result.Pass, 0x4edfb342u),
-new RegexTrial (@"^(0+)?(?:x(1))?", RegexOptions.None, "x1", Result.Pass, 0x89175214u),
-new RegexTrial (@"^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?", RegexOptions.None, "012cxx0190", Result.Pass, 0x553bd43du),
-new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.None, "bbbac", Result.Pass, 0x982b57a7u),
-new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.None, "bbbbac", Result.Pass, 0x40a2cb0eu),
-new RegexTrial (@"\((\w\. \w+)\)", RegexOptions.None, "cd. (A. Tw)", Result.Pass, 0xf14117cau),
-new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.None, "aaaacccc", Result.Pass, 0x99cfdfffu),
-new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.None, "bbbbcccc", Result.Pass, 0x99cfdfffu)
+			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)")
 		};
 	}
 }

+ 3 - 1
mcs/class/System/Test/System_test.build

@@ -16,8 +16,10 @@
 			<references basedir="..\..\..\nunit">
 				<includes name="NUnitCore.dll"/>
 			</references>
+
+			<arg value="/noconfig"/>
 			<arg value="/r:..\..\lib\System.dll"/>
-			<arg value="/nowarn:1595"/>
+			<arg value="/lib:..\..\lib"/>
 		</csc>
 	</target>