New test.
[mono.git] / mcs / class / System / Test / System.Text.RegularExpressions / PerlTrials.cs
1 //
2 // assembly:    System_test
3 // namespace:   MonoTests.System.Text.RegularExpressions
4 // file:        PerlTrials.cs
5 //
6 // author:      Dan Lewis (dlewis@gmx.co.uk)
7 //              (c) 2002
8
9 using System.Text.RegularExpressions;
10
11 namespace MonoTests.System.Text.RegularExpressions {
12
13         class PerlTrials {
14                 // ported from perl-5.6.1/t/op/re_tests
15
16                 public static RegexTrial[] trials = new RegexTrial[] {
17                         new RegexTrial (@"abc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
18                         new RegexTrial (@"abc", RegexOptions.None, "xbc", "Fail."),
19                         new RegexTrial (@"abc", RegexOptions.None, "axc", "Fail."),
20                         new RegexTrial (@"abc", RegexOptions.None, "abx", "Fail."),
21                         new RegexTrial (@"abc", RegexOptions.None, "xabcy", "Pass. Group[0]=(1,3)"),
22                         new RegexTrial (@"abc", RegexOptions.None, "ababc", "Pass. Group[0]=(2,3)"),
23                         new RegexTrial (@"ab*c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
24                         new RegexTrial (@"ab*bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
25                         new RegexTrial (@"ab*bc", RegexOptions.None, "abbc", "Pass. Group[0]=(0,4)"),
26                         new RegexTrial (@"ab*bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
27                         new RegexTrial (@".{1}", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,1)"),
28                         new RegexTrial (@".{3,4}", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,4)"),
29                         new RegexTrial (@"ab{0,}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
30                         new RegexTrial (@"ab+bc", RegexOptions.None, "abbc", "Pass. Group[0]=(0,4)"),
31                         new RegexTrial (@"ab+bc", RegexOptions.None, "abc", "Fail."),
32                         new RegexTrial (@"ab+bc", RegexOptions.None, "abq", "Fail."),
33                         new RegexTrial (@"ab{1,}bc", RegexOptions.None, "abq", "Fail."),
34                         new RegexTrial (@"ab+bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
35                         new RegexTrial (@"ab{1,}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
36                         new RegexTrial (@"ab{1,3}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
37                         new RegexTrial (@"ab{3,4}bc", RegexOptions.None, "abbbbc", "Pass. Group[0]=(0,6)"),
38                         new RegexTrial (@"ab{4,5}bc", RegexOptions.None, "abbbbc", "Fail."),
39                         new RegexTrial (@"ab?bc", RegexOptions.None, "abbc", "Pass. Group[0]=(0,4)"),
40                         new RegexTrial (@"ab?bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
41                         new RegexTrial (@"ab{0,1}bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
42                         new RegexTrial (@"ab?bc", RegexOptions.None, "abbbbc", "Fail."),
43                         new RegexTrial (@"ab?c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
44                         new RegexTrial (@"ab{0,1}c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
45                         new RegexTrial (@"^abc$", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
46                         new RegexTrial (@"^abc$", RegexOptions.None, "abcc", "Fail."),
47                         new RegexTrial (@"^abc", RegexOptions.None, "abcc", "Pass. Group[0]=(0,3)"),
48                         new RegexTrial (@"^abc$", RegexOptions.None, "aabc", "Fail."),
49                         new RegexTrial (@"abc$", RegexOptions.None, "aabc", "Pass. Group[0]=(1,3)"),
50                         new RegexTrial (@"abc$", RegexOptions.None, "aabcd", "Fail."),
51                         new RegexTrial (@"^", RegexOptions.None, "abc", "Pass. Group[0]=(0,0)"),
52                         new RegexTrial (@"$", RegexOptions.None, "abc", "Pass. Group[0]=(3,0)"),
53                         new RegexTrial (@"a.c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
54                         new RegexTrial (@"a.c", RegexOptions.None, "axc", "Pass. Group[0]=(0,3)"),
55                         new RegexTrial (@"a.*c", RegexOptions.None, "axyzc", "Pass. Group[0]=(0,5)"),
56                         new RegexTrial (@"a.*c", RegexOptions.None, "axyzd", "Fail."),
57                         new RegexTrial (@"a[bc]d", RegexOptions.None, "abc", "Fail."),
58                         new RegexTrial (@"a[bc]d", RegexOptions.None, "abd", "Pass. Group[0]=(0,3)"),
59                         new RegexTrial (@"a[b-d]e", RegexOptions.None, "abd", "Fail."),
60                         new RegexTrial (@"a[b-d]e", RegexOptions.None, "ace", "Pass. Group[0]=(0,3)"),
61                         new RegexTrial (@"a[b-d]", RegexOptions.None, "aac", "Pass. Group[0]=(1,2)"),
62                         new RegexTrial (@"a[-b]", RegexOptions.None, "a-", "Pass. Group[0]=(0,2)"),
63                         new RegexTrial (@"a[b-]", RegexOptions.None, "a-", "Pass. Group[0]=(0,2)"),
64                         new RegexTrial (@"a[b-a]", RegexOptions.None, "-", "Error."),
65                         new RegexTrial (@"a[]b", RegexOptions.None, "-", "Error."),
66                         new RegexTrial (@"a[", RegexOptions.None, "-", "Error."),
67                         new RegexTrial (@"a]", RegexOptions.None, "a]", "Pass. Group[0]=(0,2)"),
68                         new RegexTrial (@"a[]]b", RegexOptions.None, "a]b", "Pass. Group[0]=(0,3)"),
69                         new RegexTrial (@"a[^bc]d", RegexOptions.None, "aed", "Pass. Group[0]=(0,3)"),
70                         new RegexTrial (@"a[^bc]d", RegexOptions.None, "abd", "Fail."),
71                         new RegexTrial (@"a[^-b]c", RegexOptions.None, "adc", "Pass. Group[0]=(0,3)"),
72                         new RegexTrial (@"a[^-b]c", RegexOptions.None, "a-c", "Fail."),
73                         new RegexTrial (@"a[^]b]c", RegexOptions.None, "a]c", "Fail."),
74                         new RegexTrial (@"a[^]b]c", RegexOptions.None, "adc", "Pass. Group[0]=(0,3)"),
75                         new RegexTrial (@"\ba\b", RegexOptions.None, "a-", "Pass. Group[0]=(0,1)"),
76                         new RegexTrial (@"\ba\b", RegexOptions.None, "-a", "Pass. Group[0]=(1,1)"),
77                         new RegexTrial (@"\ba\b", RegexOptions.None, "-a-", "Pass. Group[0]=(1,1)"),
78                         new RegexTrial (@"\by\b", RegexOptions.None, "xy", "Fail."),
79                         new RegexTrial (@"\by\b", RegexOptions.None, "yz", "Fail."),
80                         new RegexTrial (@"\by\b", RegexOptions.None, "xyz", "Fail."),
81                         new RegexTrial (@"\Ba\B", RegexOptions.None, "a-", "Fail."),
82                         new RegexTrial (@"\Ba\B", RegexOptions.None, "-a", "Fail."),
83                         new RegexTrial (@"\Ba\B", RegexOptions.None, "-a-", "Fail."),
84                         new RegexTrial (@"\By\b", RegexOptions.None, "xy", "Pass. Group[0]=(1,1)"),
85                         new RegexTrial (@"\by\B", RegexOptions.None, "yz", "Pass. Group[0]=(0,1)"),
86                         new RegexTrial (@"\By\B", RegexOptions.None, "xyz", "Pass. Group[0]=(1,1)"),
87                         new RegexTrial (@"\w", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
88                         new RegexTrial (@"\w", RegexOptions.None, "-", "Fail."),
89                         new RegexTrial (@"\W", RegexOptions.None, "a", "Fail."),
90                         new RegexTrial (@"\W", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
91                         new RegexTrial (@"a\sb", RegexOptions.None, "a b", "Pass. Group[0]=(0,3)"),
92                         new RegexTrial (@"a\sb", RegexOptions.None, "a-b", "Fail."),
93                         new RegexTrial (@"a\Sb", RegexOptions.None, "a b", "Fail."),
94                         new RegexTrial (@"a\Sb", RegexOptions.None, "a-b", "Pass. Group[0]=(0,3)"),
95                         new RegexTrial (@"\d", RegexOptions.None, "1", "Pass. Group[0]=(0,1)"),
96                         new RegexTrial (@"\d", RegexOptions.None, "-", "Fail."),
97                         new RegexTrial (@"\D", RegexOptions.None, "1", "Fail."),
98                         new RegexTrial (@"\D", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
99                         new RegexTrial (@"[\w]", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
100                         new RegexTrial (@"[\w]", RegexOptions.None, "-", "Fail."),
101                         new RegexTrial (@"[\W]", RegexOptions.None, "a", "Fail."),
102                         new RegexTrial (@"[\W]", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
103                         new RegexTrial (@"a[\s]b", RegexOptions.None, "a b", "Pass. Group[0]=(0,3)"),
104                         new RegexTrial (@"a[\s]b", RegexOptions.None, "a-b", "Fail."),
105                         new RegexTrial (@"a[\S]b", RegexOptions.None, "a b", "Fail."),
106                         new RegexTrial (@"a[\S]b", RegexOptions.None, "a-b", "Pass. Group[0]=(0,3)"),
107                         new RegexTrial (@"[\d]", RegexOptions.None, "1", "Pass. Group[0]=(0,1)"),
108                         new RegexTrial (@"[\d]", RegexOptions.None, "-", "Fail."),
109                         new RegexTrial (@"[\D]", RegexOptions.None, "1", "Fail."),
110                         new RegexTrial (@"[\D]", RegexOptions.None, "-", "Pass. Group[0]=(0,1)"),
111                         new RegexTrial (@"ab|cd", RegexOptions.None, "abc", "Pass. Group[0]=(0,2)"),
112                         new RegexTrial (@"ab|cd", RegexOptions.None, "abcd", "Pass. Group[0]=(0,2)"),
113                         new RegexTrial (@"()ef", RegexOptions.None, "def", "Pass. Group[0]=(1,2) Group[1]=(1,0)"),
114                         new RegexTrial (@"*a", RegexOptions.None, "-", "Error."),
115                         new RegexTrial (@"(*)b", RegexOptions.None, "-", "Error."),
116                         new RegexTrial (@"$b", RegexOptions.None, "b", "Fail."),
117                         new RegexTrial (@"a\", RegexOptions.None, "-", "Error."),
118                         new RegexTrial (@"a\(b", RegexOptions.None, "a(b", "Pass. Group[0]=(0,3)"),
119                         new RegexTrial (@"a\(*b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2)"),
120                         new RegexTrial (@"a\(*b", RegexOptions.None, "a((b", "Pass. Group[0]=(0,4)"),
121                         new RegexTrial (@"a\\b", RegexOptions.None, "a\\b", "Pass. Group[0]=(0,3)"),
122                         new RegexTrial (@"abc)", RegexOptions.None, "-", "Error."),
123                         new RegexTrial (@"(abc", RegexOptions.None, "-", "Error."),
124                         new RegexTrial (@"((a))", RegexOptions.None, "abc", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1)"),
125                         new RegexTrial (@"(a)b(c)", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
126                         new RegexTrial (@"a+b+c", RegexOptions.None, "aabbabc", "Pass. Group[0]=(4,3)"),
127                         new RegexTrial (@"a{1,}b{1,}c", RegexOptions.None, "aabbabc", "Pass. Group[0]=(4,3)"),
128                         new RegexTrial (@"a**", RegexOptions.None, "-", "Error."),
129                         new RegexTrial (@"a.+?c", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,3)"),
130                         new RegexTrial (@"(a+|b)*", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
131                         new RegexTrial (@"(a+|b){0,}", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
132                         new RegexTrial (@"(a+|b)+", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
133                         new RegexTrial (@"(a+|b){1,}", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
134                         new RegexTrial (@"(a+|b)?", RegexOptions.None, "ab", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
135                         new RegexTrial (@"(a+|b){0,1}", RegexOptions.None, "ab", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
136                         new RegexTrial (@")(", RegexOptions.None, "-", "Error."),
137                         new RegexTrial (@"[^ab]*", RegexOptions.None, "cde", "Pass. Group[0]=(0,3)"),
138                         new RegexTrial (@"abc", RegexOptions.None, "", "Fail."),
139                         new RegexTrial (@"a*", RegexOptions.None, "", "Pass. Group[0]=(0,0)"),
140                         new RegexTrial (@"([abc])*d", RegexOptions.None, "abbbcd", "Pass. Group[0]=(0,6) Group[1]=(0,1)(1,1)(2,1)(3,1)(4,1)"),
141                         new RegexTrial (@"([abc])*bcd", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,1)"),
142                         new RegexTrial (@"a|b|c|d|e", RegexOptions.None, "e", "Pass. Group[0]=(0,1)"),
143                         new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.None, "ef", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
144                         new RegexTrial (@"abcd*efg", RegexOptions.None, "abcdefg", "Pass. Group[0]=(0,7)"),
145                         new RegexTrial (@"ab*", RegexOptions.None, "xabyabbbz", "Pass. Group[0]=(1,2)"),
146                         new RegexTrial (@"ab*", RegexOptions.None, "xayabbbz", "Pass. Group[0]=(1,1)"),
147                         new RegexTrial (@"(ab|cd)e", RegexOptions.None, "abcde", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
148                         new RegexTrial (@"[abhgefdc]ij", RegexOptions.None, "hij", "Pass. Group[0]=(0,3)"),
149                         new RegexTrial (@"^(ab|cd)e", RegexOptions.None, "abcde", "Fail."),
150                         new RegexTrial (@"(abc|)ef", RegexOptions.None, "abcdef", "Pass. Group[0]=(4,2) Group[1]=(4,0)"),
151                         new RegexTrial (@"(a|b)c*d", RegexOptions.None, "abcd", "Pass. Group[0]=(1,3) Group[1]=(1,1)"),
152                         new RegexTrial (@"(ab|ab*)bc", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
153                         new RegexTrial (@"a([bc]*)c*", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,2)"),
154                         new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
155                         new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
156                         new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
157                         new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.None, "adcdcde", "Pass. Group[0]=(0,7)"),
158                         new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.None, "adcdcde", "Fail."),
159                         new RegexTrial (@"(ab|a)b*c", RegexOptions.None, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,2)"),
160                         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)"),
161                         new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.None, "alpha", "Pass. Group[0]=(0,5)"),
162                         new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.None, "abh", "Pass. Group[0]=(1,2) Group[1]="),
163                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "effgz", "Pass. Group[0]=(0,5) Group[1]=(0,5) Group[2]="),
164                         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)"),
165                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "effg", "Fail."),
166                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "bcdd", "Fail."),
167                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.None, "reffgz", "Pass. Group[0]=(1,5) Group[1]=(1,5) Group[2]="),
168                         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)"),
169                         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)"),
170                         new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.None, "aa", "Fail."),
171                         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)"),
172                         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)"),
173                         new RegexTrial (@"multiple words of text", RegexOptions.None, "uh-uh", "Fail."),
174                         new RegexTrial (@"multiple words", RegexOptions.None, "multiple words, yeah", "Pass. Group[0]=(0,14)"),
175                         new RegexTrial (@"(.*)c(.*)", RegexOptions.None, "abcde", "Pass. Group[0]=(0,5) Group[1]=(0,2) Group[2]=(3,2)"),
176                         new RegexTrial (@"\((.*), (.*)\)", RegexOptions.None, "(a, b)", "Pass. Group[0]=(0,6) Group[1]=(1,1) Group[2]=(4,1)"),
177                         new RegexTrial (@"[k]", RegexOptions.None, "ab", "Fail."),
178                         new RegexTrial (@"abcd", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4)"),
179                         new RegexTrial (@"a(bc)d", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
180                         new RegexTrial (@"a[-]?c", RegexOptions.None, "ac", "Pass. Group[0]=(0,2)"),
181                         new RegexTrial (@"(abc)\1", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
182                         new RegexTrial (@"([a-c]*)\1", RegexOptions.None, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
183                         new RegexTrial (@"\1", RegexOptions.None, "-", "Error."),
184                         new RegexTrial (@"\2", RegexOptions.None, "-", "Error."),
185                         new RegexTrial (@"(a)|\1", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
186                         new RegexTrial (@"(a)|\1", RegexOptions.None, "x", "Fail."),
187                         new RegexTrial (@"(a)|\2", RegexOptions.None, "-", "Error."),
188                         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)"),
189                         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)"),
190                         new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.None, "aaxabxbaxbbx", "Fail."),
191                         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)"),
192                         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)"),
193                         new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
194                         new RegexTrial (@"abc", RegexOptions.IgnoreCase, "XBC", "Fail."),
195                         new RegexTrial (@"abc", RegexOptions.IgnoreCase, "AXC", "Fail."),
196                         new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABX", "Fail."),
197                         new RegexTrial (@"abc", RegexOptions.IgnoreCase, "XABCY", "Pass. Group[0]=(1,3)"),
198                         new RegexTrial (@"abc", RegexOptions.IgnoreCase, "ABABC", "Pass. Group[0]=(2,3)"),
199                         new RegexTrial (@"ab*c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
200                         new RegexTrial (@"ab*bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
201                         new RegexTrial (@"ab*bc", RegexOptions.IgnoreCase, "ABBC", "Pass. Group[0]=(0,4)"),
202                         new RegexTrial (@"ab*?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
203                         new RegexTrial (@"ab{0,}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
204                         new RegexTrial (@"ab+?bc", RegexOptions.IgnoreCase, "ABBC", "Pass. Group[0]=(0,4)"),
205                         new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABC", "Fail."),
206                         new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABQ", "Fail."),
207                         new RegexTrial (@"ab{1,}bc", RegexOptions.IgnoreCase, "ABQ", "Fail."),
208                         new RegexTrial (@"ab+bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
209                         new RegexTrial (@"ab{1,}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
210                         new RegexTrial (@"ab{1,3}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
211                         new RegexTrial (@"ab{3,4}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Pass. Group[0]=(0,6)"),
212                         new RegexTrial (@"ab{4,5}?bc", RegexOptions.IgnoreCase, "ABBBBC", "Fail."),
213                         new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABBC", "Pass. Group[0]=(0,4)"),
214                         new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
215                         new RegexTrial (@"ab{0,1}?bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
216                         new RegexTrial (@"ab??bc", RegexOptions.IgnoreCase, "ABBBBC", "Fail."),
217                         new RegexTrial (@"ab??c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
218                         new RegexTrial (@"ab{0,1}?c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
219                         new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
220                         new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "ABCC", "Fail."),
221                         new RegexTrial (@"^abc", RegexOptions.IgnoreCase, "ABCC", "Pass. Group[0]=(0,3)"),
222                         new RegexTrial (@"^abc$", RegexOptions.IgnoreCase, "AABC", "Fail."),
223                         new RegexTrial (@"abc$", RegexOptions.IgnoreCase, "AABC", "Pass. Group[0]=(1,3)"),
224                         new RegexTrial (@"^", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,0)"),
225                         new RegexTrial (@"$", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(3,0)"),
226                         new RegexTrial (@"a.c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3)"),
227                         new RegexTrial (@"a.c", RegexOptions.IgnoreCase, "AXC", "Pass. Group[0]=(0,3)"),
228                         new RegexTrial (@"a.*?c", RegexOptions.IgnoreCase, "AXYZC", "Pass. Group[0]=(0,5)"),
229                         new RegexTrial (@"a.*c", RegexOptions.IgnoreCase, "AXYZD", "Fail."),
230                         new RegexTrial (@"a[bc]d", RegexOptions.IgnoreCase, "ABC", "Fail."),
231                         new RegexTrial (@"a[bc]d", RegexOptions.IgnoreCase, "ABD", "Pass. Group[0]=(0,3)"),
232                         new RegexTrial (@"a[b-d]e", RegexOptions.IgnoreCase, "ABD", "Fail."),
233                         new RegexTrial (@"a[b-d]e", RegexOptions.IgnoreCase, "ACE", "Pass. Group[0]=(0,3)"),
234                         new RegexTrial (@"a[b-d]", RegexOptions.IgnoreCase, "AAC", "Pass. Group[0]=(1,2)"),
235                         new RegexTrial (@"a[-b]", RegexOptions.IgnoreCase, "A-", "Pass. Group[0]=(0,2)"),
236                         new RegexTrial (@"a[b-]", RegexOptions.IgnoreCase, "A-", "Pass. Group[0]=(0,2)"),
237                         new RegexTrial (@"a[b-a]", RegexOptions.IgnoreCase, "-", "Error."),
238                         new RegexTrial (@"a[]b", RegexOptions.IgnoreCase, "-", "Error."),
239                         new RegexTrial (@"a[", RegexOptions.IgnoreCase, "-", "Error."),
240                         new RegexTrial (@"a]", RegexOptions.IgnoreCase, "A]", "Pass. Group[0]=(0,2)"),
241                         new RegexTrial (@"a[]]b", RegexOptions.IgnoreCase, "A]B", "Pass. Group[0]=(0,3)"),
242                         new RegexTrial (@"a[^bc]d", RegexOptions.IgnoreCase, "AED", "Pass. Group[0]=(0,3)"),
243                         new RegexTrial (@"a[^bc]d", RegexOptions.IgnoreCase, "ABD", "Fail."),
244                         new RegexTrial (@"a[^-b]c", RegexOptions.IgnoreCase, "ADC", "Pass. Group[0]=(0,3)"),
245                         new RegexTrial (@"a[^-b]c", RegexOptions.IgnoreCase, "A-C", "Fail."),
246                         new RegexTrial (@"a[^]b]c", RegexOptions.IgnoreCase, "A]C", "Fail."),
247                         new RegexTrial (@"a[^]b]c", RegexOptions.IgnoreCase, "ADC", "Pass. Group[0]=(0,3)"),
248                         new RegexTrial (@"ab|cd", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,2)"),
249                         new RegexTrial (@"ab|cd", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,2)"),
250                         new RegexTrial (@"()ef", RegexOptions.IgnoreCase, "DEF", "Pass. Group[0]=(1,2) Group[1]=(1,0)"),
251                         new RegexTrial (@"*a", RegexOptions.IgnoreCase, "-", "Error."),
252                         new RegexTrial (@"(*)b", RegexOptions.IgnoreCase, "-", "Error."),
253                         new RegexTrial (@"$b", RegexOptions.IgnoreCase, "B", "Fail."),
254                         new RegexTrial (@"a\", RegexOptions.IgnoreCase, "-", "Error."),
255                         new RegexTrial (@"a\(b", RegexOptions.IgnoreCase, "A(B", "Pass. Group[0]=(0,3)"),
256                         new RegexTrial (@"a\(*b", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2)"),
257                         new RegexTrial (@"a\(*b", RegexOptions.IgnoreCase, "A((B", "Pass. Group[0]=(0,4)"),
258                         new RegexTrial (@"a\\b", RegexOptions.IgnoreCase, "A\\B", "Pass. Group[0]=(0,3)"),
259                         new RegexTrial (@"abc)", RegexOptions.IgnoreCase, "-", "Error."),
260                         new RegexTrial (@"(abc", RegexOptions.IgnoreCase, "-", "Error."),
261                         new RegexTrial (@"((a))", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1)"),
262                         new RegexTrial (@"(a)b(c)", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
263                         new RegexTrial (@"a+b+c", RegexOptions.IgnoreCase, "AABBABC", "Pass. Group[0]=(4,3)"),
264                         new RegexTrial (@"a{1,}b{1,}c", RegexOptions.IgnoreCase, "AABBABC", "Pass. Group[0]=(4,3)"),
265                         new RegexTrial (@"a**", RegexOptions.IgnoreCase, "-", "Error."),
266                         new RegexTrial (@"a.+?c", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,3)"),
267                         new RegexTrial (@"a.*?c", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,3)"),
268                         new RegexTrial (@"a.{0,5}?c", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,3)"),
269                         new RegexTrial (@"(a+|b)*", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
270                         new RegexTrial (@"(a+|b){0,}", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
271                         new RegexTrial (@"(a+|b)+", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
272                         new RegexTrial (@"(a+|b){1,}", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)(1,1)"),
273                         new RegexTrial (@"(a+|b)?", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
274                         new RegexTrial (@"(a+|b){0,1}", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
275                         new RegexTrial (@"(a+|b){0,1}?", RegexOptions.IgnoreCase, "AB", "Pass. Group[0]=(0,0) Group[1]="),
276                         new RegexTrial (@")(", RegexOptions.IgnoreCase, "-", "Error."),
277                         new RegexTrial (@"[^ab]*", RegexOptions.IgnoreCase, "CDE", "Pass. Group[0]=(0,3)"),
278                         new RegexTrial (@"abc", RegexOptions.IgnoreCase, "", "Fail."),
279                         new RegexTrial (@"a*", RegexOptions.IgnoreCase, "", "Pass. Group[0]=(0,0)"),
280                         new RegexTrial (@"([abc])*d", RegexOptions.IgnoreCase, "ABBBCD", "Pass. Group[0]=(0,6) Group[1]=(0,1)(1,1)(2,1)(3,1)(4,1)"),
281                         new RegexTrial (@"([abc])*bcd", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(0,1)"),
282                         new RegexTrial (@"a|b|c|d|e", RegexOptions.IgnoreCase, "E", "Pass. Group[0]=(0,1)"),
283                         new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.IgnoreCase, "EF", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
284                         new RegexTrial (@"abcd*efg", RegexOptions.IgnoreCase, "ABCDEFG", "Pass. Group[0]=(0,7)"),
285                         new RegexTrial (@"ab*", RegexOptions.IgnoreCase, "XABYABBBZ", "Pass. Group[0]=(1,2)"),
286                         new RegexTrial (@"ab*", RegexOptions.IgnoreCase, "XAYABBBZ", "Pass. Group[0]=(1,1)"),
287                         new RegexTrial (@"(ab|cd)e", RegexOptions.IgnoreCase, "ABCDE", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
288                         new RegexTrial (@"[abhgefdc]ij", RegexOptions.IgnoreCase, "HIJ", "Pass. Group[0]=(0,3)"),
289                         new RegexTrial (@"^(ab|cd)e", RegexOptions.IgnoreCase, "ABCDE", "Fail."),
290                         new RegexTrial (@"(abc|)ef", RegexOptions.IgnoreCase, "ABCDEF", "Pass. Group[0]=(4,2) Group[1]=(4,0)"),
291                         new RegexTrial (@"(a|b)c*d", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(1,3) Group[1]=(1,1)"),
292                         new RegexTrial (@"(ab|ab*)bc", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
293                         new RegexTrial (@"a([bc]*)c*", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(1,2)"),
294                         new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
295                         new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,2) Group[2]=(3,1)"),
296                         new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
297                         new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.IgnoreCase, "ADCDCDE", "Pass. Group[0]=(0,7)"),
298                         new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.IgnoreCase, "ADCDCDE", "Fail."),
299                         new RegexTrial (@"(ab|a)b*c", RegexOptions.IgnoreCase, "ABC", "Pass. Group[0]=(0,3) Group[1]=(0,2)"),
300                         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)"),
301                         new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.IgnoreCase, "ALPHA", "Pass. Group[0]=(0,5)"),
302                         new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.IgnoreCase, "ABH", "Pass. Group[0]=(1,2) Group[1]="),
303                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "EFFGZ", "Pass. Group[0]=(0,5) Group[1]=(0,5) Group[2]="),
304                         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)"),
305                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "EFFG", "Fail."),
306                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "BCDD", "Fail."),
307                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.IgnoreCase, "REFFGZ", "Pass. Group[0]=(1,5) Group[1]=(1,5) Group[2]="),
308                         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)"),
309                         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)"),
310                         new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.IgnoreCase, "AA", "Fail."),
311                         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)"),
312                         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)"),
313                         new RegexTrial (@"(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))", RegexOptions.IgnoreCase, "A", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
314                         new RegexTrial (@"(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))", RegexOptions.IgnoreCase, "C", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
315                         new RegexTrial (@"multiple words of text", RegexOptions.IgnoreCase, "UH-UH", "Fail."),
316                         new RegexTrial (@"multiple words", RegexOptions.IgnoreCase, "MULTIPLE WORDS, YEAH", "Pass. Group[0]=(0,14)"),
317                         new RegexTrial (@"(.*)c(.*)", RegexOptions.IgnoreCase, "ABCDE", "Pass. Group[0]=(0,5) Group[1]=(0,2) Group[2]=(3,2)"),
318                         new RegexTrial (@"\((.*), (.*)\)", RegexOptions.IgnoreCase, "(A, B)", "Pass. Group[0]=(0,6) Group[1]=(1,1) Group[2]=(4,1)"),
319                         new RegexTrial (@"[k]", RegexOptions.IgnoreCase, "AB", "Fail."),
320                         new RegexTrial (@"abcd", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4)"),
321                         new RegexTrial (@"a(bc)d", RegexOptions.IgnoreCase, "ABCD", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
322                         new RegexTrial (@"a[-]?c", RegexOptions.IgnoreCase, "AC", "Pass. Group[0]=(0,2)"),
323                         new RegexTrial (@"(abc)\1", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
324                         new RegexTrial (@"([a-c]*)\1", RegexOptions.IgnoreCase, "ABCABC", "Pass. Group[0]=(0,6) Group[1]=(0,3)"),
325                         new RegexTrial (@"a(?!b).", RegexOptions.None, "abad", "Pass. Group[0]=(2,2)"),
326                         new RegexTrial (@"a(?=d).", RegexOptions.None, "abad", "Pass. Group[0]=(2,2)"),
327                         new RegexTrial (@"a(?=c|d).", RegexOptions.None, "abad", "Pass. Group[0]=(2,2)"),
328                         new RegexTrial (@"a(?:b|c|d)(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
329                         new RegexTrial (@"a(?:b|c|d)*(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
330                         new RegexTrial (@"a(?:b|c|d)+?(.)", RegexOptions.None, "ace", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
331                         new RegexTrial (@"a(?:b|c|d)+?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,3) Group[1]=(2,1)"),
332                         new RegexTrial (@"a(?:b|c|d)+(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
333                         new RegexTrial (@"a(?:b|c|d){2}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,4) Group[1]=(3,1)"),
334                         new RegexTrial (@"a(?:b|c|d){4,5}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,7) Group[1]=(6,1)"),
335                         new RegexTrial (@"a(?:b|c|d){4,5}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,6) Group[1]=(5,1)"),
336                         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)"),
337                         new RegexTrial (@":(?:", RegexOptions.None, "-", "Error."),
338                         new RegexTrial (@"a(?:b|c|d){6,7}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
339                         new RegexTrial (@"a(?:b|c|d){6,7}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
340                         new RegexTrial (@"a(?:b|c|d){5,6}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
341                         new RegexTrial (@"a(?:b|c|d){5,6}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,7) Group[1]=(6,1)"),
342                         new RegexTrial (@"a(?:b|c|d){5,7}(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,8) Group[1]=(7,1)"),
343                         new RegexTrial (@"a(?:b|c|d){5,7}?(.)", RegexOptions.None, "acdbcdbe", "Pass. Group[0]=(0,7) Group[1]=(6,1)"),
344                         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)"),
345                         new RegexTrial (@"^(.+)?B", RegexOptions.None, "AB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
346                         new RegexTrial (@"^([^a-z])|(\^)$", RegexOptions.None, ".", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]="),
347                         new RegexTrial (@"^[<>]&", RegexOptions.None, "<&OUT", "Pass. Group[0]=(0,2)"),
348                         new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,10) Group[1]=(0,1)(1,2)(3,3)(6,4)"),
349                         new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaa", "Fail."),
350                         new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaaaaaaa", "Fail."),
351                         new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaaa", "Pass. Group[0]=(0,10) Group[1]=(0,1)(1,2)(3,3)(6,4)"),
352                         new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaa", "Fail."),
353                         new RegexTrial (@"^(a(?(1)\1)){4}$", RegexOptions.None, "aaaaaaaaaaa", "Fail."),
354                         new RegexTrial (@"((a{4})+)", RegexOptions.None, "aaaaaaaaa", "Pass. Group[0]=(0,8) Group[1]=(0,8) Group[2]=(0,4)(4,4)"),
355                         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)"),
356                         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)"),
357                         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)"),
358                         new RegexTrial (@"(?<=a)b", RegexOptions.None, "ab", "Pass. Group[0]=(1,1)"),
359                         new RegexTrial (@"(?<=a)b", RegexOptions.None, "cb", "Fail."),
360                         new RegexTrial (@"(?<=a)b", RegexOptions.None, "b", "Fail."),
361                         new RegexTrial (@"(?<!c)b", RegexOptions.None, "ab", "Pass. Group[0]=(1,1)"),
362                         new RegexTrial (@"(?<!c)b", RegexOptions.None, "cb", "Fail."),
363                         new RegexTrial (@"(?<!c)b", RegexOptions.None, "b", "Pass. Group[0]=(0,1)"),
364                         new RegexTrial (@"(?<!c)b", RegexOptions.None, "b", "Pass. Group[0]=(0,1)"),
365                         new RegexTrial (@"(?<%)b", RegexOptions.None, "-", "Error."),
366                         new RegexTrial (@"(?:..)*a", RegexOptions.None, "aba", "Pass. Group[0]=(0,3)"),
367                         new RegexTrial (@"(?:..)*?a", RegexOptions.None, "aba", "Pass. Group[0]=(0,1)"),
368                         new RegexTrial (@"^(?:b|a(?=(.)))*\1", RegexOptions.None, "abc", "Pass. Group[0]=(0,2) Group[1]=(1,1)"),
369                         new RegexTrial (@"^(){3,5}", RegexOptions.None, "abc", "Pass. Group[0]=(0,0) Group[1]=(0,0)(0,0)(0,0)"),
370                         new RegexTrial (@"^(a+)*ax", RegexOptions.None, "aax", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
371                         new RegexTrial (@"^((a|b)+)*ax", RegexOptions.None, "aax", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(0,1)"),
372                         new RegexTrial (@"^((a|bc)+)*ax", RegexOptions.None, "aax", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(0,1)"),
373                         new RegexTrial (@"(a|x)*ab", RegexOptions.None, "cab", "Pass. Group[0]=(1,2) Group[1]="),
374                         new RegexTrial (@"(a)*ab", RegexOptions.None, "cab", "Pass. Group[0]=(1,2) Group[1]="),
375                         new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2)"),
376                         new RegexTrial (@"((?i)a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
377                         new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2)"),
378                         new RegexTrial (@"((?i)a)b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
379                         new RegexTrial (@"(?:(?i)a)b", RegexOptions.None, "aB", "Fail."),
380                         new RegexTrial (@"((?i)a)b", RegexOptions.None, "aB", "Fail."),
381                         new RegexTrial (@"(?i:a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2)"),
382                         new RegexTrial (@"((?i:a))b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
383                         new RegexTrial (@"(?i:a)b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2)"),
384                         new RegexTrial (@"((?i:a))b", RegexOptions.None, "Ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
385                         new RegexTrial (@"(?i:a)b", RegexOptions.None, "aB", "Fail."),
386                         new RegexTrial (@"((?i:a))b", RegexOptions.None, "aB", "Fail."),
387                         new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2)"),
388                         new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
389                         new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
390                         new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
391                         new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "Ab", "Fail."),
392                         new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "Ab", "Fail."),
393                         new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
394                         new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
395                         new RegexTrial (@"(?:(?-i)a)b", RegexOptions.IgnoreCase, "AB", "Fail."),
396                         new RegexTrial (@"((?-i)a)b", RegexOptions.IgnoreCase, "AB", "Fail."),
397                         new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2)"),
398                         new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
399                         new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
400                         new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
401                         new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "Ab", "Fail."),
402                         new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "Ab", "Fail."),
403                         new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2)"),
404                         new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "aB", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
405                         new RegexTrial (@"(?-i:a)b", RegexOptions.IgnoreCase, "AB", "Fail."),
406                         new RegexTrial (@"((?-i:a))b", RegexOptions.IgnoreCase, "AB", "Fail."),
407                         new RegexTrial (@"((?-i:a.))b", RegexOptions.IgnoreCase, "a\nB", "Fail."),
408                         new RegexTrial (@"((?s-i:a.))b", RegexOptions.IgnoreCase, "a\nB", "Pass. Group[0]=(0,3) Group[1]=(0,2)"),
409                         new RegexTrial (@"((?s-i:a.))b", RegexOptions.IgnoreCase, "B\nB", "Fail."),
410                         new RegexTrial (@"(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))", RegexOptions.None, "cabbbb", "Pass. Group[0]=(0,6)"),
411                         new RegexTrial (@"(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))", RegexOptions.None, "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "Pass. Group[0]=(0,41)"),
412                         new RegexTrial (@"(ab)\d\1", RegexOptions.IgnoreCase, "Ab4ab", "Pass. Group[0]=(0,5) Group[1]=(0,2)"),
413                         new RegexTrial (@"(ab)\d\1", RegexOptions.IgnoreCase, "ab4Ab", "Pass. Group[0]=(0,5) Group[1]=(0,2)"),
414                         new RegexTrial (@"foo\w*\d{4}baz", RegexOptions.None, "foobar1234baz", "Pass. Group[0]=(0,13)"),
415                         new RegexTrial (@"x(~~)*(?:(?:F)?)?", RegexOptions.None, "x~~", "Pass. Group[0]=(0,3) Group[1]=(1,2)"),
416                         new RegexTrial (@"^a(?#xxx){3}c", RegexOptions.None, "aaac", "Pass. Group[0]=(0,4)"),
417                         new RegexTrial (@"(?<![cd])b", RegexOptions.None, "dbcb", "Fail."),
418                         new RegexTrial (@"(?<![cd])[ab]", RegexOptions.None, "dbaacb", "Pass. Group[0]=(2,1)"),
419                         new RegexTrial (@"(?<!(c|d))b", RegexOptions.None, "dbcb", "Fail."),
420                         new RegexTrial (@"(?<!(c|d))[ab]", RegexOptions.None, "dbaacb", "Pass. Group[0]=(2,1) Group[1]="),
421                         new RegexTrial (@"(?<!cd)[ab]", RegexOptions.None, "cdaccb", "Pass. Group[0]=(5,1)"),
422                         new RegexTrial (@"^(?:a?b?)*$", RegexOptions.None, "a--", "Fail."),
423                         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)"),
424                         new RegexTrial (@"((?m)^b$)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
425                         new RegexTrial (@"(?m)^b", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(2,1)"),
426                         new RegexTrial (@"(?m)^(b)", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
427                         new RegexTrial (@"((?m)^b)", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
428                         new RegexTrial (@"\n((?m)^b)", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(1,2) Group[1]=(2,1)"),
429                         new RegexTrial (@"((?s).)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(3,2) Group[1]=(3,1)"),
430                         new RegexTrial (@"((?s).)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(3,2) Group[1]=(3,1)"),
431                         new RegexTrial (@"((?s)b.)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
432                         new RegexTrial (@"((?s)b.)c(?!.)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
433                         new RegexTrial (@"^b", RegexOptions.None, "a\nb\nc\n", "Fail."),
434                         new RegexTrial (@"()^b", RegexOptions.None, "a\nb\nc\n", "Fail."),
435                         new RegexTrial (@"((?m)^b)", RegexOptions.None, "a\nb\nc\n", "Pass. Group[0]=(2,1) Group[1]=(2,1)"),
436                         new RegexTrial (@"(x)?(?(1)a|b)", RegexOptions.None, "a", "Fail."),
437                         new RegexTrial (@"(x)?(?(1)b|a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]="),
438                         new RegexTrial (@"()?(?(1)b|a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]="),
439                         new RegexTrial (@"()(?(1)b|a)", RegexOptions.None, "a", "Fail."),
440                         new RegexTrial (@"()?(?(1)a|b)", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]=(0,0)"),
441                         new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "(blah)", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(5,1)"),
442                         new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "blah", "Pass. Group[0]=(0,4) Group[1]= Group[2]="),
443                         new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "blah)", "Fail."),
444                         new RegexTrial (@"^(\()?blah(?(1)(\)))$", RegexOptions.None, "(blah", "Fail."),
445                         new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "(blah)", "Pass. Group[0]=(0,6) Group[1]=(0,1) Group[2]=(5,1)"),
446                         new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "blah", "Pass. Group[0]=(0,4) Group[1]= Group[2]="),
447                         new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "blah)", "Fail."),
448                         new RegexTrial (@"^(\(+)?blah(?(1)(\)))$", RegexOptions.None, "(blah", "Fail."),
449                         new RegexTrial (@"(?(1)a|b|c)", RegexOptions.None, "a", "Error."),
450                         new RegexTrial (@"(?(?!a)a|b)", RegexOptions.None, "a", "Fail."),
451                         new RegexTrial (@"(?(?!a)b|a)", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
452                         new RegexTrial (@"(?(?=a)b|a)", RegexOptions.None, "a", "Fail."),
453                         new RegexTrial (@"(?(?=a)a|b)", RegexOptions.None, "a", "Pass. Group[0]=(0,1)"),
454                         new RegexTrial (@"(?=(a+?))(\1ab)", RegexOptions.None, "aaab", "Pass. Group[0]=(1,3) Group[1]=(1,1) Group[2]=(1,3)"),
455                         new RegexTrial (@"^(?=(a+?))\1ab", RegexOptions.None, "aaab", "Fail."),
456                         new RegexTrial (@"(\w+:)+", RegexOptions.None, "one:", "Pass. Group[0]=(0,4) Group[1]=(0,4)"),
457                         new RegexTrial (@"$(?<=^(a))", RegexOptions.None, "a", "Pass. Group[0]=(1,0) Group[1]=(0,1)"),
458                         new RegexTrial (@"(?=(a+?))(\1ab)", RegexOptions.None, "aaab", "Pass. Group[0]=(1,3) Group[1]=(1,1) Group[2]=(1,3)"),
459                         new RegexTrial (@"^(?=(a+?))\1ab", RegexOptions.None, "aaab", "Fail."),
460                         new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd:", "Fail."),
461                         new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]= Group[2]=(0,4)"),
462                         new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "xy:z:::abcd", "Pass. Group[0]=(0,11) Group[1]=(0,7) Group[2]=(7,4)"),
463                         new RegexTrial (@"^[^bcd]*(c+)", RegexOptions.None, "aexycd", "Pass. Group[0]=(0,5) Group[1]=(4,1)"),
464                         new RegexTrial (@"(a*)b+", RegexOptions.None, "caab", "Pass. Group[0]=(1,3) Group[1]=(1,2)"),
465                         new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd:", "Fail."),
466                         new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "abcd", "Pass. Group[0]=(0,4) Group[1]= Group[2]=(0,4)"),
467                         new RegexTrial (@"([\w:]+::)?(\w+)$", RegexOptions.None, "xy:z:::abcd", "Pass. Group[0]=(0,11) Group[1]=(0,7) Group[2]=(7,4)"),
468                         new RegexTrial (@"^[^bcd]*(c+)", RegexOptions.None, "aexycd", "Pass. Group[0]=(0,5) Group[1]=(4,1)"),
469                         new RegexTrial (@"(>a+)ab", RegexOptions.None, "aaab", "Fail."),
470                         new RegexTrial (@"(?>a+)b", RegexOptions.None, "aaab", "Pass. Group[0]=(0,4)"),
471                         new RegexTrial (@"([[:]+)", RegexOptions.None, "a:[b]:", "Pass. Group[0]=(1,2) Group[1]=(1,2)"),
472                         new RegexTrial (@"([[=]+)", RegexOptions.None, "a=[b]=", "Pass. Group[0]=(1,2) Group[1]=(1,2)"),
473                         new RegexTrial (@"([[.]+)", RegexOptions.None, "a.[b].", "Pass. Group[0]=(1,2) Group[1]=(1,2)"),
474                         new RegexTrial (@"[a[:]b[:c]", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
475                         new RegexTrial (@"[a[:]b[:c]", RegexOptions.None, "abc", "Pass. Group[0]=(0,3)"),
476                         new RegexTrial (@"((?>a+)b)", RegexOptions.None, "aaab", "Pass. Group[0]=(0,4) Group[1]=(0,4)"),
477                         new RegexTrial (@"(?>(a+))b", RegexOptions.None, "aaab", "Pass. Group[0]=(0,4) Group[1]=(0,3)"),
478                         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)"),
479                         new RegexTrial (@"(?<=x+)", RegexOptions.None, "xxxxy", "Pass. Group[0]=(1,0)"),
480                         new RegexTrial (@"a{37,17}", RegexOptions.None, "-", "Error."),
481                         new RegexTrial (@"\Z", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(3,0)"),
482                         new RegexTrial (@"\z", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(4,0)"),
483                         new RegexTrial (@"$", RegexOptions.None, "a\nb\n", "Pass. Group[0]=(3,0)"),
484                         new RegexTrial (@"\Z", RegexOptions.None, "b\na\n", "Pass. Group[0]=(3,0)"),
485                         new RegexTrial (@"\z", RegexOptions.None, "b\na\n", "Pass. Group[0]=(4,0)"),
486                         new RegexTrial (@"$", RegexOptions.None, "b\na\n", "Pass. Group[0]=(3,0)"),
487                         new RegexTrial (@"\Z", RegexOptions.None, "b\na", "Pass. Group[0]=(3,0)"),
488                         new RegexTrial (@"\z", RegexOptions.None, "b\na", "Pass. Group[0]=(3,0)"),
489                         new RegexTrial (@"$", RegexOptions.None, "b\na", "Pass. Group[0]=(3,0)"),
490                         new RegexTrial (@"\Z", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(3,0)"),
491                         new RegexTrial (@"\z", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(4,0)"),
492                         new RegexTrial (@"$", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(1,0)"),
493                         new RegexTrial (@"\Z", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(3,0)"),
494                         new RegexTrial (@"\z", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(4,0)"),
495                         new RegexTrial (@"$", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(1,0)"),
496                         new RegexTrial (@"\Z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(3,0)"),
497                         new RegexTrial (@"\z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(3,0)"),
498                         new RegexTrial (@"$", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(1,0)"),
499                         new RegexTrial (@"a\Z", RegexOptions.None, "a\nb\n", "Fail."),
500                         new RegexTrial (@"a\z", RegexOptions.None, "a\nb\n", "Fail."),
501                         new RegexTrial (@"a$", RegexOptions.None, "a\nb\n", "Fail."),
502                         new RegexTrial (@"a\Z", RegexOptions.None, "b\na\n", "Pass. Group[0]=(2,1)"),
503                         new RegexTrial (@"a\z", RegexOptions.None, "b\na\n", "Fail."),
504                         new RegexTrial (@"a$", RegexOptions.None, "b\na\n", "Pass. Group[0]=(2,1)"),
505                         new RegexTrial (@"a\Z", RegexOptions.None, "b\na", "Pass. Group[0]=(2,1)"),
506                         new RegexTrial (@"a\z", RegexOptions.None, "b\na", "Pass. Group[0]=(2,1)"),
507                         new RegexTrial (@"a$", RegexOptions.None, "b\na", "Pass. Group[0]=(2,1)"),
508                         new RegexTrial (@"a\z", RegexOptions.Multiline, "a\nb\n", "Fail."),
509                         new RegexTrial (@"a$", RegexOptions.Multiline, "a\nb\n", "Pass. Group[0]=(0,1)"),
510                         new RegexTrial (@"a\Z", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(2,1)"),
511                         new RegexTrial (@"a\z", RegexOptions.Multiline, "b\na\n", "Fail."),
512                         new RegexTrial (@"a$", RegexOptions.Multiline, "b\na\n", "Pass. Group[0]=(2,1)"),
513                         new RegexTrial (@"a\Z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(2,1)"),
514                         new RegexTrial (@"a\z", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(2,1)"),
515                         new RegexTrial (@"a$", RegexOptions.Multiline, "b\na", "Pass. Group[0]=(2,1)"),
516                         new RegexTrial (@"aa\Z", RegexOptions.None, "aa\nb\n", "Fail."),
517                         new RegexTrial (@"aa\z", RegexOptions.None, "aa\nb\n", "Fail."),
518                         new RegexTrial (@"aa$", RegexOptions.None, "aa\nb\n", "Fail."),
519                         new RegexTrial (@"aa\Z", RegexOptions.None, "b\naa\n", "Pass. Group[0]=(2,2)"),
520                         new RegexTrial (@"aa\z", RegexOptions.None, "b\naa\n", "Fail."),
521                         new RegexTrial (@"aa$", RegexOptions.None, "b\naa\n", "Pass. Group[0]=(2,2)"),
522                         new RegexTrial (@"aa\Z", RegexOptions.None, "b\naa", "Pass. Group[0]=(2,2)"),
523                         new RegexTrial (@"aa\z", RegexOptions.None, "b\naa", "Pass. Group[0]=(2,2)"),
524                         new RegexTrial (@"aa$", RegexOptions.None, "b\naa", "Pass. Group[0]=(2,2)"),
525                         new RegexTrial (@"aa\z", RegexOptions.Multiline, "aa\nb\n", "Fail."),
526                         new RegexTrial (@"aa$", RegexOptions.Multiline, "aa\nb\n", "Pass. Group[0]=(0,2)"),
527                         new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\naa\n", "Pass. Group[0]=(2,2)"),
528                         new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\naa\n", "Fail."),
529                         new RegexTrial (@"aa$", RegexOptions.Multiline, "b\naa\n", "Pass. Group[0]=(2,2)"),
530                         new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\naa", "Pass. Group[0]=(2,2)"),
531                         new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\naa", "Pass. Group[0]=(2,2)"),
532                         new RegexTrial (@"aa$", RegexOptions.Multiline, "b\naa", "Pass. Group[0]=(2,2)"),
533                         new RegexTrial (@"aa\Z", RegexOptions.None, "ac\nb\n", "Fail."),
534                         new RegexTrial (@"aa\z", RegexOptions.None, "ac\nb\n", "Fail."),
535                         new RegexTrial (@"aa$", RegexOptions.None, "ac\nb\n", "Fail."),
536                         new RegexTrial (@"aa\Z", RegexOptions.None, "b\nac\n", "Fail."),
537                         new RegexTrial (@"aa\z", RegexOptions.None, "b\nac\n", "Fail."),
538                         new RegexTrial (@"aa$", RegexOptions.None, "b\nac\n", "Fail."),
539                         new RegexTrial (@"aa\Z", RegexOptions.None, "b\nac", "Fail."),
540                         new RegexTrial (@"aa\z", RegexOptions.None, "b\nac", "Fail."),
541                         new RegexTrial (@"aa$", RegexOptions.None, "b\nac", "Fail."),
542                         new RegexTrial (@"aa\Z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
543                         new RegexTrial (@"aa\z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
544                         new RegexTrial (@"aa$", RegexOptions.Multiline, "ac\nb\n", "Fail."),
545                         new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nac\n", "Fail."),
546                         new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nac\n", "Fail."),
547                         new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nac\n", "Fail."),
548                         new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nac", "Fail."),
549                         new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nac", "Fail."),
550                         new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nac", "Fail."),
551                         new RegexTrial (@"aa\Z", RegexOptions.None, "ca\nb\n", "Fail."),
552                         new RegexTrial (@"aa\z", RegexOptions.None, "ca\nb\n", "Fail."),
553                         new RegexTrial (@"aa$", RegexOptions.None, "ca\nb\n", "Fail."),
554                         new RegexTrial (@"aa\Z", RegexOptions.None, "b\nca\n", "Fail."),
555                         new RegexTrial (@"aa\z", RegexOptions.None, "b\nca\n", "Fail."),
556                         new RegexTrial (@"aa$", RegexOptions.None, "b\nca\n", "Fail."),
557                         new RegexTrial (@"aa\Z", RegexOptions.None, "b\nca", "Fail."),
558                         new RegexTrial (@"aa\z", RegexOptions.None, "b\nca", "Fail."),
559                         new RegexTrial (@"aa$", RegexOptions.None, "b\nca", "Fail."),
560                         new RegexTrial (@"aa\Z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
561                         new RegexTrial (@"aa\z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
562                         new RegexTrial (@"aa$", RegexOptions.Multiline, "ca\nb\n", "Fail."),
563                         new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nca\n", "Fail."),
564                         new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nca\n", "Fail."),
565                         new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nca\n", "Fail."),
566                         new RegexTrial (@"aa\Z", RegexOptions.Multiline, "b\nca", "Fail."),
567                         new RegexTrial (@"aa\z", RegexOptions.Multiline, "b\nca", "Fail."),
568                         new RegexTrial (@"aa$", RegexOptions.Multiline, "b\nca", "Fail."),
569                         new RegexTrial (@"ab\Z", RegexOptions.None, "ab\nb\n", "Fail."),
570                         new RegexTrial (@"ab\z", RegexOptions.None, "ab\nb\n", "Fail."),
571                         new RegexTrial (@"ab$", RegexOptions.None, "ab\nb\n", "Fail."),
572                         new RegexTrial (@"ab\Z", RegexOptions.None, "b\nab\n", "Pass. Group[0]=(2,2)"),
573                         new RegexTrial (@"ab\z", RegexOptions.None, "b\nab\n", "Fail."),
574                         new RegexTrial (@"ab$", RegexOptions.None, "b\nab\n", "Pass. Group[0]=(2,2)"),
575                         new RegexTrial (@"ab\Z", RegexOptions.None, "b\nab", "Pass. Group[0]=(2,2)"),
576                         new RegexTrial (@"ab\z", RegexOptions.None, "b\nab", "Pass. Group[0]=(2,2)"),
577                         new RegexTrial (@"ab$", RegexOptions.None, "b\nab", "Pass. Group[0]=(2,2)"),
578                         new RegexTrial (@"ab\z", RegexOptions.Multiline, "ab\nb\n", "Fail."),
579                         new RegexTrial (@"ab$", RegexOptions.Multiline, "ab\nb\n", "Pass. Group[0]=(0,2)"),
580                         new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nab\n", "Pass. Group[0]=(2,2)"),
581                         new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nab\n", "Fail."),
582                         new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nab\n", "Pass. Group[0]=(2,2)"),
583                         new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nab", "Pass. Group[0]=(2,2)"),
584                         new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nab", "Pass. Group[0]=(2,2)"),
585                         new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nab", "Pass. Group[0]=(2,2)"),
586                         new RegexTrial (@"ab\Z", RegexOptions.None, "ac\nb\n", "Fail."),
587                         new RegexTrial (@"ab\z", RegexOptions.None, "ac\nb\n", "Fail."),
588                         new RegexTrial (@"ab$", RegexOptions.None, "ac\nb\n", "Fail."),
589                         new RegexTrial (@"ab\Z", RegexOptions.None, "b\nac\n", "Fail."),
590                         new RegexTrial (@"ab\z", RegexOptions.None, "b\nac\n", "Fail."),
591                         new RegexTrial (@"ab$", RegexOptions.None, "b\nac\n", "Fail."),
592                         new RegexTrial (@"ab\Z", RegexOptions.None, "b\nac", "Fail."),
593                         new RegexTrial (@"ab\z", RegexOptions.None, "b\nac", "Fail."),
594                         new RegexTrial (@"ab$", RegexOptions.None, "b\nac", "Fail."),
595                         new RegexTrial (@"ab\Z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
596                         new RegexTrial (@"ab\z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
597                         new RegexTrial (@"ab$", RegexOptions.Multiline, "ac\nb\n", "Fail."),
598                         new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nac\n", "Fail."),
599                         new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nac\n", "Fail."),
600                         new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nac\n", "Fail."),
601                         new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nac", "Fail."),
602                         new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nac", "Fail."),
603                         new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nac", "Fail."),
604                         new RegexTrial (@"ab\Z", RegexOptions.None, "ca\nb\n", "Fail."),
605                         new RegexTrial (@"ab\z", RegexOptions.None, "ca\nb\n", "Fail."),
606                         new RegexTrial (@"ab$", RegexOptions.None, "ca\nb\n", "Fail."),
607                         new RegexTrial (@"ab\Z", RegexOptions.None, "b\nca\n", "Fail."),
608                         new RegexTrial (@"ab\z", RegexOptions.None, "b\nca\n", "Fail."),
609                         new RegexTrial (@"ab$", RegexOptions.None, "b\nca\n", "Fail."),
610                         new RegexTrial (@"ab\Z", RegexOptions.None, "b\nca", "Fail."),
611                         new RegexTrial (@"ab\z", RegexOptions.None, "b\nca", "Fail."),
612                         new RegexTrial (@"ab$", RegexOptions.None, "b\nca", "Fail."),
613                         new RegexTrial (@"ab\Z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
614                         new RegexTrial (@"ab\z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
615                         new RegexTrial (@"ab$", RegexOptions.Multiline, "ca\nb\n", "Fail."),
616                         new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nca\n", "Fail."),
617                         new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nca\n", "Fail."),
618                         new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nca\n", "Fail."),
619                         new RegexTrial (@"ab\Z", RegexOptions.Multiline, "b\nca", "Fail."),
620                         new RegexTrial (@"ab\z", RegexOptions.Multiline, "b\nca", "Fail."),
621                         new RegexTrial (@"ab$", RegexOptions.Multiline, "b\nca", "Fail."),
622                         new RegexTrial (@"abb\Z", RegexOptions.None, "abb\nb\n", "Fail."),
623                         new RegexTrial (@"abb\z", RegexOptions.None, "abb\nb\n", "Fail."),
624                         new RegexTrial (@"abb$", RegexOptions.None, "abb\nb\n", "Fail."),
625                         new RegexTrial (@"abb\Z", RegexOptions.None, "b\nabb\n", "Pass. Group[0]=(2,3)"),
626                         new RegexTrial (@"abb\z", RegexOptions.None, "b\nabb\n", "Fail."),
627                         new RegexTrial (@"abb$", RegexOptions.None, "b\nabb\n", "Pass. Group[0]=(2,3)"),
628                         new RegexTrial (@"abb\Z", RegexOptions.None, "b\nabb", "Pass. Group[0]=(2,3)"),
629                         new RegexTrial (@"abb\z", RegexOptions.None, "b\nabb", "Pass. Group[0]=(2,3)"),
630                         new RegexTrial (@"abb$", RegexOptions.None, "b\nabb", "Pass. Group[0]=(2,3)"),
631                         new RegexTrial (@"abb\z", RegexOptions.Multiline, "abb\nb\n", "Fail."),
632                         new RegexTrial (@"abb$", RegexOptions.Multiline, "abb\nb\n", "Pass. Group[0]=(0,3)"),
633                         new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nabb\n", "Pass. Group[0]=(2,3)"),
634                         new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nabb\n", "Fail."),
635                         new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nabb\n", "Pass. Group[0]=(2,3)"),
636                         new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nabb", "Pass. Group[0]=(2,3)"),
637                         new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nabb", "Pass. Group[0]=(2,3)"),
638                         new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nabb", "Pass. Group[0]=(2,3)"),
639                         new RegexTrial (@"abb\Z", RegexOptions.None, "ac\nb\n", "Fail."),
640                         new RegexTrial (@"abb\z", RegexOptions.None, "ac\nb\n", "Fail."),
641                         new RegexTrial (@"abb$", RegexOptions.None, "ac\nb\n", "Fail."),
642                         new RegexTrial (@"abb\Z", RegexOptions.None, "b\nac\n", "Fail."),
643                         new RegexTrial (@"abb\z", RegexOptions.None, "b\nac\n", "Fail."),
644                         new RegexTrial (@"abb$", RegexOptions.None, "b\nac\n", "Fail."),
645                         new RegexTrial (@"abb\Z", RegexOptions.None, "b\nac", "Fail."),
646                         new RegexTrial (@"abb\z", RegexOptions.None, "b\nac", "Fail."),
647                         new RegexTrial (@"abb$", RegexOptions.None, "b\nac", "Fail."),
648                         new RegexTrial (@"abb\Z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
649                         new RegexTrial (@"abb\z", RegexOptions.Multiline, "ac\nb\n", "Fail."),
650                         new RegexTrial (@"abb$", RegexOptions.Multiline, "ac\nb\n", "Fail."),
651                         new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nac\n", "Fail."),
652                         new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nac\n", "Fail."),
653                         new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nac\n", "Fail."),
654                         new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nac", "Fail."),
655                         new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nac", "Fail."),
656                         new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nac", "Fail."),
657                         new RegexTrial (@"abb\Z", RegexOptions.None, "ca\nb\n", "Fail."),
658                         new RegexTrial (@"abb\z", RegexOptions.None, "ca\nb\n", "Fail."),
659                         new RegexTrial (@"abb$", RegexOptions.None, "ca\nb\n", "Fail."),
660                         new RegexTrial (@"abb\Z", RegexOptions.None, "b\nca\n", "Fail."),
661                         new RegexTrial (@"abb\z", RegexOptions.None, "b\nca\n", "Fail."),
662                         new RegexTrial (@"abb$", RegexOptions.None, "b\nca\n", "Fail."),
663                         new RegexTrial (@"abb\Z", RegexOptions.None, "b\nca", "Fail."),
664                         new RegexTrial (@"abb\z", RegexOptions.None, "b\nca", "Fail."),
665                         new RegexTrial (@"abb$", RegexOptions.None, "b\nca", "Fail."),
666                         new RegexTrial (@"abb\Z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
667                         new RegexTrial (@"abb\z", RegexOptions.Multiline, "ca\nb\n", "Fail."),
668                         new RegexTrial (@"abb$", RegexOptions.Multiline, "ca\nb\n", "Fail."),
669                         new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nca\n", "Fail."),
670                         new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nca\n", "Fail."),
671                         new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nca\n", "Fail."),
672                         new RegexTrial (@"abb\Z", RegexOptions.Multiline, "b\nca", "Fail."),
673                         new RegexTrial (@"abb\z", RegexOptions.Multiline, "b\nca", "Fail."),
674                         new RegexTrial (@"abb$", RegexOptions.Multiline, "b\nca", "Fail."),
675                         new RegexTrial (@"(^|x)(c)", RegexOptions.None, "ca", "Pass. Group[0]=(0,1) Group[1]=(0,0) Group[2]=(0,1)"),
676                         new RegexTrial (@"a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz", RegexOptions.None, "x", "Fail."),
677                         new RegexTrial (@"round\(((?>[^()]+))\)", RegexOptions.None, "_I(round(xs * sz),1)", "Pass. Group[0]=(3,14) Group[1]=(9,7)"),
678                         new RegexTrial (@"foo.bart", RegexOptions.None, "foo.bart", "Pass. Group[0]=(0,8)"),
679                         new RegexTrial (@"^d[x][x][x]", RegexOptions.Multiline, "abcd\ndxxx", "Pass. Group[0]=(5,4)"),
680                         new RegexTrial (@".X(.+)+X", RegexOptions.None, "bbbbXcXaaaaaaaa", "Pass. Group[0]=(3,4) Group[1]=(5,1)"),
681                         new RegexTrial (@".X(.+)+XX", RegexOptions.None, "bbbbXcXXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(5,1)"),
682                         new RegexTrial (@".XX(.+)+X", RegexOptions.None, "bbbbXXcXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(6,1)"),
683                         new RegexTrial (@".X(.+)+X", RegexOptions.None, "bbbbXXaaaaaaaaa", "Fail."),
684                         new RegexTrial (@".X(.+)+XX", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
685                         new RegexTrial (@".XX(.+)+X", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
686                         new RegexTrial (@".X(.+)+[X]", RegexOptions.None, "bbbbXcXaaaaaaaa", "Pass. Group[0]=(3,4) Group[1]=(5,1)"),
687                         new RegexTrial (@".X(.+)+[X][X]", RegexOptions.None, "bbbbXcXXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(5,1)"),
688                         new RegexTrial (@".XX(.+)+[X]", RegexOptions.None, "bbbbXXcXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(6,1)"),
689                         new RegexTrial (@".X(.+)+[X]", RegexOptions.None, "bbbbXXaaaaaaaaa", "Fail."),
690                         new RegexTrial (@".X(.+)+[X][X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
691                         new RegexTrial (@".XX(.+)+[X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
692                         new RegexTrial (@".[X](.+)+[X]", RegexOptions.None, "bbbbXcXaaaaaaaa", "Pass. Group[0]=(3,4) Group[1]=(5,1)"),
693                         new RegexTrial (@".[X](.+)+[X][X]", RegexOptions.None, "bbbbXcXXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(5,1)"),
694                         new RegexTrial (@".[X][X](.+)+[X]", RegexOptions.None, "bbbbXXcXaaaaaaaa", "Pass. Group[0]=(3,5) Group[1]=(6,1)"),
695                         new RegexTrial (@".[X](.+)+[X]", RegexOptions.None, "bbbbXXaaaaaaaaa", "Fail."),
696                         new RegexTrial (@".[X](.+)+[X][X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
697                         new RegexTrial (@".[X][X](.+)+[X]", RegexOptions.None, "bbbbXXXaaaaaaaaa", "Fail."),
698                         new RegexTrial (@"tt+$", RegexOptions.None, "xxxtt", "Pass. Group[0]=(3,2)"),
699                         new RegexTrial (@"([\d-z]+)", RegexOptions.None, "a0-za", "Pass. Group[0]=(1,3) Group[1]=(1,3)"),
700                         new RegexTrial (@"([\d-\s]+)", RegexOptions.None, "a0- z", "Pass. Group[0]=(1,3) Group[1]=(1,3)"),
701                         new RegexTrial (@"\GX.*X", RegexOptions.None, "aaaXbX", "Fail."),
702                         new RegexTrial (@"(\d+\.\d+)", RegexOptions.None, "3.1415926", "Pass. Group[0]=(0,9) Group[1]=(0,9)"),
703                         new RegexTrial (@"(\ba.{0,10}br)", RegexOptions.None, "have a web browser", "Pass. Group[0]=(5,8) Group[1]=(5,8)"),
704                         new RegexTrial (@"\.c(pp|xx|c)?$", RegexOptions.IgnoreCase, "Changes", "Fail."),
705                         new RegexTrial (@"\.c(pp|xx|c)?$", RegexOptions.IgnoreCase, "IO.c", "Pass. Group[0]=(2,2) Group[1]="),
706                         new RegexTrial (@"(\.c(pp|xx|c)?$)", RegexOptions.IgnoreCase, "IO.c", "Pass. Group[0]=(2,2) Group[1]=(2,2) Group[2]="),
707                         new RegexTrial (@"^([a-z]:)", RegexOptions.None, "C:/", "Fail."),
708                         new RegexTrial (@"^\S\s+aa$", RegexOptions.Multiline, "\nx aa", "Pass. Group[0]=(1,4)"),
709                         new RegexTrial (@"(^|a)b", RegexOptions.None, "ab", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
710                         new RegexTrial (@"^([ab]*?)(b)?(c)$", RegexOptions.None, "abac", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]= Group[3]=(3,1)"),
711                         new RegexTrial (@"(\w)?(abc)\1b", RegexOptions.None, "abcab", "Fail."),
712                         new RegexTrial (@"^(?:.,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5)"),
713                         new RegexTrial (@"^(.,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5) Group[1]=(0,2)(2,2)"),
714                         new RegexTrial (@"^(?:[^,]*,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5)"),
715                         new RegexTrial (@"^([^,]*,){2}c", RegexOptions.None, "a,b,c", "Pass. Group[0]=(0,5) Group[1]=(0,2)(2,2)"),
716                         new RegexTrial (@"^([^,]*,){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
717                         new RegexTrial (@"^([^,]*,){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
718                         new RegexTrial (@"^([^,]*,){0,3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
719                         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)"),
720                         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)"),
721                         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)"),
722                         new RegexTrial (@"^([^,]{1,},){3}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
723                         new RegexTrial (@"^([^,]{1,},){3,}d", RegexOptions.None, "aaa,b,c,d", "Pass. Group[0]=(0,9) Group[1]=(0,4)(4,2)(6,2)"),
724                         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)"),
725                         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)"),
726                         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)"),
727                         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)"),
728                         new RegexTrial (@"(?i)", RegexOptions.None, "", "Pass. Group[0]=(0,0)"),
729                         new RegexTrial (@"(?!\A)x", RegexOptions.Multiline, "a\nxb\n", "Pass. Group[0]=(2,1)"),
730                         new RegexTrial (@"^(a(b)?)+$", RegexOptions.None, "aba", "Pass. Group[0]=(0,3) Group[1]=(0,2)(2,1) Group[2]=(1,1)"),
731                         new RegexTrial (@"^(aa(bb)?)+$", RegexOptions.None, "aabbaa", "Pass. Group[0]=(0,6) Group[1]=(0,4)(4,2) Group[2]=(2,2)"),
732                         new RegexTrial (@"^.{9}abc.*\n", RegexOptions.Multiline, "123\nabcabcabcabc\n", "Pass. Group[0]=(4,13)"),
733                         new RegexTrial (@"^(a)?a$", RegexOptions.None, "a", "Pass. Group[0]=(0,1) Group[1]="),
734                         new RegexTrial (@"^(a)?(?(1)a|b)+$", RegexOptions.None, "a", "Fail."),
735                         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)"),
736                         new RegexTrial (@"^(a\1?){4}$", RegexOptions.None, "aaaaaa", "Pass. Group[0]=(0,6) Group[1]=(0,1)(1,2)(3,1)(4,2)"),
737                         new RegexTrial (@"^(0+)?(?:x(1))?", RegexOptions.None, "x1", "Pass. Group[0]=(0,2) Group[1]= Group[2]=(1,1)"),
738                         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)"),
739                         new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.None, "bbbac", "Pass. Group[0]=(0,5) Group[1]=(0,3)(3,1)"),
740                         new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.None, "bbbbac", "Pass. Group[0]=(0,6) Group[1]=(0,4)(4,1)"),
741                         new RegexTrial (@"\((\w\. \w+)\)", RegexOptions.None, "cd. (A. Tw)", "Pass. Group[0]=(4,7) Group[1]=(5,5)"),
742                         new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.None, "aaaacccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
743                         new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.None, "bbbbcccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
744                         
745                         new RegexTrial (@"^(foo)|(bar)$", RegexOptions.None, "foobar", "Pass. Group[0]=(0,3) Group[1]=(0,3) Group[2]="),
746                         new RegexTrial (@"^(foo)|(bar)$", RegexOptions.RightToLeft, "foobar", "Pass. Group[0]=(3,3) Group[1]= Group[2]=(3,3)"),
747
748                         new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
749                         new RegexTrial (@"bab", RegexOptions.RightToLeft, "babababaa", "Pass. Group[0]=(4,3)"),
750                         new RegexTrial (@"abb", RegexOptions.RightToLeft , "abb", "Pass. Group[0]=(0,3)"),
751                                                                                                 
752             new RegexTrial (@"b$", RegexOptions.RightToLeft | RegexOptions.Multiline, "aab\naab", "Pass. Group[0]=(6,1)"),
753             new RegexTrial (@"^a", RegexOptions.RightToLeft | RegexOptions.Multiline, "aab\naab", "Pass. Group[0]=(4,1)"),
754             new RegexTrial (@"^aaab", RegexOptions.RightToLeft | RegexOptions.Multiline, "aaab\naab", "Pass. Group[0]=(0,4)"),
755             new RegexTrial (@"abb{2}", RegexOptions.RightToLeft , "abbb", "Pass. Group[0]=(0,4)"),
756             new RegexTrial (@"abb{1,2}", RegexOptions.RightToLeft , "abbb", "Pass. Group[0]=(0,4)"),
757             
758             new RegexTrial (@"abb{1,2}", RegexOptions.RightToLeft , "abbbbbaaaa", "Pass. Group[0]=(0,4)"),
759             new RegexTrial (@"\Ab", RegexOptions.RightToLeft, "bab\naaa", "Pass. Group[0]=(0,1)"),
760             new RegexTrial (@"\Abab$", RegexOptions.RightToLeft, "bab", "Pass. Group[0]=(0,3)"),
761             new RegexTrial (@"b\Z", RegexOptions.RightToLeft, "bab\naaa", "Fail."),
762             new RegexTrial (@"b\Z", RegexOptions.RightToLeft, "babaaab", "Pass. Group[0]=(6,1)"),
763             new RegexTrial (@"b\z", RegexOptions.RightToLeft, "babaaa", "Fail."),
764             new RegexTrial (@"b\z", RegexOptions.RightToLeft, "babaaab", "Pass. Group[0]=(6,1)"),
765                         new RegexTrial (@"a\G", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(5,1)"),
766                         new RegexTrial (@"\Abaaa\G", RegexOptions.RightToLeft, "baaa", "Pass. Group[0]=(0,4)"),
767 //                      new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
768 //                      new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
769 //                      new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
770 //                      new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)"),
771
772                         new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaa c aaa c a", "Pass. Group[0]=(10,1)"),
773                         new RegexTrial (@"\bc", RegexOptions.RightToLeft, "c aaa c", "Pass. Group[0]=(6,1)"),
774                         new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaa ac", "Fail."),
775                         new RegexTrial (@"\bc", RegexOptions.RightToLeft, "c aaa", "Pass. Group[0]=(0,1)"),
776                         new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaacaaa", "Fail."),
777                         new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaac aaa", "Fail."),
778                         new RegexTrial (@"\bc", RegexOptions.RightToLeft, "aaa ca caaa", "Pass. Group[0]=(7,1)"),
779                         
780                         new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "ac aaa ac", "Pass. Group[0]=(8,1)"),
781                         new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaa c", "Fail."),
782                         new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "ca aaa", "Fail."),
783                         new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaa c aaa", "Fail."),
784                         new RegexTrial (@"\Bc", RegexOptions.RightToLeft, " acaca ", "Pass. Group[0]=(4,1)"),
785                         new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaac aaac", "Pass. Group[0]=(8,1)"),
786                         new RegexTrial (@"\Bc", RegexOptions.RightToLeft, "aaa caaa", "Fail."),
787                                 
788                         new RegexTrial (@"b(a?)b", RegexOptions.RightToLeft, "aabababbaaababa", "Pass. Group[0]=(11,3) Group[1]=(12,1)"),
789                         new RegexTrial (@"b{4}", RegexOptions.RightToLeft, "abbbbaabbbbaabbb", "Pass. Group[0]=(7,4)"),
790                         new RegexTrial (@"b\1aa(.)", RegexOptions.RightToLeft, "bBaaB", "Pass. Group[0]=(0,5) Group[1]=(4,1)"),
791                         new RegexTrial (@"b(.)aa\1", RegexOptions.RightToLeft, "bBaaB", "Fail."),
792                         
793                         new RegexTrial (@"^(a\1?){4}$", RegexOptions.RightToLeft, "aaaaaa", "Pass. Group[0]=(0,6) Group[1]=(5,1)(3,2)(2,1)(0,2)"),
794                         new RegexTrial (@"^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?", RegexOptions.RightToLeft, "012cxx0190", "Pass. Group[0]=(0,10) Group[1]=(0,4) Group[2]= Group[3]=(6,4)"),
795                         new RegexTrial (@"^(b+?|a){1,2}c", RegexOptions.RightToLeft, "bbbac", "Pass. Group[0]=(0,5) Group[1]=(3,1)(0,3)"),                      
796                         new RegexTrial (@"\((\w\. \w+)\)", RegexOptions.RightToLeft, "cd. (A. Tw)", "Pass. Group[0]=(4,7) Group[1]=(5,5)"),
797                         new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.RightToLeft, "aaaacccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
798                         new RegexTrial (@"((?:aaaa|bbbb)cccc)?", RegexOptions.RightToLeft, "bbbbcccc", "Pass. Group[0]=(0,8) Group[1]=(0,8)"),
799                         
800                         new RegexTrial (@"(?<=a)b", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1)"),
801                         new RegexTrial (@"(?<=a)b", RegexOptions.RightToLeft, "cb", "Fail."),
802                         new RegexTrial (@"(?<=a)b", RegexOptions.RightToLeft, "b", "Fail."),
803                         new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1)"),
804                         new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "cb", "Fail."),
805                         new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "b", "Pass. Group[0]=(0,1)"),
806                         new RegexTrial (@"(?<!c)b", RegexOptions.RightToLeft, "b", "Pass. Group[0]=(0,1)"),
807                         new RegexTrial (@"a(?=d).", RegexOptions.RightToLeft, "adabad", "Pass. Group[0]=(4,2)"),
808                         new RegexTrial (@"a(?=c|d).", RegexOptions.RightToLeft, "adabad", "Pass. Group[0]=(4,2)"),
809                         
810                         new RegexTrial (@"ab*c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
811                         new RegexTrial (@"ab*bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
812                         new RegexTrial (@"ab*bc", RegexOptions.RightToLeft, "abbc", "Pass. Group[0]=(0,4)"),
813                         new RegexTrial (@"ab*bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
814                         new RegexTrial (@".{1}", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(5,1)"),
815                         new RegexTrial (@".{3,4}", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(2,4)"),
816                         new RegexTrial (@"ab{0,}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
817                         new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abbc", "Pass. Group[0]=(0,4)"),
818                         new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abc", "Fail."),
819                         new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abq", "Fail."),
820                         new RegexTrial (@"ab{1,}bc", RegexOptions.RightToLeft, "abq", "Fail."),
821                         new RegexTrial (@"ab+bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
822                         new RegexTrial (@"ab{1,}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
823                         new RegexTrial (@"ab{1,3}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
824                         new RegexTrial (@"ab{3,4}bc", RegexOptions.RightToLeft, "abbbbc", "Pass. Group[0]=(0,6)"),
825                         new RegexTrial (@"ab{4,5}bc", RegexOptions.RightToLeft, "abbbbc", "Fail."),
826                         new RegexTrial (@"ab?bc", RegexOptions.RightToLeft, "abbc", "Pass. Group[0]=(0,4)"),
827                         new RegexTrial (@"ab?bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
828                         new RegexTrial (@"ab{0,1}bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
829                         new RegexTrial (@"ab?bc", RegexOptions.RightToLeft, "abbbbc", "Fail."),
830                         new RegexTrial (@"ab?c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
831                         new RegexTrial (@"ab{0,1}c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
832                         new RegexTrial (@"^abc$", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
833                         new RegexTrial (@"^abc$", RegexOptions.RightToLeft, "abcc", "Fail."),
834                         new RegexTrial (@"^abc", RegexOptions.RightToLeft, "abcc", "Pass. Group[0]=(0,3)"),
835                         new RegexTrial (@"^abc$", RegexOptions.RightToLeft, "aabc", "Fail."),
836                         new RegexTrial (@"abc$", RegexOptions.RightToLeft, "aabc", "Pass. Group[0]=(1,3)"),
837                         new RegexTrial (@"abc$", RegexOptions.RightToLeft, "aabcd", "Fail."),
838                         new RegexTrial (@"^", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,0)"),
839                         new RegexTrial (@"$", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(3,0)"),
840                         new RegexTrial (@"a.c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3)"),
841                         new RegexTrial (@"a.c", RegexOptions.RightToLeft, "axc", "Pass. Group[0]=(0,3)"),
842                         new RegexTrial (@"a.*c", RegexOptions.RightToLeft, "axyzc", "Pass. Group[0]=(0,5)"),
843                         new RegexTrial (@"a.*c", RegexOptions.RightToLeft, "axyzd", "Fail."),
844                         new RegexTrial (@"a[bc]d", RegexOptions.RightToLeft, "abc", "Fail."),
845                         new RegexTrial (@"a[bc]d", RegexOptions.RightToLeft, "abd", "Pass. Group[0]=(0,3)"),
846                         new RegexTrial (@"a[b-d]e", RegexOptions.RightToLeft, "abd", "Fail."),
847                         new RegexTrial (@"a[b-d]e", RegexOptions.RightToLeft, "ace", "Pass. Group[0]=(0,3)"),
848                         new RegexTrial (@"a[b-d]", RegexOptions.RightToLeft, "aac", "Pass. Group[0]=(1,2)"),
849                         new RegexTrial (@"a[-b]", RegexOptions.RightToLeft, "a-", "Pass. Group[0]=(0,2)"),
850                         new RegexTrial (@"a[b-]", RegexOptions.RightToLeft, "a-", "Pass. Group[0]=(0,2)"),
851                         new RegexTrial (@"a[b-a]", RegexOptions.RightToLeft, "-", "Error."),
852                         new RegexTrial (@"a[]b", RegexOptions.RightToLeft, "-", "Error."),
853                         new RegexTrial (@"a[", RegexOptions.RightToLeft, "-", "Error."),
854                         new RegexTrial (@"a]", RegexOptions.RightToLeft, "a]", "Pass. Group[0]=(0,2)"),
855                         new RegexTrial (@"a[]]b", RegexOptions.RightToLeft, "a]b", "Pass. Group[0]=(0,3)"),
856                         new RegexTrial (@"a[^bc]d", RegexOptions.RightToLeft, "aed", "Pass. Group[0]=(0,3)"),
857                         new RegexTrial (@"a[^bc]d", RegexOptions.RightToLeft, "abd", "Fail."),
858                         new RegexTrial (@"a[^-b]c", RegexOptions.RightToLeft, "adc", "Pass. Group[0]=(0,3)"),
859                         new RegexTrial (@"a[^-b]c", RegexOptions.RightToLeft, "a-c", "Fail."),
860                         new RegexTrial (@"a[^]b]c", RegexOptions.RightToLeft, "a]c", "Fail."),
861                         new RegexTrial (@"a[^]b]c", RegexOptions.RightToLeft, "adc", "Pass. Group[0]=(0,3)"),
862                         new RegexTrial (@"\ba\b", RegexOptions.RightToLeft, "a-", "Pass. Group[0]=(0,1)"),
863                         new RegexTrial (@"\ba\b", RegexOptions.RightToLeft, "-a", "Pass. Group[0]=(1,1)"),
864                         new RegexTrial (@"\ba\b", RegexOptions.RightToLeft, "-a-", "Pass. Group[0]=(1,1)"),
865                         new RegexTrial (@"\by\b", RegexOptions.RightToLeft, "xy", "Fail."),
866                         new RegexTrial (@"\by\b", RegexOptions.RightToLeft, "yz", "Fail."),
867                         new RegexTrial (@"\by\b", RegexOptions.RightToLeft, "xyz", "Fail."),
868                         new RegexTrial (@"\Ba\B", RegexOptions.RightToLeft, "a-", "Fail."),
869                         new RegexTrial (@"\Ba\B", RegexOptions.RightToLeft, "-a", "Fail."),
870                         new RegexTrial (@"\Ba\B", RegexOptions.RightToLeft, "-a-", "Fail."),
871                         new RegexTrial (@"\By\b", RegexOptions.RightToLeft, "xy", "Pass. Group[0]=(1,1)"),
872                         new RegexTrial (@"\by\B", RegexOptions.RightToLeft, "yz", "Pass. Group[0]=(0,1)"),
873                         new RegexTrial (@"\By\B", RegexOptions.RightToLeft, "xyz", "Pass. Group[0]=(1,1)"),
874                         new RegexTrial (@"\w", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1)"),
875                         new RegexTrial (@"\w", RegexOptions.RightToLeft, "-", "Fail."),
876                         new RegexTrial (@"\W", RegexOptions.RightToLeft, "a", "Fail."),
877                         new RegexTrial (@"\W", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
878                         new RegexTrial (@"a\sb", RegexOptions.RightToLeft, "a b", "Pass. Group[0]=(0,3)"),
879                         new RegexTrial (@"a\sb", RegexOptions.RightToLeft, "a-b", "Fail."),
880                         new RegexTrial (@"a\Sb", RegexOptions.RightToLeft, "a b", "Fail."),
881                         new RegexTrial (@"a\Sb", RegexOptions.RightToLeft, "a-b", "Pass. Group[0]=(0,3)"),
882                         new RegexTrial (@"\d", RegexOptions.RightToLeft, "1", "Pass. Group[0]=(0,1)"),
883                         new RegexTrial (@"\d", RegexOptions.RightToLeft, "-", "Fail."),
884                         new RegexTrial (@"\D", RegexOptions.RightToLeft, "1", "Fail."),
885                         new RegexTrial (@"\D", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
886                         new RegexTrial (@"[\w]", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1)"),
887                         new RegexTrial (@"[\w]", RegexOptions.RightToLeft, "-", "Fail."),
888                         new RegexTrial (@"[\W]", RegexOptions.RightToLeft, "a", "Fail."),
889                         new RegexTrial (@"[\W]", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
890                         new RegexTrial (@"a[\s]b", RegexOptions.RightToLeft, "a b", "Pass. Group[0]=(0,3)"),
891                         new RegexTrial (@"a[\s]b", RegexOptions.RightToLeft, "a-b", "Fail."),
892                         new RegexTrial (@"a[\S]b", RegexOptions.RightToLeft, "a b", "Fail."),
893                         new RegexTrial (@"a[\S]b", RegexOptions.RightToLeft, "a-b", "Pass. Group[0]=(0,3)"),
894                         new RegexTrial (@"[\d]", RegexOptions.RightToLeft, "1", "Pass. Group[0]=(0,1)"),
895                         new RegexTrial (@"[\d]", RegexOptions.RightToLeft, "-", "Fail."),
896                         new RegexTrial (@"[\D]", RegexOptions.RightToLeft, "1", "Fail."),
897                         new RegexTrial (@"[\D]", RegexOptions.RightToLeft, "-", "Pass. Group[0]=(0,1)"),
898                         new RegexTrial (@"ab|cd", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,2)"),
899                         new RegexTrial (@"ab|cd", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(2,2)"),
900                         new RegexTrial (@"()ef", RegexOptions.RightToLeft, "def", "Pass. Group[0]=(1,2) Group[1]=(1,0)"),
901                         new RegexTrial (@"*a", RegexOptions.RightToLeft, "-", "Error."),
902                         new RegexTrial (@"(*)b", RegexOptions.RightToLeft, "-", "Error."),
903                         new RegexTrial (@"$b", RegexOptions.RightToLeft, "b", "Fail."),
904                         new RegexTrial (@"a\", RegexOptions.RightToLeft, "-", "Error."),
905                         new RegexTrial (@"a\(b", RegexOptions.RightToLeft, "a(b", "Pass. Group[0]=(0,3)"),
906                         new RegexTrial (@"a\(*b", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2)"),
907                         new RegexTrial (@"a\(*b", RegexOptions.RightToLeft, "a((b", "Pass. Group[0]=(0,4)"),
908                         new RegexTrial (@"a\\b", RegexOptions.RightToLeft, "a\\b", "Pass. Group[0]=(0,3)"),
909                         new RegexTrial (@"abc)", RegexOptions.RightToLeft, "-", "Error."),
910                         new RegexTrial (@"(abc", RegexOptions.RightToLeft, "-", "Error."),
911                         new RegexTrial (@"((a))", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1)"),
912                         new RegexTrial (@"(a)b(c)", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1) Group[2]=(2,1)"),
913                         new RegexTrial (@"a+b+c", RegexOptions.RightToLeft, "aabbabc", "Pass. Group[0]=(4,3)"),
914                         new RegexTrial (@"a{1,}b{1,}c", RegexOptions.RightToLeft, "aabbabc", "Pass. Group[0]=(4,3)"),
915                         new RegexTrial (@"a**", RegexOptions.RightToLeft, "-", "Error."),
916                         new RegexTrial (@"a.+?c", RegexOptions.RightToLeft, "abcabc", "Pass. Group[0]=(3,3)"),
917                         new RegexTrial (@"(a+|b)*", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
918                         new RegexTrial (@"(a+|b){0,}", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
919                         new RegexTrial (@"(a+|b)+", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
920                         new RegexTrial (@"(a+|b){1,}", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(0,2) Group[1]=(1,1)(0,1)"),
921                         new RegexTrial (@"(a+|b)?", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1) Group[1]=(1,1)"),
922                         new RegexTrial (@"(a+|b){0,1}", RegexOptions.RightToLeft, "ab", "Pass. Group[0]=(1,1) Group[1]=(1,1)"),
923                         new RegexTrial (@")(", RegexOptions.RightToLeft, "-", "Error."),
924                         new RegexTrial (@"[^ab]*", RegexOptions.RightToLeft, "cde", "Pass. Group[0]=(0,3)"),
925                         new RegexTrial (@"abc", RegexOptions.RightToLeft, "", "Fail."),
926                         new RegexTrial (@"a*", RegexOptions.RightToLeft, "", "Pass. Group[0]=(0,0)"),
927                         new RegexTrial (@"([abc])*d", RegexOptions.RightToLeft, "abbbcd", "Pass. Group[0]=(0,6) Group[1]=(4,1)(3,1)(2,1)(1,1)(0,1)"),
928                         new RegexTrial (@"([abc])*bcd", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,1)"),
929                         new RegexTrial (@"a|b|c|d|e", RegexOptions.RightToLeft, "e", "Pass. Group[0]=(0,1)"),
930                         new RegexTrial (@"(a|b|c|d|e)f", RegexOptions.RightToLeft, "ef", "Pass. Group[0]=(0,2) Group[1]=(0,1)"),
931                         new RegexTrial (@"abcd*efg", RegexOptions.RightToLeft, "abcdefg", "Pass. Group[0]=(0,7)"),
932                         new RegexTrial (@"ab*", RegexOptions.RightToLeft, "xabyabbbz", "Pass. Group[0]=(4,4)"),
933                         new RegexTrial (@"ab*", RegexOptions.RightToLeft, "xayabbbz", "Pass. Group[0]=(3,4)"),
934                         new RegexTrial (@"(ab|cd)e", RegexOptions.RightToLeft, "abcde", "Pass. Group[0]=(2,3) Group[1]=(2,2)"),
935                         new RegexTrial (@"[abhgefdc]ij", RegexOptions.RightToLeft, "hij", "Pass. Group[0]=(0,3)"),
936                         new RegexTrial (@"^(ab|cd)e", RegexOptions.RightToLeft, "abcde", "Fail."),
937                         new RegexTrial (@"(abc|)ef", RegexOptions.RightToLeft, "abcdef", "Pass. Group[0]=(4,2) Group[1]=(4,0)"),
938                         new RegexTrial (@"(a|b)c*d", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(1,3) Group[1]=(1,1)"),
939                         new RegexTrial (@"(ab|ab*)bc", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
940                         new RegexTrial (@"a([bc]*)c*", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(1,1)"),
941                         new RegexTrial (@"a([bc]*)(c*d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
942                         new RegexTrial (@"a([bc]+)(c*d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
943                         new RegexTrial (@"a([bc]*)(c+d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,1) Group[2]=(2,2)"),
944                         new RegexTrial (@"a[bcd]*dcdcde", RegexOptions.RightToLeft, "adcdcde", "Pass. Group[0]=(0,7)"),
945                         new RegexTrial (@"a[bcd]+dcdcde", RegexOptions.RightToLeft, "adcdcde", "Fail."),
946                         new RegexTrial (@"(ab|a)b*c", RegexOptions.RightToLeft, "abc", "Pass. Group[0]=(0,3) Group[1]=(0,1)"),
947                         new RegexTrial (@"((a)(b)c)(d)", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(0,3) Group[2]=(0,1) Group[3]=(1,1) Group[4]=(3,1)"),
948                         new RegexTrial (@"[a-zA-Z_][a-zA-Z0-9_]*", RegexOptions.RightToLeft, "alpha", "Pass. Group[0]=(0,5)"),
949                         new RegexTrial (@"^a(bc+|b[eh])g|.h$", RegexOptions.RightToLeft, "abh", "Pass. Group[0]=(1,2) Group[1]="),
950                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "effgz", "Pass. Group[0]=(0,5) Group[1]=(0,5) Group[2]="),
951                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "ij", "Pass. Group[0]=(0,2) Group[1]=(0,2) Group[2]=(1,1)"),
952                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "effg", "Fail."),
953                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "bcdd", "Fail."),
954                         new RegexTrial (@"(bc+d$|ef*g.|h?i(j|k))", RegexOptions.RightToLeft, "reffgz", "Pass. Group[0]=(1,5) Group[1]=(1,5) Group[2]="),
955                         new RegexTrial (@"((((((((((a))))))))))", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
956                         new RegexTrial (@"((((((((((a))))))))))\10", RegexOptions.RightToLeft, "aa", "Fail."),
957                         new RegexTrial (@"\10((((((((((a))))))))))", RegexOptions.RightToLeft, "aa", "Pass. Group[0]=(0,2) Group[1]=(1,1) Group[2]=(1,1) Group[3]=(1,1) Group[4]=(1,1) Group[5]=(1,1) Group[6]=(1,1) Group[7]=(1,1) Group[8]=(1,1) Group[9]=(1,1) Group[10]=(1,1)"),
958                         new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.RightToLeft, "aa", "Fail."),
959                         new RegexTrial (@"((((((((((a))))))))))!", RegexOptions.RightToLeft, "a!", "Pass. Group[0]=(0,2) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1) Group[10]=(0,1)"),
960                         new RegexTrial (@"(((((((((a)))))))))", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1) Group[2]=(0,1) Group[3]=(0,1) Group[4]=(0,1) Group[5]=(0,1) Group[6]=(0,1) Group[7]=(0,1) Group[8]=(0,1) Group[9]=(0,1)"),
961                         new RegexTrial (@"multiple words of text", RegexOptions.RightToLeft, "uh-uh", "Fail."),
962                         new RegexTrial (@"multiple words", RegexOptions.RightToLeft, "multiple words, yeah", "Pass. Group[0]=(0,14)"),
963                         new RegexTrial (@"(.*)c(.*)", RegexOptions.RightToLeft, "abcde", "Pass. Group[0]=(0,5) Group[1]=(0,2) Group[2]=(3,2)"),
964                         new RegexTrial (@"\((.*), (.*)\)", RegexOptions.RightToLeft, "(a, b)", "Pass. Group[0]=(0,6) Group[1]=(1,1) Group[2]=(4,1)"),
965                         new RegexTrial (@"[k]", RegexOptions.RightToLeft, "ab", "Fail."),
966                         new RegexTrial (@"abcd", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4)"),
967                         new RegexTrial (@"a(bc)d", RegexOptions.RightToLeft, "abcd", "Pass. Group[0]=(0,4) Group[1]=(1,2)"),
968                         new RegexTrial (@"a[-]?c", RegexOptions.RightToLeft, "ac", "Pass. Group[0]=(0,2)"),
969                         new RegexTrial (@"(abc)\1", RegexOptions.RightToLeft, "abcabc", "Fail."),
970                         new RegexTrial (@"\1(abc)", RegexOptions.RightToLeft, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(3,3)"),
971                         new RegexTrial (@"([a-c]*)\1", RegexOptions.RightToLeft, "abcabc", "Fail."),
972                         new RegexTrial (@"\1([a-c]*)", RegexOptions.RightToLeft, "abcabc", "Pass. Group[0]=(0,6) Group[1]=(3,3)"),
973                         new RegexTrial (@"\1", RegexOptions.RightToLeft, "-", "Error."),
974                         new RegexTrial (@"\2", RegexOptions.RightToLeft, "-", "Error."),
975                         new RegexTrial (@"(a)|\1", RegexOptions.RightToLeft, "a", "Pass. Group[0]=(0,1) Group[1]=(0,1)"),
976                         new RegexTrial (@"(a)|\1", RegexOptions.RightToLeft, "x", "Fail."),
977                         new RegexTrial (@"(a)|\2", RegexOptions.RightToLeft, "-", "Error."),
978                         new RegexTrial (@"(([a-c])b*?\2)*", RegexOptions.RightToLeft, "ababbbcbc", "Pass. Group[0]=(9,0) Group[1]= Group[2]="),
979                         new RegexTrial (@"(([a-c])b*?\2){3}", RegexOptions.RightToLeft, "ababbbcbc", "Fail."),
980                         new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.RightToLeft, "aaxabxbaxbbx", "Fail."),
981                         new RegexTrial (@"((\3|b)\2(a)x)+", RegexOptions.RightToLeft, "aaaxabaxbaaxbbax", "Fail."),
982                         new RegexTrial (@"((\3|b)\2(a)){2,}", RegexOptions.RightToLeft, "bbaababbabaaaaabbaaaabba", "Fail."),
983                     
984                                       
985                         new RegexTrial (@"\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)", RegexOptions.None, "((a(b))c)", 
986                             "Pass. Group[0]=(0,9) Group[1]="),
987                         new RegexTrial (@"^\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)$", RegexOptions.None, "((a(b))c)", 
988                             "Pass. Group[0]=(0,9) Group[1]="),
989                         new RegexTrial (@"^\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)$", RegexOptions.None, "((a(b))c", "Fail."), 
990
991                         new RegexTrial (@"^\((?>[^()]+|\((?<depth>)|\)(?<-depth>))*(?(depth)(?!))\)$", RegexOptions.None, "())", "Fail."), 
992
993
994                         new RegexTrial (@"(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))", RegexOptions.None, "((a(b))c)", 
995                             "Pass. Group[0]=(0,9) Group[1]=(0,9) Group[2]=(0,1)(1,2)(3,2) Group[3]=(5,1)(6,2)(8,1) Group[4]= Group[5]=(4,1)(2,4)(1,7)"),
996                         new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a(b))c)", 
997                             "Pass. Group[0]=(0,9) Group[1]=(0,9) Group[2]=(0,1)(1,2)(3,2) Group[3]=(5,1)(6,2)(8,1) Group[4]= Group[5]=(4,1)(2,4)(1,7)"),
998                         new RegexTrial (@"(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))", RegexOptions.None, "x(a((b)))b)x", 
999                             "Pass. Group[0]=(1,9) Group[1]=(1,9) Group[2]=(1,2)(3,1)(4,2) Group[3]=(6,1)(7,1)(8,2) Group[4]= Group[5]=(5,1)(4,3)(2,6)"),
1000                         new RegexTrial (@"(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))", RegexOptions.None, "x((a((b)))x", 
1001                             "Pass. Group[0]=(2,9) Group[1]=(2,9) Group[2]=(2,2)(4,1)(5,2) Group[3]=(7,1)(8,1)(9,2) Group[4]= Group[5]=(6,1)(5,3)(3,6)"),
1002                         new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a(b))c","Fail."),
1003                         new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a(b))c))","Fail."),
1004                         new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, ")(","Fail."),
1005                         new RegexTrial (@"^(((?<foo>\()[^()]*)+((?<bar-foo>\))[^()]*)+)+(?(foo)(?!))$", RegexOptions.None, "((a((b))c)","Fail."),
1006
1007                         new RegexTrial (@"b", RegexOptions.RightToLeft, "babaaa", "Pass. Group[0]=(2,1)")
1008                };
1009         }
1010 }