1c67d6573Sopenharmony_ci// DO NOT EDIT. Automatically generated by 'scripts/regex-match-tests.py'
2c67d6573Sopenharmony_ci// on 2019-09-02 11:07:37.849994.
3c67d6573Sopenharmony_ci
4c67d6573Sopenharmony_ci// Tests from basic.dat
5c67d6573Sopenharmony_cimat!(match_basic_3, r"abracadabra$", r"abracadabracadabra", Some((7, 18)));
6c67d6573Sopenharmony_cimat!(match_basic_4, r"a...b", r"abababbb", Some((2, 7)));
7c67d6573Sopenharmony_cimat!(match_basic_5, r"XXXXXX", r"..XXXXXX", Some((2, 8)));
8c67d6573Sopenharmony_cimat!(match_basic_6, r"\)", r"()", Some((1, 2)));
9c67d6573Sopenharmony_cimat!(match_basic_7, r"a]", r"a]a", Some((0, 2)));
10c67d6573Sopenharmony_cimat!(match_basic_9, r"\}", r"}", Some((0, 1)));
11c67d6573Sopenharmony_cimat!(match_basic_10, r"\]", r"]", Some((0, 1)));
12c67d6573Sopenharmony_cimat!(match_basic_12, r"]", r"]", Some((0, 1)));
13c67d6573Sopenharmony_cimat!(match_basic_15, r"^a", r"ax", Some((0, 1)));
14c67d6573Sopenharmony_cimat!(match_basic_16, r"\^a", r"a^a", Some((1, 3)));
15c67d6573Sopenharmony_cimat!(match_basic_17, r"a\^", r"a^", Some((0, 2)));
16c67d6573Sopenharmony_cimat!(match_basic_18, r"a$", r"aa", Some((1, 2)));
17c67d6573Sopenharmony_cimat!(match_basic_19, r"a\$", r"a$", Some((0, 2)));
18c67d6573Sopenharmony_cimat!(match_basic_20, r"^$", r"", Some((0, 0)));
19c67d6573Sopenharmony_cimat!(match_basic_21, r"$^", r"", Some((0, 0)));
20c67d6573Sopenharmony_cimat!(match_basic_22, r"a($)", r"aa", Some((1, 2)), Some((2, 2)));
21c67d6573Sopenharmony_cimat!(match_basic_23, r"a*(^a)", r"aa", Some((0, 1)), Some((0, 1)));
22c67d6573Sopenharmony_cimat!(match_basic_24, r"(..)*(...)*", r"a", Some((0, 0)));
23c67d6573Sopenharmony_cimat!(match_basic_25, r"(..)*(...)*", r"abcd", Some((0, 4)), Some((2, 4)));
24c67d6573Sopenharmony_cimat!(
25c67d6573Sopenharmony_ci    match_basic_26,
26c67d6573Sopenharmony_ci    r"(ab|a)(bc|c)",
27c67d6573Sopenharmony_ci    r"abc",
28c67d6573Sopenharmony_ci    Some((0, 3)),
29c67d6573Sopenharmony_ci    Some((0, 2)),
30c67d6573Sopenharmony_ci    Some((2, 3))
31c67d6573Sopenharmony_ci);
32c67d6573Sopenharmony_cimat!(match_basic_27, r"(ab)c|abc", r"abc", Some((0, 3)), Some((0, 2)));
33c67d6573Sopenharmony_cimat!(match_basic_28, r"a{0}b", r"ab", Some((1, 2)));
34c67d6573Sopenharmony_cimat!(
35c67d6573Sopenharmony_ci    match_basic_29,
36c67d6573Sopenharmony_ci    r"(a*)(b?)(b+)b{3}",
37c67d6573Sopenharmony_ci    r"aaabbbbbbb",
38c67d6573Sopenharmony_ci    Some((0, 10)),
39c67d6573Sopenharmony_ci    Some((0, 3)),
40c67d6573Sopenharmony_ci    Some((3, 4)),
41c67d6573Sopenharmony_ci    Some((4, 7))
42c67d6573Sopenharmony_ci);
43c67d6573Sopenharmony_cimat!(
44c67d6573Sopenharmony_ci    match_basic_30,
45c67d6573Sopenharmony_ci    r"(a*)(b{0,1})(b{1,})b{3}",
46c67d6573Sopenharmony_ci    r"aaabbbbbbb",
47c67d6573Sopenharmony_ci    Some((0, 10)),
48c67d6573Sopenharmony_ci    Some((0, 3)),
49c67d6573Sopenharmony_ci    Some((3, 4)),
50c67d6573Sopenharmony_ci    Some((4, 7))
51c67d6573Sopenharmony_ci);
52c67d6573Sopenharmony_cimat!(
53c67d6573Sopenharmony_ci    match_basic_32,
54c67d6573Sopenharmony_ci    r"((a|a)|a)",
55c67d6573Sopenharmony_ci    r"a",
56c67d6573Sopenharmony_ci    Some((0, 1)),
57c67d6573Sopenharmony_ci    Some((0, 1)),
58c67d6573Sopenharmony_ci    Some((0, 1))
59c67d6573Sopenharmony_ci);
60c67d6573Sopenharmony_cimat!(
61c67d6573Sopenharmony_ci    match_basic_33,
62c67d6573Sopenharmony_ci    r"(a*)(a|aa)",
63c67d6573Sopenharmony_ci    r"aaaa",
64c67d6573Sopenharmony_ci    Some((0, 4)),
65c67d6573Sopenharmony_ci    Some((0, 3)),
66c67d6573Sopenharmony_ci    Some((3, 4))
67c67d6573Sopenharmony_ci);
68c67d6573Sopenharmony_cimat!(match_basic_34, r"a*(a.|aa)", r"aaaa", Some((0, 4)), Some((2, 4)));
69c67d6573Sopenharmony_cimat!(
70c67d6573Sopenharmony_ci    match_basic_35,
71c67d6573Sopenharmony_ci    r"a(b)|c(d)|a(e)f",
72c67d6573Sopenharmony_ci    r"aef",
73c67d6573Sopenharmony_ci    Some((0, 3)),
74c67d6573Sopenharmony_ci    None,
75c67d6573Sopenharmony_ci    None,
76c67d6573Sopenharmony_ci    Some((1, 2))
77c67d6573Sopenharmony_ci);
78c67d6573Sopenharmony_cimat!(match_basic_36, r"(a|b)?.*", r"b", Some((0, 1)), Some((0, 1)));
79c67d6573Sopenharmony_cimat!(match_basic_37, r"(a|b)c|a(b|c)", r"ac", Some((0, 2)), Some((0, 1)));
80c67d6573Sopenharmony_cimat!(
81c67d6573Sopenharmony_ci    match_basic_38,
82c67d6573Sopenharmony_ci    r"(a|b)c|a(b|c)",
83c67d6573Sopenharmony_ci    r"ab",
84c67d6573Sopenharmony_ci    Some((0, 2)),
85c67d6573Sopenharmony_ci    None,
86c67d6573Sopenharmony_ci    Some((1, 2))
87c67d6573Sopenharmony_ci);
88c67d6573Sopenharmony_cimat!(match_basic_39, r"(a|b)*c|(a|ab)*c", r"abc", Some((0, 3)), Some((1, 2)));
89c67d6573Sopenharmony_cimat!(match_basic_40, r"(a|b)*c|(a|ab)*c", r"xc", Some((1, 2)));
90c67d6573Sopenharmony_cimat!(
91c67d6573Sopenharmony_ci    match_basic_41,
92c67d6573Sopenharmony_ci    r"(.a|.b).*|.*(.a|.b)",
93c67d6573Sopenharmony_ci    r"xa",
94c67d6573Sopenharmony_ci    Some((0, 2)),
95c67d6573Sopenharmony_ci    Some((0, 2))
96c67d6573Sopenharmony_ci);
97c67d6573Sopenharmony_cimat!(match_basic_42, r"a?(ab|ba)ab", r"abab", Some((0, 4)), Some((0, 2)));
98c67d6573Sopenharmony_cimat!(match_basic_43, r"a?(ac{0}b|ba)ab", r"abab", Some((0, 4)), Some((0, 2)));
99c67d6573Sopenharmony_cimat!(match_basic_44, r"ab|abab", r"abbabab", Some((0, 2)));
100c67d6573Sopenharmony_cimat!(match_basic_45, r"aba|bab|bba", r"baaabbbaba", Some((5, 8)));
101c67d6573Sopenharmony_cimat!(match_basic_46, r"aba|bab", r"baaabbbaba", Some((6, 9)));
102c67d6573Sopenharmony_cimat!(
103c67d6573Sopenharmony_ci    match_basic_47,
104c67d6573Sopenharmony_ci    r"(aa|aaa)*|(a|aaaaa)",
105c67d6573Sopenharmony_ci    r"aa",
106c67d6573Sopenharmony_ci    Some((0, 2)),
107c67d6573Sopenharmony_ci    Some((0, 2))
108c67d6573Sopenharmony_ci);
109c67d6573Sopenharmony_cimat!(
110c67d6573Sopenharmony_ci    match_basic_48,
111c67d6573Sopenharmony_ci    r"(a.|.a.)*|(a|.a...)",
112c67d6573Sopenharmony_ci    r"aa",
113c67d6573Sopenharmony_ci    Some((0, 2)),
114c67d6573Sopenharmony_ci    Some((0, 2))
115c67d6573Sopenharmony_ci);
116c67d6573Sopenharmony_cimat!(match_basic_49, r"ab|a", r"xabc", Some((1, 3)));
117c67d6573Sopenharmony_cimat!(match_basic_50, r"ab|a", r"xxabc", Some((2, 4)));
118c67d6573Sopenharmony_cimat!(
119c67d6573Sopenharmony_ci    match_basic_51,
120c67d6573Sopenharmony_ci    r"(?i)(?-u)(Ab|cD)*",
121c67d6573Sopenharmony_ci    r"aBcD",
122c67d6573Sopenharmony_ci    Some((0, 4)),
123c67d6573Sopenharmony_ci    Some((2, 4))
124c67d6573Sopenharmony_ci);
125c67d6573Sopenharmony_cimat!(match_basic_52, r"[^-]", r"--a", Some((2, 3)));
126c67d6573Sopenharmony_cimat!(match_basic_53, r"[a-]*", r"--a", Some((0, 3)));
127c67d6573Sopenharmony_cimat!(match_basic_54, r"[a-m-]*", r"--amoma--", Some((0, 4)));
128c67d6573Sopenharmony_cimat!(
129c67d6573Sopenharmony_ci    match_basic_55,
130c67d6573Sopenharmony_ci    r":::1:::0:|:::1:1:0:",
131c67d6573Sopenharmony_ci    r":::0:::1:::1:::0:",
132c67d6573Sopenharmony_ci    Some((8, 17))
133c67d6573Sopenharmony_ci);
134c67d6573Sopenharmony_cimat!(
135c67d6573Sopenharmony_ci    match_basic_56,
136c67d6573Sopenharmony_ci    r":::1:::0:|:::1:1:1:",
137c67d6573Sopenharmony_ci    r":::0:::1:::1:::0:",
138c67d6573Sopenharmony_ci    Some((8, 17))
139c67d6573Sopenharmony_ci);
140c67d6573Sopenharmony_cimat!(match_basic_57, r"[[:upper:]]", r"A", Some((0, 1)));
141c67d6573Sopenharmony_cimat!(match_basic_58, r"[[:lower:]]+", r"`az{", Some((1, 3)));
142c67d6573Sopenharmony_cimat!(match_basic_59, r"[[:upper:]]+", r"@AZ[", Some((1, 3)));
143c67d6573Sopenharmony_cimat!(
144c67d6573Sopenharmony_ci    match_basic_65,
145c67d6573Sopenharmony_ci    r"
146c67d6573Sopenharmony_ci",
147c67d6573Sopenharmony_ci    r"
148c67d6573Sopenharmony_ci",
149c67d6573Sopenharmony_ci    Some((0, 1))
150c67d6573Sopenharmony_ci);
151c67d6573Sopenharmony_cimat!(
152c67d6573Sopenharmony_ci    match_basic_66,
153c67d6573Sopenharmony_ci    r"
154c67d6573Sopenharmony_ci",
155c67d6573Sopenharmony_ci    r"
156c67d6573Sopenharmony_ci",
157c67d6573Sopenharmony_ci    Some((0, 1))
158c67d6573Sopenharmony_ci);
159c67d6573Sopenharmony_cimat!(
160c67d6573Sopenharmony_ci    match_basic_67,
161c67d6573Sopenharmony_ci    r"[^a]",
162c67d6573Sopenharmony_ci    r"
163c67d6573Sopenharmony_ci",
164c67d6573Sopenharmony_ci    Some((0, 1))
165c67d6573Sopenharmony_ci);
166c67d6573Sopenharmony_cimat!(
167c67d6573Sopenharmony_ci    match_basic_68,
168c67d6573Sopenharmony_ci    r"
169c67d6573Sopenharmony_cia",
170c67d6573Sopenharmony_ci    r"
171c67d6573Sopenharmony_cia",
172c67d6573Sopenharmony_ci    Some((0, 2))
173c67d6573Sopenharmony_ci);
174c67d6573Sopenharmony_cimat!(
175c67d6573Sopenharmony_ci    match_basic_69,
176c67d6573Sopenharmony_ci    r"(a)(b)(c)",
177c67d6573Sopenharmony_ci    r"abc",
178c67d6573Sopenharmony_ci    Some((0, 3)),
179c67d6573Sopenharmony_ci    Some((0, 1)),
180c67d6573Sopenharmony_ci    Some((1, 2)),
181c67d6573Sopenharmony_ci    Some((2, 3))
182c67d6573Sopenharmony_ci);
183c67d6573Sopenharmony_cimat!(match_basic_70, r"xxx", r"xxx", Some((0, 3)));
184c67d6573Sopenharmony_cimat!(
185c67d6573Sopenharmony_ci    match_basic_71,
186c67d6573Sopenharmony_ci    r"(^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\* */?)0*[6-7]))([^0-9]|$)",
187c67d6573Sopenharmony_ci    r"feb 6,",
188c67d6573Sopenharmony_ci    Some((0, 6))
189c67d6573Sopenharmony_ci);
190c67d6573Sopenharmony_cimat!(
191c67d6573Sopenharmony_ci    match_basic_72,
192c67d6573Sopenharmony_ci    r"(^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\* */?)0*[6-7]))([^0-9]|$)",
193c67d6573Sopenharmony_ci    r"2/7",
194c67d6573Sopenharmony_ci    Some((0, 3))
195c67d6573Sopenharmony_ci);
196c67d6573Sopenharmony_cimat!(
197c67d6573Sopenharmony_ci    match_basic_73,
198c67d6573Sopenharmony_ci    r"(^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\* */?)0*[6-7]))([^0-9]|$)",
199c67d6573Sopenharmony_ci    r"feb 1,Feb 6",
200c67d6573Sopenharmony_ci    Some((5, 11))
201c67d6573Sopenharmony_ci);
202c67d6573Sopenharmony_cimat!(
203c67d6573Sopenharmony_ci    match_basic_74,
204c67d6573Sopenharmony_ci    r"((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))",
205c67d6573Sopenharmony_ci    r"x",
206c67d6573Sopenharmony_ci    Some((0, 1)),
207c67d6573Sopenharmony_ci    Some((0, 1)),
208c67d6573Sopenharmony_ci    Some((0, 1))
209c67d6573Sopenharmony_ci);
210c67d6573Sopenharmony_cimat!(
211c67d6573Sopenharmony_ci    match_basic_75,
212c67d6573Sopenharmony_ci    r"((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))*",
213c67d6573Sopenharmony_ci    r"xx",
214c67d6573Sopenharmony_ci    Some((0, 2)),
215c67d6573Sopenharmony_ci    Some((1, 2)),
216c67d6573Sopenharmony_ci    Some((1, 2))
217c67d6573Sopenharmony_ci);
218c67d6573Sopenharmony_cimat!(
219c67d6573Sopenharmony_ci    match_basic_76,
220c67d6573Sopenharmony_ci    r"a?(ab|ba)*",
221c67d6573Sopenharmony_ci    r"ababababababababababababababababababababababababababababababababababababababababa",
222c67d6573Sopenharmony_ci    Some((0, 81)),
223c67d6573Sopenharmony_ci    Some((79, 81))
224c67d6573Sopenharmony_ci);
225c67d6573Sopenharmony_cimat!(
226c67d6573Sopenharmony_ci    match_basic_77,
227c67d6573Sopenharmony_ci    r"abaa|abbaa|abbbaa|abbbbaa",
228c67d6573Sopenharmony_ci    r"ababbabbbabbbabbbbabbbbaa",
229c67d6573Sopenharmony_ci    Some((18, 25))
230c67d6573Sopenharmony_ci);
231c67d6573Sopenharmony_cimat!(
232c67d6573Sopenharmony_ci    match_basic_78,
233c67d6573Sopenharmony_ci    r"abaa|abbaa|abbbaa|abbbbaa",
234c67d6573Sopenharmony_ci    r"ababbabbbabbbabbbbabaa",
235c67d6573Sopenharmony_ci    Some((18, 22))
236c67d6573Sopenharmony_ci);
237c67d6573Sopenharmony_cimat!(
238c67d6573Sopenharmony_ci    match_basic_79,
239c67d6573Sopenharmony_ci    r"aaac|aabc|abac|abbc|baac|babc|bbac|bbbc",
240c67d6573Sopenharmony_ci    r"baaabbbabac",
241c67d6573Sopenharmony_ci    Some((7, 11))
242c67d6573Sopenharmony_ci);
243c67d6573Sopenharmony_cimat!(match_basic_80, r".*", r"", Some((0, 2)));
244c67d6573Sopenharmony_cimat!(
245c67d6573Sopenharmony_ci    match_basic_81,
246c67d6573Sopenharmony_ci    r"aaaa|bbbb|cccc|ddddd|eeeeee|fffffff|gggg|hhhh|iiiii|jjjjj|kkkkk|llll",
247c67d6573Sopenharmony_ci    r"XaaaXbbbXcccXdddXeeeXfffXgggXhhhXiiiXjjjXkkkXlllXcbaXaaaa",
248c67d6573Sopenharmony_ci    Some((53, 57))
249c67d6573Sopenharmony_ci);
250c67d6573Sopenharmony_cimat!(match_basic_83, r"a*a*a*a*a*b", r"aaaaaaaaab", Some((0, 10)));
251c67d6573Sopenharmony_cimat!(match_basic_84, r"^", r"", Some((0, 0)));
252c67d6573Sopenharmony_cimat!(match_basic_85, r"$", r"", Some((0, 0)));
253c67d6573Sopenharmony_cimat!(match_basic_86, r"^$", r"", Some((0, 0)));
254c67d6573Sopenharmony_cimat!(match_basic_87, r"^a$", r"a", Some((0, 1)));
255c67d6573Sopenharmony_cimat!(match_basic_88, r"abc", r"abc", Some((0, 3)));
256c67d6573Sopenharmony_cimat!(match_basic_89, r"abc", r"xabcy", Some((1, 4)));
257c67d6573Sopenharmony_cimat!(match_basic_90, r"abc", r"ababc", Some((2, 5)));
258c67d6573Sopenharmony_cimat!(match_basic_91, r"ab*c", r"abc", Some((0, 3)));
259c67d6573Sopenharmony_cimat!(match_basic_92, r"ab*bc", r"abc", Some((0, 3)));
260c67d6573Sopenharmony_cimat!(match_basic_93, r"ab*bc", r"abbc", Some((0, 4)));
261c67d6573Sopenharmony_cimat!(match_basic_94, r"ab*bc", r"abbbbc", Some((0, 6)));
262c67d6573Sopenharmony_cimat!(match_basic_95, r"ab+bc", r"abbc", Some((0, 4)));
263c67d6573Sopenharmony_cimat!(match_basic_96, r"ab+bc", r"abbbbc", Some((0, 6)));
264c67d6573Sopenharmony_cimat!(match_basic_97, r"ab?bc", r"abbc", Some((0, 4)));
265c67d6573Sopenharmony_cimat!(match_basic_98, r"ab?bc", r"abc", Some((0, 3)));
266c67d6573Sopenharmony_cimat!(match_basic_99, r"ab?c", r"abc", Some((0, 3)));
267c67d6573Sopenharmony_cimat!(match_basic_100, r"^abc$", r"abc", Some((0, 3)));
268c67d6573Sopenharmony_cimat!(match_basic_101, r"^abc", r"abcc", Some((0, 3)));
269c67d6573Sopenharmony_cimat!(match_basic_102, r"abc$", r"aabc", Some((1, 4)));
270c67d6573Sopenharmony_cimat!(match_basic_103, r"^", r"abc", Some((0, 0)));
271c67d6573Sopenharmony_cimat!(match_basic_104, r"$", r"abc", Some((3, 3)));
272c67d6573Sopenharmony_cimat!(match_basic_105, r"a.c", r"abc", Some((0, 3)));
273c67d6573Sopenharmony_cimat!(match_basic_106, r"a.c", r"axc", Some((0, 3)));
274c67d6573Sopenharmony_cimat!(match_basic_107, r"a.*c", r"axyzc", Some((0, 5)));
275c67d6573Sopenharmony_cimat!(match_basic_108, r"a[bc]d", r"abd", Some((0, 3)));
276c67d6573Sopenharmony_cimat!(match_basic_109, r"a[b-d]e", r"ace", Some((0, 3)));
277c67d6573Sopenharmony_cimat!(match_basic_110, r"a[b-d]", r"aac", Some((1, 3)));
278c67d6573Sopenharmony_cimat!(match_basic_111, r"a[-b]", r"a-", Some((0, 2)));
279c67d6573Sopenharmony_cimat!(match_basic_112, r"a[b-]", r"a-", Some((0, 2)));
280c67d6573Sopenharmony_cimat!(match_basic_113, r"a]", r"a]", Some((0, 2)));
281c67d6573Sopenharmony_cimat!(match_basic_114, r"a[]]b", r"a]b", Some((0, 3)));
282c67d6573Sopenharmony_cimat!(match_basic_115, r"a[^bc]d", r"aed", Some((0, 3)));
283c67d6573Sopenharmony_cimat!(match_basic_116, r"a[^-b]c", r"adc", Some((0, 3)));
284c67d6573Sopenharmony_cimat!(match_basic_117, r"a[^]b]c", r"adc", Some((0, 3)));
285c67d6573Sopenharmony_cimat!(match_basic_118, r"ab|cd", r"abc", Some((0, 2)));
286c67d6573Sopenharmony_cimat!(match_basic_119, r"ab|cd", r"abcd", Some((0, 2)));
287c67d6573Sopenharmony_cimat!(match_basic_120, r"a\(b", r"a(b", Some((0, 3)));
288c67d6573Sopenharmony_cimat!(match_basic_121, r"a\(*b", r"ab", Some((0, 2)));
289c67d6573Sopenharmony_cimat!(match_basic_122, r"a\(*b", r"a((b", Some((0, 4)));
290c67d6573Sopenharmony_cimat!(
291c67d6573Sopenharmony_ci    match_basic_123,
292c67d6573Sopenharmony_ci    r"((a))",
293c67d6573Sopenharmony_ci    r"abc",
294c67d6573Sopenharmony_ci    Some((0, 1)),
295c67d6573Sopenharmony_ci    Some((0, 1)),
296c67d6573Sopenharmony_ci    Some((0, 1))
297c67d6573Sopenharmony_ci);
298c67d6573Sopenharmony_cimat!(
299c67d6573Sopenharmony_ci    match_basic_124,
300c67d6573Sopenharmony_ci    r"(a)b(c)",
301c67d6573Sopenharmony_ci    r"abc",
302c67d6573Sopenharmony_ci    Some((0, 3)),
303c67d6573Sopenharmony_ci    Some((0, 1)),
304c67d6573Sopenharmony_ci    Some((2, 3))
305c67d6573Sopenharmony_ci);
306c67d6573Sopenharmony_cimat!(match_basic_125, r"a+b+c", r"aabbabc", Some((4, 7)));
307c67d6573Sopenharmony_cimat!(match_basic_126, r"a*", r"aaa", Some((0, 3)));
308c67d6573Sopenharmony_cimat!(match_basic_128, r"(a*)*", r"-", Some((0, 0)), None);
309c67d6573Sopenharmony_cimat!(match_basic_129, r"(a*)+", r"-", Some((0, 0)), Some((0, 0)));
310c67d6573Sopenharmony_cimat!(match_basic_131, r"(a*|b)*", r"-", Some((0, 0)), None);
311c67d6573Sopenharmony_cimat!(match_basic_132, r"(a+|b)*", r"ab", Some((0, 2)), Some((1, 2)));
312c67d6573Sopenharmony_cimat!(match_basic_133, r"(a+|b)+", r"ab", Some((0, 2)), Some((1, 2)));
313c67d6573Sopenharmony_cimat!(match_basic_134, r"(a+|b)?", r"ab", Some((0, 1)), Some((0, 1)));
314c67d6573Sopenharmony_cimat!(match_basic_135, r"[^ab]*", r"cde", Some((0, 3)));
315c67d6573Sopenharmony_cimat!(match_basic_137, r"(^)*", r"-", Some((0, 0)), None);
316c67d6573Sopenharmony_cimat!(match_basic_138, r"a*", r"", Some((0, 0)));
317c67d6573Sopenharmony_cimat!(match_basic_139, r"([abc])*d", r"abbbcd", Some((0, 6)), Some((4, 5)));
318c67d6573Sopenharmony_cimat!(match_basic_140, r"([abc])*bcd", r"abcd", Some((0, 4)), Some((0, 1)));
319c67d6573Sopenharmony_cimat!(match_basic_141, r"a|b|c|d|e", r"e", Some((0, 1)));
320c67d6573Sopenharmony_cimat!(match_basic_142, r"(a|b|c|d|e)f", r"ef", Some((0, 2)), Some((0, 1)));
321c67d6573Sopenharmony_cimat!(match_basic_144, r"((a*|b))*", r"-", Some((0, 0)), None, None);
322c67d6573Sopenharmony_cimat!(match_basic_145, r"abcd*efg", r"abcdefg", Some((0, 7)));
323c67d6573Sopenharmony_cimat!(match_basic_146, r"ab*", r"xabyabbbz", Some((1, 3)));
324c67d6573Sopenharmony_cimat!(match_basic_147, r"ab*", r"xayabbbz", Some((1, 2)));
325c67d6573Sopenharmony_cimat!(match_basic_148, r"(ab|cd)e", r"abcde", Some((2, 5)), Some((2, 4)));
326c67d6573Sopenharmony_cimat!(match_basic_149, r"[abhgefdc]ij", r"hij", Some((0, 3)));
327c67d6573Sopenharmony_cimat!(match_basic_150, r"(a|b)c*d", r"abcd", Some((1, 4)), Some((1, 2)));
328c67d6573Sopenharmony_cimat!(match_basic_151, r"(ab|ab*)bc", r"abc", Some((0, 3)), Some((0, 1)));
329c67d6573Sopenharmony_cimat!(match_basic_152, r"a([bc]*)c*", r"abc", Some((0, 3)), Some((1, 3)));
330c67d6573Sopenharmony_cimat!(
331c67d6573Sopenharmony_ci    match_basic_153,
332c67d6573Sopenharmony_ci    r"a([bc]*)(c*d)",
333c67d6573Sopenharmony_ci    r"abcd",
334c67d6573Sopenharmony_ci    Some((0, 4)),
335c67d6573Sopenharmony_ci    Some((1, 3)),
336c67d6573Sopenharmony_ci    Some((3, 4))
337c67d6573Sopenharmony_ci);
338c67d6573Sopenharmony_cimat!(
339c67d6573Sopenharmony_ci    match_basic_154,
340c67d6573Sopenharmony_ci    r"a([bc]+)(c*d)",
341c67d6573Sopenharmony_ci    r"abcd",
342c67d6573Sopenharmony_ci    Some((0, 4)),
343c67d6573Sopenharmony_ci    Some((1, 3)),
344c67d6573Sopenharmony_ci    Some((3, 4))
345c67d6573Sopenharmony_ci);
346c67d6573Sopenharmony_cimat!(
347c67d6573Sopenharmony_ci    match_basic_155,
348c67d6573Sopenharmony_ci    r"a([bc]*)(c+d)",
349c67d6573Sopenharmony_ci    r"abcd",
350c67d6573Sopenharmony_ci    Some((0, 4)),
351c67d6573Sopenharmony_ci    Some((1, 2)),
352c67d6573Sopenharmony_ci    Some((2, 4))
353c67d6573Sopenharmony_ci);
354c67d6573Sopenharmony_cimat!(match_basic_156, r"a[bcd]*dcdcde", r"adcdcde", Some((0, 7)));
355c67d6573Sopenharmony_cimat!(match_basic_157, r"(ab|a)b*c", r"abc", Some((0, 3)), Some((0, 2)));
356c67d6573Sopenharmony_cimat!(
357c67d6573Sopenharmony_ci    match_basic_158,
358c67d6573Sopenharmony_ci    r"((a)(b)c)(d)",
359c67d6573Sopenharmony_ci    r"abcd",
360c67d6573Sopenharmony_ci    Some((0, 4)),
361c67d6573Sopenharmony_ci    Some((0, 3)),
362c67d6573Sopenharmony_ci    Some((0, 1)),
363c67d6573Sopenharmony_ci    Some((1, 2)),
364c67d6573Sopenharmony_ci    Some((3, 4))
365c67d6573Sopenharmony_ci);
366c67d6573Sopenharmony_cimat!(match_basic_159, r"[A-Za-z_][A-Za-z0-9_]*", r"alpha", Some((0, 5)));
367c67d6573Sopenharmony_cimat!(match_basic_160, r"^a(bc+|b[eh])g|.h$", r"abh", Some((1, 3)));
368c67d6573Sopenharmony_cimat!(
369c67d6573Sopenharmony_ci    match_basic_161,
370c67d6573Sopenharmony_ci    r"(bc+d$|ef*g.|h?i(j|k))",
371c67d6573Sopenharmony_ci    r"effgz",
372c67d6573Sopenharmony_ci    Some((0, 5)),
373c67d6573Sopenharmony_ci    Some((0, 5))
374c67d6573Sopenharmony_ci);
375c67d6573Sopenharmony_cimat!(
376c67d6573Sopenharmony_ci    match_basic_162,
377c67d6573Sopenharmony_ci    r"(bc+d$|ef*g.|h?i(j|k))",
378c67d6573Sopenharmony_ci    r"ij",
379c67d6573Sopenharmony_ci    Some((0, 2)),
380c67d6573Sopenharmony_ci    Some((0, 2)),
381c67d6573Sopenharmony_ci    Some((1, 2))
382c67d6573Sopenharmony_ci);
383c67d6573Sopenharmony_cimat!(
384c67d6573Sopenharmony_ci    match_basic_163,
385c67d6573Sopenharmony_ci    r"(bc+d$|ef*g.|h?i(j|k))",
386c67d6573Sopenharmony_ci    r"reffgz",
387c67d6573Sopenharmony_ci    Some((1, 6)),
388c67d6573Sopenharmony_ci    Some((1, 6))
389c67d6573Sopenharmony_ci);
390c67d6573Sopenharmony_cimat!(
391c67d6573Sopenharmony_ci    match_basic_164,
392c67d6573Sopenharmony_ci    r"(((((((((a)))))))))",
393c67d6573Sopenharmony_ci    r"a",
394c67d6573Sopenharmony_ci    Some((0, 1)),
395c67d6573Sopenharmony_ci    Some((0, 1)),
396c67d6573Sopenharmony_ci    Some((0, 1)),
397c67d6573Sopenharmony_ci    Some((0, 1)),
398c67d6573Sopenharmony_ci    Some((0, 1)),
399c67d6573Sopenharmony_ci    Some((0, 1)),
400c67d6573Sopenharmony_ci    Some((0, 1)),
401c67d6573Sopenharmony_ci    Some((0, 1)),
402c67d6573Sopenharmony_ci    Some((0, 1)),
403c67d6573Sopenharmony_ci    Some((0, 1))
404c67d6573Sopenharmony_ci);
405c67d6573Sopenharmony_cimat!(
406c67d6573Sopenharmony_ci    match_basic_165,
407c67d6573Sopenharmony_ci    r"multiple words",
408c67d6573Sopenharmony_ci    r"multiple words yeah",
409c67d6573Sopenharmony_ci    Some((0, 14))
410c67d6573Sopenharmony_ci);
411c67d6573Sopenharmony_cimat!(
412c67d6573Sopenharmony_ci    match_basic_166,
413c67d6573Sopenharmony_ci    r"(.*)c(.*)",
414c67d6573Sopenharmony_ci    r"abcde",
415c67d6573Sopenharmony_ci    Some((0, 5)),
416c67d6573Sopenharmony_ci    Some((0, 2)),
417c67d6573Sopenharmony_ci    Some((3, 5))
418c67d6573Sopenharmony_ci);
419c67d6573Sopenharmony_cimat!(match_basic_167, r"abcd", r"abcd", Some((0, 4)));
420c67d6573Sopenharmony_cimat!(match_basic_168, r"a(bc)d", r"abcd", Some((0, 4)), Some((1, 3)));
421c67d6573Sopenharmony_cimat!(match_basic_169, r"a[-]?c", r"ac", Some((0, 3)));
422c67d6573Sopenharmony_cimat!(
423c67d6573Sopenharmony_ci    match_basic_170,
424c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
425c67d6573Sopenharmony_ci    r"Muammar Qaddafi",
426c67d6573Sopenharmony_ci    Some((0, 15)),
427c67d6573Sopenharmony_ci    None,
428c67d6573Sopenharmony_ci    Some((10, 12))
429c67d6573Sopenharmony_ci);
430c67d6573Sopenharmony_cimat!(
431c67d6573Sopenharmony_ci    match_basic_171,
432c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
433c67d6573Sopenharmony_ci    r"Mo'ammar Gadhafi",
434c67d6573Sopenharmony_ci    Some((0, 16)),
435c67d6573Sopenharmony_ci    None,
436c67d6573Sopenharmony_ci    Some((11, 13))
437c67d6573Sopenharmony_ci);
438c67d6573Sopenharmony_cimat!(
439c67d6573Sopenharmony_ci    match_basic_172,
440c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
441c67d6573Sopenharmony_ci    r"Muammar Kaddafi",
442c67d6573Sopenharmony_ci    Some((0, 15)),
443c67d6573Sopenharmony_ci    None,
444c67d6573Sopenharmony_ci    Some((10, 12))
445c67d6573Sopenharmony_ci);
446c67d6573Sopenharmony_cimat!(
447c67d6573Sopenharmony_ci    match_basic_173,
448c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
449c67d6573Sopenharmony_ci    r"Muammar Qadhafi",
450c67d6573Sopenharmony_ci    Some((0, 15)),
451c67d6573Sopenharmony_ci    None,
452c67d6573Sopenharmony_ci    Some((10, 12))
453c67d6573Sopenharmony_ci);
454c67d6573Sopenharmony_cimat!(
455c67d6573Sopenharmony_ci    match_basic_174,
456c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
457c67d6573Sopenharmony_ci    r"Muammar Gadafi",
458c67d6573Sopenharmony_ci    Some((0, 14)),
459c67d6573Sopenharmony_ci    None,
460c67d6573Sopenharmony_ci    Some((10, 11))
461c67d6573Sopenharmony_ci);
462c67d6573Sopenharmony_cimat!(
463c67d6573Sopenharmony_ci    match_basic_175,
464c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
465c67d6573Sopenharmony_ci    r"Mu'ammar Qadafi",
466c67d6573Sopenharmony_ci    Some((0, 15)),
467c67d6573Sopenharmony_ci    None,
468c67d6573Sopenharmony_ci    Some((11, 12))
469c67d6573Sopenharmony_ci);
470c67d6573Sopenharmony_cimat!(
471c67d6573Sopenharmony_ci    match_basic_176,
472c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
473c67d6573Sopenharmony_ci    r"Moamar Gaddafi",
474c67d6573Sopenharmony_ci    Some((0, 14)),
475c67d6573Sopenharmony_ci    None,
476c67d6573Sopenharmony_ci    Some((9, 11))
477c67d6573Sopenharmony_ci);
478c67d6573Sopenharmony_cimat!(
479c67d6573Sopenharmony_ci    match_basic_177,
480c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
481c67d6573Sopenharmony_ci    r"Mu'ammar Qadhdhafi",
482c67d6573Sopenharmony_ci    Some((0, 18)),
483c67d6573Sopenharmony_ci    None,
484c67d6573Sopenharmony_ci    Some((13, 15))
485c67d6573Sopenharmony_ci);
486c67d6573Sopenharmony_cimat!(
487c67d6573Sopenharmony_ci    match_basic_178,
488c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
489c67d6573Sopenharmony_ci    r"Muammar Khaddafi",
490c67d6573Sopenharmony_ci    Some((0, 16)),
491c67d6573Sopenharmony_ci    None,
492c67d6573Sopenharmony_ci    Some((11, 13))
493c67d6573Sopenharmony_ci);
494c67d6573Sopenharmony_cimat!(
495c67d6573Sopenharmony_ci    match_basic_179,
496c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
497c67d6573Sopenharmony_ci    r"Muammar Ghaddafy",
498c67d6573Sopenharmony_ci    Some((0, 16)),
499c67d6573Sopenharmony_ci    None,
500c67d6573Sopenharmony_ci    Some((11, 13))
501c67d6573Sopenharmony_ci);
502c67d6573Sopenharmony_cimat!(
503c67d6573Sopenharmony_ci    match_basic_180,
504c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
505c67d6573Sopenharmony_ci    r"Muammar Ghadafi",
506c67d6573Sopenharmony_ci    Some((0, 15)),
507c67d6573Sopenharmony_ci    None,
508c67d6573Sopenharmony_ci    Some((11, 12))
509c67d6573Sopenharmony_ci);
510c67d6573Sopenharmony_cimat!(
511c67d6573Sopenharmony_ci    match_basic_181,
512c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
513c67d6573Sopenharmony_ci    r"Muammar Ghaddafi",
514c67d6573Sopenharmony_ci    Some((0, 16)),
515c67d6573Sopenharmony_ci    None,
516c67d6573Sopenharmony_ci    Some((11, 13))
517c67d6573Sopenharmony_ci);
518c67d6573Sopenharmony_cimat!(
519c67d6573Sopenharmony_ci    match_basic_182,
520c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
521c67d6573Sopenharmony_ci    r"Muamar Kaddafi",
522c67d6573Sopenharmony_ci    Some((0, 14)),
523c67d6573Sopenharmony_ci    None,
524c67d6573Sopenharmony_ci    Some((9, 11))
525c67d6573Sopenharmony_ci);
526c67d6573Sopenharmony_cimat!(
527c67d6573Sopenharmony_ci    match_basic_183,
528c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
529c67d6573Sopenharmony_ci    r"Muammar Quathafi",
530c67d6573Sopenharmony_ci    Some((0, 16)),
531c67d6573Sopenharmony_ci    None,
532c67d6573Sopenharmony_ci    Some((11, 13))
533c67d6573Sopenharmony_ci);
534c67d6573Sopenharmony_cimat!(
535c67d6573Sopenharmony_ci    match_basic_184,
536c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
537c67d6573Sopenharmony_ci    r"Muammar Gheddafi",
538c67d6573Sopenharmony_ci    Some((0, 16)),
539c67d6573Sopenharmony_ci    None,
540c67d6573Sopenharmony_ci    Some((11, 13))
541c67d6573Sopenharmony_ci);
542c67d6573Sopenharmony_cimat!(
543c67d6573Sopenharmony_ci    match_basic_185,
544c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
545c67d6573Sopenharmony_ci    r"Moammar Khadafy",
546c67d6573Sopenharmony_ci    Some((0, 15)),
547c67d6573Sopenharmony_ci    None,
548c67d6573Sopenharmony_ci    Some((11, 12))
549c67d6573Sopenharmony_ci);
550c67d6573Sopenharmony_cimat!(
551c67d6573Sopenharmony_ci    match_basic_186,
552c67d6573Sopenharmony_ci    r"M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]",
553c67d6573Sopenharmony_ci    r"Moammar Qudhafi",
554c67d6573Sopenharmony_ci    Some((0, 15)),
555c67d6573Sopenharmony_ci    None,
556c67d6573Sopenharmony_ci    Some((10, 12))
557c67d6573Sopenharmony_ci);
558c67d6573Sopenharmony_cimat!(match_basic_187, r"a+(b|c)*d+", r"aabcdd", Some((0, 6)), Some((3, 4)));
559c67d6573Sopenharmony_cimat!(match_basic_188, r"^.+$", r"vivi", Some((0, 4)));
560c67d6573Sopenharmony_cimat!(match_basic_189, r"^(.+)$", r"vivi", Some((0, 4)), Some((0, 4)));
561c67d6573Sopenharmony_cimat!(
562c67d6573Sopenharmony_ci    match_basic_190,
563c67d6573Sopenharmony_ci    r"^([^!.]+).att.com!(.+)$",
564c67d6573Sopenharmony_ci    r"gryphon.att.com!eby",
565c67d6573Sopenharmony_ci    Some((0, 19)),
566c67d6573Sopenharmony_ci    Some((0, 7)),
567c67d6573Sopenharmony_ci    Some((16, 19))
568c67d6573Sopenharmony_ci);
569c67d6573Sopenharmony_cimat!(
570c67d6573Sopenharmony_ci    match_basic_191,
571c67d6573Sopenharmony_ci    r"^([^!]+!)?([^!]+)$",
572c67d6573Sopenharmony_ci    r"bas",
573c67d6573Sopenharmony_ci    Some((0, 3)),
574c67d6573Sopenharmony_ci    None,
575c67d6573Sopenharmony_ci    Some((0, 3))
576c67d6573Sopenharmony_ci);
577c67d6573Sopenharmony_cimat!(
578c67d6573Sopenharmony_ci    match_basic_192,
579c67d6573Sopenharmony_ci    r"^([^!]+!)?([^!]+)$",
580c67d6573Sopenharmony_ci    r"bar!bas",
581c67d6573Sopenharmony_ci    Some((0, 7)),
582c67d6573Sopenharmony_ci    Some((0, 4)),
583c67d6573Sopenharmony_ci    Some((4, 7))
584c67d6573Sopenharmony_ci);
585c67d6573Sopenharmony_cimat!(
586c67d6573Sopenharmony_ci    match_basic_193,
587c67d6573Sopenharmony_ci    r"^([^!]+!)?([^!]+)$",
588c67d6573Sopenharmony_ci    r"foo!bas",
589c67d6573Sopenharmony_ci    Some((0, 7)),
590c67d6573Sopenharmony_ci    Some((0, 4)),
591c67d6573Sopenharmony_ci    Some((4, 7))
592c67d6573Sopenharmony_ci);
593c67d6573Sopenharmony_cimat!(
594c67d6573Sopenharmony_ci    match_basic_194,
595c67d6573Sopenharmony_ci    r"^.+!([^!]+!)([^!]+)$",
596c67d6573Sopenharmony_ci    r"foo!bar!bas",
597c67d6573Sopenharmony_ci    Some((0, 11)),
598c67d6573Sopenharmony_ci    Some((4, 8)),
599c67d6573Sopenharmony_ci    Some((8, 11))
600c67d6573Sopenharmony_ci);
601c67d6573Sopenharmony_cimat!(
602c67d6573Sopenharmony_ci    match_basic_195,
603c67d6573Sopenharmony_ci    r"((foo)|(bar))!bas",
604c67d6573Sopenharmony_ci    r"bar!bas",
605c67d6573Sopenharmony_ci    Some((0, 7)),
606c67d6573Sopenharmony_ci    Some((0, 3)),
607c67d6573Sopenharmony_ci    None,
608c67d6573Sopenharmony_ci    Some((0, 3))
609c67d6573Sopenharmony_ci);
610c67d6573Sopenharmony_cimat!(
611c67d6573Sopenharmony_ci    match_basic_196,
612c67d6573Sopenharmony_ci    r"((foo)|(bar))!bas",
613c67d6573Sopenharmony_ci    r"foo!bar!bas",
614c67d6573Sopenharmony_ci    Some((4, 11)),
615c67d6573Sopenharmony_ci    Some((4, 7)),
616c67d6573Sopenharmony_ci    None,
617c67d6573Sopenharmony_ci    Some((4, 7))
618c67d6573Sopenharmony_ci);
619c67d6573Sopenharmony_cimat!(
620c67d6573Sopenharmony_ci    match_basic_197,
621c67d6573Sopenharmony_ci    r"((foo)|(bar))!bas",
622c67d6573Sopenharmony_ci    r"foo!bas",
623c67d6573Sopenharmony_ci    Some((0, 7)),
624c67d6573Sopenharmony_ci    Some((0, 3)),
625c67d6573Sopenharmony_ci    Some((0, 3))
626c67d6573Sopenharmony_ci);
627c67d6573Sopenharmony_cimat!(
628c67d6573Sopenharmony_ci    match_basic_198,
629c67d6573Sopenharmony_ci    r"((foo)|bar)!bas",
630c67d6573Sopenharmony_ci    r"bar!bas",
631c67d6573Sopenharmony_ci    Some((0, 7)),
632c67d6573Sopenharmony_ci    Some((0, 3))
633c67d6573Sopenharmony_ci);
634c67d6573Sopenharmony_cimat!(
635c67d6573Sopenharmony_ci    match_basic_199,
636c67d6573Sopenharmony_ci    r"((foo)|bar)!bas",
637c67d6573Sopenharmony_ci    r"foo!bar!bas",
638c67d6573Sopenharmony_ci    Some((4, 11)),
639c67d6573Sopenharmony_ci    Some((4, 7))
640c67d6573Sopenharmony_ci);
641c67d6573Sopenharmony_cimat!(
642c67d6573Sopenharmony_ci    match_basic_200,
643c67d6573Sopenharmony_ci    r"((foo)|bar)!bas",
644c67d6573Sopenharmony_ci    r"foo!bas",
645c67d6573Sopenharmony_ci    Some((0, 7)),
646c67d6573Sopenharmony_ci    Some((0, 3)),
647c67d6573Sopenharmony_ci    Some((0, 3))
648c67d6573Sopenharmony_ci);
649c67d6573Sopenharmony_cimat!(
650c67d6573Sopenharmony_ci    match_basic_201,
651c67d6573Sopenharmony_ci    r"(foo|(bar))!bas",
652c67d6573Sopenharmony_ci    r"bar!bas",
653c67d6573Sopenharmony_ci    Some((0, 7)),
654c67d6573Sopenharmony_ci    Some((0, 3)),
655c67d6573Sopenharmony_ci    Some((0, 3))
656c67d6573Sopenharmony_ci);
657c67d6573Sopenharmony_cimat!(
658c67d6573Sopenharmony_ci    match_basic_202,
659c67d6573Sopenharmony_ci    r"(foo|(bar))!bas",
660c67d6573Sopenharmony_ci    r"foo!bar!bas",
661c67d6573Sopenharmony_ci    Some((4, 11)),
662c67d6573Sopenharmony_ci    Some((4, 7)),
663c67d6573Sopenharmony_ci    Some((4, 7))
664c67d6573Sopenharmony_ci);
665c67d6573Sopenharmony_cimat!(
666c67d6573Sopenharmony_ci    match_basic_203,
667c67d6573Sopenharmony_ci    r"(foo|(bar))!bas",
668c67d6573Sopenharmony_ci    r"foo!bas",
669c67d6573Sopenharmony_ci    Some((0, 7)),
670c67d6573Sopenharmony_ci    Some((0, 3))
671c67d6573Sopenharmony_ci);
672c67d6573Sopenharmony_cimat!(
673c67d6573Sopenharmony_ci    match_basic_204,
674c67d6573Sopenharmony_ci    r"(foo|bar)!bas",
675c67d6573Sopenharmony_ci    r"bar!bas",
676c67d6573Sopenharmony_ci    Some((0, 7)),
677c67d6573Sopenharmony_ci    Some((0, 3))
678c67d6573Sopenharmony_ci);
679c67d6573Sopenharmony_cimat!(
680c67d6573Sopenharmony_ci    match_basic_205,
681c67d6573Sopenharmony_ci    r"(foo|bar)!bas",
682c67d6573Sopenharmony_ci    r"foo!bar!bas",
683c67d6573Sopenharmony_ci    Some((4, 11)),
684c67d6573Sopenharmony_ci    Some((4, 7))
685c67d6573Sopenharmony_ci);
686c67d6573Sopenharmony_cimat!(
687c67d6573Sopenharmony_ci    match_basic_206,
688c67d6573Sopenharmony_ci    r"(foo|bar)!bas",
689c67d6573Sopenharmony_ci    r"foo!bas",
690c67d6573Sopenharmony_ci    Some((0, 7)),
691c67d6573Sopenharmony_ci    Some((0, 3))
692c67d6573Sopenharmony_ci);
693c67d6573Sopenharmony_cimat!(
694c67d6573Sopenharmony_ci    match_basic_207,
695c67d6573Sopenharmony_ci    r"^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$",
696c67d6573Sopenharmony_ci    r"foo!bar!bas",
697c67d6573Sopenharmony_ci    Some((0, 11)),
698c67d6573Sopenharmony_ci    Some((0, 11)),
699c67d6573Sopenharmony_ci    None,
700c67d6573Sopenharmony_ci    None,
701c67d6573Sopenharmony_ci    Some((4, 8)),
702c67d6573Sopenharmony_ci    Some((8, 11))
703c67d6573Sopenharmony_ci);
704c67d6573Sopenharmony_cimat!(
705c67d6573Sopenharmony_ci    match_basic_208,
706c67d6573Sopenharmony_ci    r"^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$",
707c67d6573Sopenharmony_ci    r"bas",
708c67d6573Sopenharmony_ci    Some((0, 3)),
709c67d6573Sopenharmony_ci    None,
710c67d6573Sopenharmony_ci    Some((0, 3))
711c67d6573Sopenharmony_ci);
712c67d6573Sopenharmony_cimat!(
713c67d6573Sopenharmony_ci    match_basic_209,
714c67d6573Sopenharmony_ci    r"^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$",
715c67d6573Sopenharmony_ci    r"bar!bas",
716c67d6573Sopenharmony_ci    Some((0, 7)),
717c67d6573Sopenharmony_ci    Some((0, 4)),
718c67d6573Sopenharmony_ci    Some((4, 7))
719c67d6573Sopenharmony_ci);
720c67d6573Sopenharmony_cimat!(
721c67d6573Sopenharmony_ci    match_basic_210,
722c67d6573Sopenharmony_ci    r"^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$",
723c67d6573Sopenharmony_ci    r"foo!bar!bas",
724c67d6573Sopenharmony_ci    Some((0, 11)),
725c67d6573Sopenharmony_ci    None,
726c67d6573Sopenharmony_ci    None,
727c67d6573Sopenharmony_ci    Some((4, 8)),
728c67d6573Sopenharmony_ci    Some((8, 11))
729c67d6573Sopenharmony_ci);
730c67d6573Sopenharmony_cimat!(
731c67d6573Sopenharmony_ci    match_basic_211,
732c67d6573Sopenharmony_ci    r"^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$",
733c67d6573Sopenharmony_ci    r"foo!bas",
734c67d6573Sopenharmony_ci    Some((0, 7)),
735c67d6573Sopenharmony_ci    Some((0, 4)),
736c67d6573Sopenharmony_ci    Some((4, 7))
737c67d6573Sopenharmony_ci);
738c67d6573Sopenharmony_cimat!(
739c67d6573Sopenharmony_ci    match_basic_212,
740c67d6573Sopenharmony_ci    r"^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$",
741c67d6573Sopenharmony_ci    r"bas",
742c67d6573Sopenharmony_ci    Some((0, 3)),
743c67d6573Sopenharmony_ci    Some((0, 3)),
744c67d6573Sopenharmony_ci    None,
745c67d6573Sopenharmony_ci    Some((0, 3))
746c67d6573Sopenharmony_ci);
747c67d6573Sopenharmony_cimat!(
748c67d6573Sopenharmony_ci    match_basic_213,
749c67d6573Sopenharmony_ci    r"^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$",
750c67d6573Sopenharmony_ci    r"bar!bas",
751c67d6573Sopenharmony_ci    Some((0, 7)),
752c67d6573Sopenharmony_ci    Some((0, 7)),
753c67d6573Sopenharmony_ci    Some((0, 4)),
754c67d6573Sopenharmony_ci    Some((4, 7))
755c67d6573Sopenharmony_ci);
756c67d6573Sopenharmony_cimat!(
757c67d6573Sopenharmony_ci    match_basic_214,
758c67d6573Sopenharmony_ci    r"^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$",
759c67d6573Sopenharmony_ci    r"foo!bar!bas",
760c67d6573Sopenharmony_ci    Some((0, 11)),
761c67d6573Sopenharmony_ci    Some((0, 11)),
762c67d6573Sopenharmony_ci    None,
763c67d6573Sopenharmony_ci    None,
764c67d6573Sopenharmony_ci    Some((4, 8)),
765c67d6573Sopenharmony_ci    Some((8, 11))
766c67d6573Sopenharmony_ci);
767c67d6573Sopenharmony_cimat!(
768c67d6573Sopenharmony_ci    match_basic_215,
769c67d6573Sopenharmony_ci    r"^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$",
770c67d6573Sopenharmony_ci    r"foo!bas",
771c67d6573Sopenharmony_ci    Some((0, 7)),
772c67d6573Sopenharmony_ci    Some((0, 7)),
773c67d6573Sopenharmony_ci    Some((0, 4)),
774c67d6573Sopenharmony_ci    Some((4, 7))
775c67d6573Sopenharmony_ci);
776c67d6573Sopenharmony_cimat!(match_basic_216, r".*(/XXX).*", r"/XXX", Some((0, 4)), Some((0, 4)));
777c67d6573Sopenharmony_cimat!(match_basic_217, r".*(\\XXX).*", r"\XXX", Some((0, 4)), Some((0, 4)));
778c67d6573Sopenharmony_cimat!(match_basic_218, r"\\XXX", r"\XXX", Some((0, 4)));
779c67d6573Sopenharmony_cimat!(match_basic_219, r".*(/000).*", r"/000", Some((0, 4)), Some((0, 4)));
780c67d6573Sopenharmony_cimat!(match_basic_220, r".*(\\000).*", r"\000", Some((0, 4)), Some((0, 4)));
781c67d6573Sopenharmony_cimat!(match_basic_221, r"\\000", r"\000", Some((0, 4)));
782c67d6573Sopenharmony_ci
783c67d6573Sopenharmony_ci// Tests from nullsubexpr.dat
784c67d6573Sopenharmony_cimat!(match_nullsubexpr_3, r"(a*)*", r"a", Some((0, 1)), Some((0, 1)));
785c67d6573Sopenharmony_cimat!(match_nullsubexpr_5, r"(a*)*", r"x", Some((0, 0)), None);
786c67d6573Sopenharmony_cimat!(match_nullsubexpr_6, r"(a*)*", r"aaaaaa", Some((0, 6)), Some((0, 6)));
787c67d6573Sopenharmony_cimat!(match_nullsubexpr_7, r"(a*)*", r"aaaaaax", Some((0, 6)), Some((0, 6)));
788c67d6573Sopenharmony_cimat!(match_nullsubexpr_8, r"(a*)+", r"a", Some((0, 1)), Some((0, 1)));
789c67d6573Sopenharmony_cimat!(match_nullsubexpr_9, r"(a*)+", r"x", Some((0, 0)), Some((0, 0)));
790c67d6573Sopenharmony_cimat!(match_nullsubexpr_10, r"(a*)+", r"aaaaaa", Some((0, 6)), Some((0, 6)));
791c67d6573Sopenharmony_cimat!(match_nullsubexpr_11, r"(a*)+", r"aaaaaax", Some((0, 6)), Some((0, 6)));
792c67d6573Sopenharmony_cimat!(match_nullsubexpr_12, r"(a+)*", r"a", Some((0, 1)), Some((0, 1)));
793c67d6573Sopenharmony_cimat!(match_nullsubexpr_13, r"(a+)*", r"x", Some((0, 0)));
794c67d6573Sopenharmony_cimat!(match_nullsubexpr_14, r"(a+)*", r"aaaaaa", Some((0, 6)), Some((0, 6)));
795c67d6573Sopenharmony_cimat!(match_nullsubexpr_15, r"(a+)*", r"aaaaaax", Some((0, 6)), Some((0, 6)));
796c67d6573Sopenharmony_cimat!(match_nullsubexpr_16, r"(a+)+", r"a", Some((0, 1)), Some((0, 1)));
797c67d6573Sopenharmony_cimat!(match_nullsubexpr_17, r"(a+)+", r"x", None);
798c67d6573Sopenharmony_cimat!(match_nullsubexpr_18, r"(a+)+", r"aaaaaa", Some((0, 6)), Some((0, 6)));
799c67d6573Sopenharmony_cimat!(match_nullsubexpr_19, r"(a+)+", r"aaaaaax", Some((0, 6)), Some((0, 6)));
800c67d6573Sopenharmony_cimat!(match_nullsubexpr_21, r"([a]*)*", r"a", Some((0, 1)), Some((0, 1)));
801c67d6573Sopenharmony_cimat!(match_nullsubexpr_23, r"([a]*)*", r"x", Some((0, 0)), None);
802c67d6573Sopenharmony_cimat!(match_nullsubexpr_24, r"([a]*)*", r"aaaaaa", Some((0, 6)), Some((0, 6)));
803c67d6573Sopenharmony_cimat!(match_nullsubexpr_25, r"([a]*)*", r"aaaaaax", Some((0, 6)), Some((0, 6)));
804c67d6573Sopenharmony_cimat!(match_nullsubexpr_26, r"([a]*)+", r"a", Some((0, 1)), Some((0, 1)));
805c67d6573Sopenharmony_cimat!(match_nullsubexpr_27, r"([a]*)+", r"x", Some((0, 0)), Some((0, 0)));
806c67d6573Sopenharmony_cimat!(match_nullsubexpr_28, r"([a]*)+", r"aaaaaa", Some((0, 6)), Some((0, 6)));
807c67d6573Sopenharmony_cimat!(match_nullsubexpr_29, r"([a]*)+", r"aaaaaax", Some((0, 6)), Some((0, 6)));
808c67d6573Sopenharmony_cimat!(match_nullsubexpr_30, r"([^b]*)*", r"a", Some((0, 1)), Some((0, 1)));
809c67d6573Sopenharmony_cimat!(match_nullsubexpr_32, r"([^b]*)*", r"b", Some((0, 0)), None);
810c67d6573Sopenharmony_cimat!(match_nullsubexpr_33, r"([^b]*)*", r"aaaaaa", Some((0, 6)), Some((0, 6)));
811c67d6573Sopenharmony_cimat!(
812c67d6573Sopenharmony_ci    match_nullsubexpr_34,
813c67d6573Sopenharmony_ci    r"([^b]*)*",
814c67d6573Sopenharmony_ci    r"aaaaaab",
815c67d6573Sopenharmony_ci    Some((0, 6)),
816c67d6573Sopenharmony_ci    Some((0, 6))
817c67d6573Sopenharmony_ci);
818c67d6573Sopenharmony_cimat!(match_nullsubexpr_35, r"([ab]*)*", r"a", Some((0, 1)), Some((0, 1)));
819c67d6573Sopenharmony_cimat!(match_nullsubexpr_36, r"([ab]*)*", r"aaaaaa", Some((0, 6)), Some((0, 6)));
820c67d6573Sopenharmony_cimat!(match_nullsubexpr_37, r"([ab]*)*", r"ababab", Some((0, 6)), Some((0, 6)));
821c67d6573Sopenharmony_cimat!(match_nullsubexpr_38, r"([ab]*)*", r"bababa", Some((0, 6)), Some((0, 6)));
822c67d6573Sopenharmony_cimat!(match_nullsubexpr_39, r"([ab]*)*", r"b", Some((0, 1)), Some((0, 1)));
823c67d6573Sopenharmony_cimat!(match_nullsubexpr_40, r"([ab]*)*", r"bbbbbb", Some((0, 6)), Some((0, 6)));
824c67d6573Sopenharmony_cimat!(
825c67d6573Sopenharmony_ci    match_nullsubexpr_41,
826c67d6573Sopenharmony_ci    r"([ab]*)*",
827c67d6573Sopenharmony_ci    r"aaaabcde",
828c67d6573Sopenharmony_ci    Some((0, 5)),
829c67d6573Sopenharmony_ci    Some((0, 5))
830c67d6573Sopenharmony_ci);
831c67d6573Sopenharmony_cimat!(match_nullsubexpr_42, r"([^a]*)*", r"b", Some((0, 1)), Some((0, 1)));
832c67d6573Sopenharmony_cimat!(match_nullsubexpr_43, r"([^a]*)*", r"bbbbbb", Some((0, 6)), Some((0, 6)));
833c67d6573Sopenharmony_cimat!(match_nullsubexpr_45, r"([^a]*)*", r"aaaaaa", Some((0, 0)), None);
834c67d6573Sopenharmony_cimat!(
835c67d6573Sopenharmony_ci    match_nullsubexpr_46,
836c67d6573Sopenharmony_ci    r"([^ab]*)*",
837c67d6573Sopenharmony_ci    r"ccccxx",
838c67d6573Sopenharmony_ci    Some((0, 6)),
839c67d6573Sopenharmony_ci    Some((0, 6))
840c67d6573Sopenharmony_ci);
841c67d6573Sopenharmony_cimat!(match_nullsubexpr_48, r"([^ab]*)*", r"ababab", Some((0, 0)), None);
842c67d6573Sopenharmony_cimat!(
843c67d6573Sopenharmony_ci    match_nullsubexpr_50,
844c67d6573Sopenharmony_ci    r"((z)+|a)*",
845c67d6573Sopenharmony_ci    r"zabcde",
846c67d6573Sopenharmony_ci    Some((0, 2)),
847c67d6573Sopenharmony_ci    Some((1, 2))
848c67d6573Sopenharmony_ci);
849c67d6573Sopenharmony_cimat!(
850c67d6573Sopenharmony_ci    match_nullsubexpr_69,
851c67d6573Sopenharmony_ci    r"(a*)*(x)",
852c67d6573Sopenharmony_ci    r"x",
853c67d6573Sopenharmony_ci    Some((0, 1)),
854c67d6573Sopenharmony_ci    None,
855c67d6573Sopenharmony_ci    Some((0, 1))
856c67d6573Sopenharmony_ci);
857c67d6573Sopenharmony_cimat!(
858c67d6573Sopenharmony_ci    match_nullsubexpr_70,
859c67d6573Sopenharmony_ci    r"(a*)*(x)",
860c67d6573Sopenharmony_ci    r"ax",
861c67d6573Sopenharmony_ci    Some((0, 2)),
862c67d6573Sopenharmony_ci    Some((0, 1)),
863c67d6573Sopenharmony_ci    Some((1, 2))
864c67d6573Sopenharmony_ci);
865c67d6573Sopenharmony_cimat!(
866c67d6573Sopenharmony_ci    match_nullsubexpr_71,
867c67d6573Sopenharmony_ci    r"(a*)*(x)",
868c67d6573Sopenharmony_ci    r"axa",
869c67d6573Sopenharmony_ci    Some((0, 2)),
870c67d6573Sopenharmony_ci    Some((0, 1)),
871c67d6573Sopenharmony_ci    Some((1, 2))
872c67d6573Sopenharmony_ci);
873c67d6573Sopenharmony_cimat!(
874c67d6573Sopenharmony_ci    match_nullsubexpr_73,
875c67d6573Sopenharmony_ci    r"(a*)+(x)",
876c67d6573Sopenharmony_ci    r"x",
877c67d6573Sopenharmony_ci    Some((0, 1)),
878c67d6573Sopenharmony_ci    Some((0, 0)),
879c67d6573Sopenharmony_ci    Some((0, 1))
880c67d6573Sopenharmony_ci);
881c67d6573Sopenharmony_cimat!(
882c67d6573Sopenharmony_ci    match_nullsubexpr_74,
883c67d6573Sopenharmony_ci    r"(a*)+(x)",
884c67d6573Sopenharmony_ci    r"ax",
885c67d6573Sopenharmony_ci    Some((0, 2)),
886c67d6573Sopenharmony_ci    Some((0, 1)),
887c67d6573Sopenharmony_ci    Some((1, 2))
888c67d6573Sopenharmony_ci);
889c67d6573Sopenharmony_cimat!(
890c67d6573Sopenharmony_ci    match_nullsubexpr_75,
891c67d6573Sopenharmony_ci    r"(a*)+(x)",
892c67d6573Sopenharmony_ci    r"axa",
893c67d6573Sopenharmony_ci    Some((0, 2)),
894c67d6573Sopenharmony_ci    Some((0, 1)),
895c67d6573Sopenharmony_ci    Some((1, 2))
896c67d6573Sopenharmony_ci);
897c67d6573Sopenharmony_cimat!(
898c67d6573Sopenharmony_ci    match_nullsubexpr_77,
899c67d6573Sopenharmony_ci    r"(a*){2}(x)",
900c67d6573Sopenharmony_ci    r"x",
901c67d6573Sopenharmony_ci    Some((0, 1)),
902c67d6573Sopenharmony_ci    Some((0, 0)),
903c67d6573Sopenharmony_ci    Some((0, 1))
904c67d6573Sopenharmony_ci);
905c67d6573Sopenharmony_cimat!(
906c67d6573Sopenharmony_ci    match_nullsubexpr_78,
907c67d6573Sopenharmony_ci    r"(a*){2}(x)",
908c67d6573Sopenharmony_ci    r"ax",
909c67d6573Sopenharmony_ci    Some((0, 2)),
910c67d6573Sopenharmony_ci    Some((1, 1)),
911c67d6573Sopenharmony_ci    Some((1, 2))
912c67d6573Sopenharmony_ci);
913c67d6573Sopenharmony_cimat!(
914c67d6573Sopenharmony_ci    match_nullsubexpr_79,
915c67d6573Sopenharmony_ci    r"(a*){2}(x)",
916c67d6573Sopenharmony_ci    r"axa",
917c67d6573Sopenharmony_ci    Some((0, 2)),
918c67d6573Sopenharmony_ci    Some((1, 1)),
919c67d6573Sopenharmony_ci    Some((1, 2))
920c67d6573Sopenharmony_ci);
921c67d6573Sopenharmony_ci
922c67d6573Sopenharmony_ci// Tests from repetition.dat
923c67d6573Sopenharmony_cimat!(match_repetition_10, r"((..)|(.))", r"", None);
924c67d6573Sopenharmony_cimat!(match_repetition_11, r"((..)|(.))((..)|(.))", r"", None);
925c67d6573Sopenharmony_cimat!(match_repetition_12, r"((..)|(.))((..)|(.))((..)|(.))", r"", None);
926c67d6573Sopenharmony_cimat!(match_repetition_14, r"((..)|(.)){1}", r"", None);
927c67d6573Sopenharmony_cimat!(match_repetition_15, r"((..)|(.)){2}", r"", None);
928c67d6573Sopenharmony_cimat!(match_repetition_16, r"((..)|(.)){3}", r"", None);
929c67d6573Sopenharmony_cimat!(match_repetition_18, r"((..)|(.))*", r"", Some((0, 0)));
930c67d6573Sopenharmony_cimat!(
931c67d6573Sopenharmony_ci    match_repetition_20,
932c67d6573Sopenharmony_ci    r"((..)|(.))",
933c67d6573Sopenharmony_ci    r"a",
934c67d6573Sopenharmony_ci    Some((0, 1)),
935c67d6573Sopenharmony_ci    Some((0, 1)),
936c67d6573Sopenharmony_ci    None,
937c67d6573Sopenharmony_ci    Some((0, 1))
938c67d6573Sopenharmony_ci);
939c67d6573Sopenharmony_cimat!(match_repetition_21, r"((..)|(.))((..)|(.))", r"a", None);
940c67d6573Sopenharmony_cimat!(match_repetition_22, r"((..)|(.))((..)|(.))((..)|(.))", r"a", None);
941c67d6573Sopenharmony_cimat!(
942c67d6573Sopenharmony_ci    match_repetition_24,
943c67d6573Sopenharmony_ci    r"((..)|(.)){1}",
944c67d6573Sopenharmony_ci    r"a",
945c67d6573Sopenharmony_ci    Some((0, 1)),
946c67d6573Sopenharmony_ci    Some((0, 1)),
947c67d6573Sopenharmony_ci    None,
948c67d6573Sopenharmony_ci    Some((0, 1))
949c67d6573Sopenharmony_ci);
950c67d6573Sopenharmony_cimat!(match_repetition_25, r"((..)|(.)){2}", r"a", None);
951c67d6573Sopenharmony_cimat!(match_repetition_26, r"((..)|(.)){3}", r"a", None);
952c67d6573Sopenharmony_cimat!(
953c67d6573Sopenharmony_ci    match_repetition_28,
954c67d6573Sopenharmony_ci    r"((..)|(.))*",
955c67d6573Sopenharmony_ci    r"a",
956c67d6573Sopenharmony_ci    Some((0, 1)),
957c67d6573Sopenharmony_ci    Some((0, 1)),
958c67d6573Sopenharmony_ci    None,
959c67d6573Sopenharmony_ci    Some((0, 1))
960c67d6573Sopenharmony_ci);
961c67d6573Sopenharmony_cimat!(
962c67d6573Sopenharmony_ci    match_repetition_30,
963c67d6573Sopenharmony_ci    r"((..)|(.))",
964c67d6573Sopenharmony_ci    r"aa",
965c67d6573Sopenharmony_ci    Some((0, 2)),
966c67d6573Sopenharmony_ci    Some((0, 2)),
967c67d6573Sopenharmony_ci    Some((0, 2)),
968c67d6573Sopenharmony_ci    None
969c67d6573Sopenharmony_ci);
970c67d6573Sopenharmony_cimat!(
971c67d6573Sopenharmony_ci    match_repetition_31,
972c67d6573Sopenharmony_ci    r"((..)|(.))((..)|(.))",
973c67d6573Sopenharmony_ci    r"aa",
974c67d6573Sopenharmony_ci    Some((0, 2)),
975c67d6573Sopenharmony_ci    Some((0, 1)),
976c67d6573Sopenharmony_ci    None,
977c67d6573Sopenharmony_ci    Some((0, 1)),
978c67d6573Sopenharmony_ci    Some((1, 2)),
979c67d6573Sopenharmony_ci    None,
980c67d6573Sopenharmony_ci    Some((1, 2))
981c67d6573Sopenharmony_ci);
982c67d6573Sopenharmony_cimat!(match_repetition_32, r"((..)|(.))((..)|(.))((..)|(.))", r"aa", None);
983c67d6573Sopenharmony_cimat!(
984c67d6573Sopenharmony_ci    match_repetition_34,
985c67d6573Sopenharmony_ci    r"((..)|(.)){1}",
986c67d6573Sopenharmony_ci    r"aa",
987c67d6573Sopenharmony_ci    Some((0, 2)),
988c67d6573Sopenharmony_ci    Some((0, 2)),
989c67d6573Sopenharmony_ci    Some((0, 2)),
990c67d6573Sopenharmony_ci    None
991c67d6573Sopenharmony_ci);
992c67d6573Sopenharmony_cimat!(
993c67d6573Sopenharmony_ci    match_repetition_35,
994c67d6573Sopenharmony_ci    r"((..)|(.)){2}",
995c67d6573Sopenharmony_ci    r"aa",
996c67d6573Sopenharmony_ci    Some((0, 2)),
997c67d6573Sopenharmony_ci    Some((1, 2)),
998c67d6573Sopenharmony_ci    None,
999c67d6573Sopenharmony_ci    Some((1, 2))
1000c67d6573Sopenharmony_ci);
1001c67d6573Sopenharmony_cimat!(match_repetition_36, r"((..)|(.)){3}", r"aa", None);
1002c67d6573Sopenharmony_cimat!(
1003c67d6573Sopenharmony_ci    match_repetition_38,
1004c67d6573Sopenharmony_ci    r"((..)|(.))*",
1005c67d6573Sopenharmony_ci    r"aa",
1006c67d6573Sopenharmony_ci    Some((0, 2)),
1007c67d6573Sopenharmony_ci    Some((0, 2)),
1008c67d6573Sopenharmony_ci    Some((0, 2)),
1009c67d6573Sopenharmony_ci    None
1010c67d6573Sopenharmony_ci);
1011c67d6573Sopenharmony_cimat!(
1012c67d6573Sopenharmony_ci    match_repetition_40,
1013c67d6573Sopenharmony_ci    r"((..)|(.))",
1014c67d6573Sopenharmony_ci    r"aaa",
1015c67d6573Sopenharmony_ci    Some((0, 2)),
1016c67d6573Sopenharmony_ci    Some((0, 2)),
1017c67d6573Sopenharmony_ci    Some((0, 2)),
1018c67d6573Sopenharmony_ci    None
1019c67d6573Sopenharmony_ci);
1020c67d6573Sopenharmony_cimat!(
1021c67d6573Sopenharmony_ci    match_repetition_41,
1022c67d6573Sopenharmony_ci    r"((..)|(.))((..)|(.))",
1023c67d6573Sopenharmony_ci    r"aaa",
1024c67d6573Sopenharmony_ci    Some((0, 3)),
1025c67d6573Sopenharmony_ci    Some((0, 2)),
1026c67d6573Sopenharmony_ci    Some((0, 2)),
1027c67d6573Sopenharmony_ci    None,
1028c67d6573Sopenharmony_ci    Some((2, 3)),
1029c67d6573Sopenharmony_ci    None,
1030c67d6573Sopenharmony_ci    Some((2, 3))
1031c67d6573Sopenharmony_ci);
1032c67d6573Sopenharmony_cimat!(
1033c67d6573Sopenharmony_ci    match_repetition_42,
1034c67d6573Sopenharmony_ci    r"((..)|(.))((..)|(.))((..)|(.))",
1035c67d6573Sopenharmony_ci    r"aaa",
1036c67d6573Sopenharmony_ci    Some((0, 3)),
1037c67d6573Sopenharmony_ci    Some((0, 1)),
1038c67d6573Sopenharmony_ci    None,
1039c67d6573Sopenharmony_ci    Some((0, 1)),
1040c67d6573Sopenharmony_ci    Some((1, 2)),
1041c67d6573Sopenharmony_ci    None,
1042c67d6573Sopenharmony_ci    Some((1, 2)),
1043c67d6573Sopenharmony_ci    Some((2, 3)),
1044c67d6573Sopenharmony_ci    None,
1045c67d6573Sopenharmony_ci    Some((2, 3))
1046c67d6573Sopenharmony_ci);
1047c67d6573Sopenharmony_cimat!(
1048c67d6573Sopenharmony_ci    match_repetition_44,
1049c67d6573Sopenharmony_ci    r"((..)|(.)){1}",
1050c67d6573Sopenharmony_ci    r"aaa",
1051c67d6573Sopenharmony_ci    Some((0, 2)),
1052c67d6573Sopenharmony_ci    Some((0, 2)),
1053c67d6573Sopenharmony_ci    Some((0, 2)),
1054c67d6573Sopenharmony_ci    None
1055c67d6573Sopenharmony_ci);
1056c67d6573Sopenharmony_cimat!(
1057c67d6573Sopenharmony_ci    match_repetition_46,
1058c67d6573Sopenharmony_ci    r"((..)|(.)){2}",
1059c67d6573Sopenharmony_ci    r"aaa",
1060c67d6573Sopenharmony_ci    Some((0, 3)),
1061c67d6573Sopenharmony_ci    Some((2, 3)),
1062c67d6573Sopenharmony_ci    Some((0, 2)),
1063c67d6573Sopenharmony_ci    Some((2, 3))
1064c67d6573Sopenharmony_ci);
1065c67d6573Sopenharmony_cimat!(
1066c67d6573Sopenharmony_ci    match_repetition_47,
1067c67d6573Sopenharmony_ci    r"((..)|(.)){3}",
1068c67d6573Sopenharmony_ci    r"aaa",
1069c67d6573Sopenharmony_ci    Some((0, 3)),
1070c67d6573Sopenharmony_ci    Some((2, 3)),
1071c67d6573Sopenharmony_ci    None,
1072c67d6573Sopenharmony_ci    Some((2, 3))
1073c67d6573Sopenharmony_ci);
1074c67d6573Sopenharmony_cimat!(
1075c67d6573Sopenharmony_ci    match_repetition_50,
1076c67d6573Sopenharmony_ci    r"((..)|(.))*",
1077c67d6573Sopenharmony_ci    r"aaa",
1078c67d6573Sopenharmony_ci    Some((0, 3)),
1079c67d6573Sopenharmony_ci    Some((2, 3)),
1080c67d6573Sopenharmony_ci    Some((0, 2)),
1081c67d6573Sopenharmony_ci    Some((2, 3))
1082c67d6573Sopenharmony_ci);
1083c67d6573Sopenharmony_cimat!(
1084c67d6573Sopenharmony_ci    match_repetition_52,
1085c67d6573Sopenharmony_ci    r"((..)|(.))",
1086c67d6573Sopenharmony_ci    r"aaaa",
1087c67d6573Sopenharmony_ci    Some((0, 2)),
1088c67d6573Sopenharmony_ci    Some((0, 2)),
1089c67d6573Sopenharmony_ci    Some((0, 2)),
1090c67d6573Sopenharmony_ci    None
1091c67d6573Sopenharmony_ci);
1092c67d6573Sopenharmony_cimat!(
1093c67d6573Sopenharmony_ci    match_repetition_53,
1094c67d6573Sopenharmony_ci    r"((..)|(.))((..)|(.))",
1095c67d6573Sopenharmony_ci    r"aaaa",
1096c67d6573Sopenharmony_ci    Some((0, 4)),
1097c67d6573Sopenharmony_ci    Some((0, 2)),
1098c67d6573Sopenharmony_ci    Some((0, 2)),
1099c67d6573Sopenharmony_ci    None,
1100c67d6573Sopenharmony_ci    Some((2, 4)),
1101c67d6573Sopenharmony_ci    Some((2, 4)),
1102c67d6573Sopenharmony_ci    None
1103c67d6573Sopenharmony_ci);
1104c67d6573Sopenharmony_cimat!(
1105c67d6573Sopenharmony_ci    match_repetition_54,
1106c67d6573Sopenharmony_ci    r"((..)|(.))((..)|(.))((..)|(.))",
1107c67d6573Sopenharmony_ci    r"aaaa",
1108c67d6573Sopenharmony_ci    Some((0, 4)),
1109c67d6573Sopenharmony_ci    Some((0, 2)),
1110c67d6573Sopenharmony_ci    Some((0, 2)),
1111c67d6573Sopenharmony_ci    None,
1112c67d6573Sopenharmony_ci    Some((2, 3)),
1113c67d6573Sopenharmony_ci    None,
1114c67d6573Sopenharmony_ci    Some((2, 3)),
1115c67d6573Sopenharmony_ci    Some((3, 4)),
1116c67d6573Sopenharmony_ci    None,
1117c67d6573Sopenharmony_ci    Some((3, 4))
1118c67d6573Sopenharmony_ci);
1119c67d6573Sopenharmony_cimat!(
1120c67d6573Sopenharmony_ci    match_repetition_56,
1121c67d6573Sopenharmony_ci    r"((..)|(.)){1}",
1122c67d6573Sopenharmony_ci    r"aaaa",
1123c67d6573Sopenharmony_ci    Some((0, 2)),
1124c67d6573Sopenharmony_ci    Some((0, 2)),
1125c67d6573Sopenharmony_ci    Some((0, 2)),
1126c67d6573Sopenharmony_ci    None
1127c67d6573Sopenharmony_ci);
1128c67d6573Sopenharmony_cimat!(
1129c67d6573Sopenharmony_ci    match_repetition_57,
1130c67d6573Sopenharmony_ci    r"((..)|(.)){2}",
1131c67d6573Sopenharmony_ci    r"aaaa",
1132c67d6573Sopenharmony_ci    Some((0, 4)),
1133c67d6573Sopenharmony_ci    Some((2, 4)),
1134c67d6573Sopenharmony_ci    Some((2, 4)),
1135c67d6573Sopenharmony_ci    None
1136c67d6573Sopenharmony_ci);
1137c67d6573Sopenharmony_cimat!(
1138c67d6573Sopenharmony_ci    match_repetition_59,
1139c67d6573Sopenharmony_ci    r"((..)|(.)){3}",
1140c67d6573Sopenharmony_ci    r"aaaa",
1141c67d6573Sopenharmony_ci    Some((0, 4)),
1142c67d6573Sopenharmony_ci    Some((3, 4)),
1143c67d6573Sopenharmony_ci    Some((0, 2)),
1144c67d6573Sopenharmony_ci    Some((3, 4))
1145c67d6573Sopenharmony_ci);
1146c67d6573Sopenharmony_cimat!(
1147c67d6573Sopenharmony_ci    match_repetition_61,
1148c67d6573Sopenharmony_ci    r"((..)|(.))*",
1149c67d6573Sopenharmony_ci    r"aaaa",
1150c67d6573Sopenharmony_ci    Some((0, 4)),
1151c67d6573Sopenharmony_ci    Some((2, 4)),
1152c67d6573Sopenharmony_ci    Some((2, 4)),
1153c67d6573Sopenharmony_ci    None
1154c67d6573Sopenharmony_ci);
1155c67d6573Sopenharmony_cimat!(
1156c67d6573Sopenharmony_ci    match_repetition_63,
1157c67d6573Sopenharmony_ci    r"((..)|(.))",
1158c67d6573Sopenharmony_ci    r"aaaaa",
1159c67d6573Sopenharmony_ci    Some((0, 2)),
1160c67d6573Sopenharmony_ci    Some((0, 2)),
1161c67d6573Sopenharmony_ci    Some((0, 2)),
1162c67d6573Sopenharmony_ci    None
1163c67d6573Sopenharmony_ci);
1164c67d6573Sopenharmony_cimat!(
1165c67d6573Sopenharmony_ci    match_repetition_64,
1166c67d6573Sopenharmony_ci    r"((..)|(.))((..)|(.))",
1167c67d6573Sopenharmony_ci    r"aaaaa",
1168c67d6573Sopenharmony_ci    Some((0, 4)),
1169c67d6573Sopenharmony_ci    Some((0, 2)),
1170c67d6573Sopenharmony_ci    Some((0, 2)),
1171c67d6573Sopenharmony_ci    None,
1172c67d6573Sopenharmony_ci    Some((2, 4)),
1173c67d6573Sopenharmony_ci    Some((2, 4)),
1174c67d6573Sopenharmony_ci    None
1175c67d6573Sopenharmony_ci);
1176c67d6573Sopenharmony_cimat!(
1177c67d6573Sopenharmony_ci    match_repetition_65,
1178c67d6573Sopenharmony_ci    r"((..)|(.))((..)|(.))((..)|(.))",
1179c67d6573Sopenharmony_ci    r"aaaaa",
1180c67d6573Sopenharmony_ci    Some((0, 5)),
1181c67d6573Sopenharmony_ci    Some((0, 2)),
1182c67d6573Sopenharmony_ci    Some((0, 2)),
1183c67d6573Sopenharmony_ci    None,
1184c67d6573Sopenharmony_ci    Some((2, 4)),
1185c67d6573Sopenharmony_ci    Some((2, 4)),
1186c67d6573Sopenharmony_ci    None,
1187c67d6573Sopenharmony_ci    Some((4, 5)),
1188c67d6573Sopenharmony_ci    None,
1189c67d6573Sopenharmony_ci    Some((4, 5))
1190c67d6573Sopenharmony_ci);
1191c67d6573Sopenharmony_cimat!(
1192c67d6573Sopenharmony_ci    match_repetition_67,
1193c67d6573Sopenharmony_ci    r"((..)|(.)){1}",
1194c67d6573Sopenharmony_ci    r"aaaaa",
1195c67d6573Sopenharmony_ci    Some((0, 2)),
1196c67d6573Sopenharmony_ci    Some((0, 2)),
1197c67d6573Sopenharmony_ci    Some((0, 2)),
1198c67d6573Sopenharmony_ci    None
1199c67d6573Sopenharmony_ci);
1200c67d6573Sopenharmony_cimat!(
1201c67d6573Sopenharmony_ci    match_repetition_68,
1202c67d6573Sopenharmony_ci    r"((..)|(.)){2}",
1203c67d6573Sopenharmony_ci    r"aaaaa",
1204c67d6573Sopenharmony_ci    Some((0, 4)),
1205c67d6573Sopenharmony_ci    Some((2, 4)),
1206c67d6573Sopenharmony_ci    Some((2, 4)),
1207c67d6573Sopenharmony_ci    None
1208c67d6573Sopenharmony_ci);
1209c67d6573Sopenharmony_cimat!(
1210c67d6573Sopenharmony_ci    match_repetition_70,
1211c67d6573Sopenharmony_ci    r"((..)|(.)){3}",
1212c67d6573Sopenharmony_ci    r"aaaaa",
1213c67d6573Sopenharmony_ci    Some((0, 5)),
1214c67d6573Sopenharmony_ci    Some((4, 5)),
1215c67d6573Sopenharmony_ci    Some((2, 4)),
1216c67d6573Sopenharmony_ci    Some((4, 5))
1217c67d6573Sopenharmony_ci);
1218c67d6573Sopenharmony_cimat!(
1219c67d6573Sopenharmony_ci    match_repetition_73,
1220c67d6573Sopenharmony_ci    r"((..)|(.))*",
1221c67d6573Sopenharmony_ci    r"aaaaa",
1222c67d6573Sopenharmony_ci    Some((0, 5)),
1223c67d6573Sopenharmony_ci    Some((4, 5)),
1224c67d6573Sopenharmony_ci    Some((2, 4)),
1225c67d6573Sopenharmony_ci    Some((4, 5))
1226c67d6573Sopenharmony_ci);
1227c67d6573Sopenharmony_cimat!(
1228c67d6573Sopenharmony_ci    match_repetition_75,
1229c67d6573Sopenharmony_ci    r"((..)|(.))",
1230c67d6573Sopenharmony_ci    r"aaaaaa",
1231c67d6573Sopenharmony_ci    Some((0, 2)),
1232c67d6573Sopenharmony_ci    Some((0, 2)),
1233c67d6573Sopenharmony_ci    Some((0, 2)),
1234c67d6573Sopenharmony_ci    None
1235c67d6573Sopenharmony_ci);
1236c67d6573Sopenharmony_cimat!(
1237c67d6573Sopenharmony_ci    match_repetition_76,
1238c67d6573Sopenharmony_ci    r"((..)|(.))((..)|(.))",
1239c67d6573Sopenharmony_ci    r"aaaaaa",
1240c67d6573Sopenharmony_ci    Some((0, 4)),
1241c67d6573Sopenharmony_ci    Some((0, 2)),
1242c67d6573Sopenharmony_ci    Some((0, 2)),
1243c67d6573Sopenharmony_ci    None,
1244c67d6573Sopenharmony_ci    Some((2, 4)),
1245c67d6573Sopenharmony_ci    Some((2, 4)),
1246c67d6573Sopenharmony_ci    None
1247c67d6573Sopenharmony_ci);
1248c67d6573Sopenharmony_cimat!(
1249c67d6573Sopenharmony_ci    match_repetition_77,
1250c67d6573Sopenharmony_ci    r"((..)|(.))((..)|(.))((..)|(.))",
1251c67d6573Sopenharmony_ci    r"aaaaaa",
1252c67d6573Sopenharmony_ci    Some((0, 6)),
1253c67d6573Sopenharmony_ci    Some((0, 2)),
1254c67d6573Sopenharmony_ci    Some((0, 2)),
1255c67d6573Sopenharmony_ci    None,
1256c67d6573Sopenharmony_ci    Some((2, 4)),
1257c67d6573Sopenharmony_ci    Some((2, 4)),
1258c67d6573Sopenharmony_ci    None,
1259c67d6573Sopenharmony_ci    Some((4, 6)),
1260c67d6573Sopenharmony_ci    Some((4, 6)),
1261c67d6573Sopenharmony_ci    None
1262c67d6573Sopenharmony_ci);
1263c67d6573Sopenharmony_cimat!(
1264c67d6573Sopenharmony_ci    match_repetition_79,
1265c67d6573Sopenharmony_ci    r"((..)|(.)){1}",
1266c67d6573Sopenharmony_ci    r"aaaaaa",
1267c67d6573Sopenharmony_ci    Some((0, 2)),
1268c67d6573Sopenharmony_ci    Some((0, 2)),
1269c67d6573Sopenharmony_ci    Some((0, 2)),
1270c67d6573Sopenharmony_ci    None
1271c67d6573Sopenharmony_ci);
1272c67d6573Sopenharmony_cimat!(
1273c67d6573Sopenharmony_ci    match_repetition_80,
1274c67d6573Sopenharmony_ci    r"((..)|(.)){2}",
1275c67d6573Sopenharmony_ci    r"aaaaaa",
1276c67d6573Sopenharmony_ci    Some((0, 4)),
1277c67d6573Sopenharmony_ci    Some((2, 4)),
1278c67d6573Sopenharmony_ci    Some((2, 4)),
1279c67d6573Sopenharmony_ci    None
1280c67d6573Sopenharmony_ci);
1281c67d6573Sopenharmony_cimat!(
1282c67d6573Sopenharmony_ci    match_repetition_81,
1283c67d6573Sopenharmony_ci    r"((..)|(.)){3}",
1284c67d6573Sopenharmony_ci    r"aaaaaa",
1285c67d6573Sopenharmony_ci    Some((0, 6)),
1286c67d6573Sopenharmony_ci    Some((4, 6)),
1287c67d6573Sopenharmony_ci    Some((4, 6)),
1288c67d6573Sopenharmony_ci    None
1289c67d6573Sopenharmony_ci);
1290c67d6573Sopenharmony_cimat!(
1291c67d6573Sopenharmony_ci    match_repetition_83,
1292c67d6573Sopenharmony_ci    r"((..)|(.))*",
1293c67d6573Sopenharmony_ci    r"aaaaaa",
1294c67d6573Sopenharmony_ci    Some((0, 6)),
1295c67d6573Sopenharmony_ci    Some((4, 6)),
1296c67d6573Sopenharmony_ci    Some((4, 6)),
1297c67d6573Sopenharmony_ci    None
1298c67d6573Sopenharmony_ci);
1299c67d6573Sopenharmony_cimat!(
1300c67d6573Sopenharmony_ci    match_repetition_90,
1301c67d6573Sopenharmony_ci    r"X(.?){0,}Y",
1302c67d6573Sopenharmony_ci    r"X1234567Y",
1303c67d6573Sopenharmony_ci    Some((0, 9)),
1304c67d6573Sopenharmony_ci    Some((7, 8))
1305c67d6573Sopenharmony_ci);
1306c67d6573Sopenharmony_cimat!(
1307c67d6573Sopenharmony_ci    match_repetition_91,
1308c67d6573Sopenharmony_ci    r"X(.?){1,}Y",
1309c67d6573Sopenharmony_ci    r"X1234567Y",
1310c67d6573Sopenharmony_ci    Some((0, 9)),
1311c67d6573Sopenharmony_ci    Some((7, 8))
1312c67d6573Sopenharmony_ci);
1313c67d6573Sopenharmony_cimat!(
1314c67d6573Sopenharmony_ci    match_repetition_92,
1315c67d6573Sopenharmony_ci    r"X(.?){2,}Y",
1316c67d6573Sopenharmony_ci    r"X1234567Y",
1317c67d6573Sopenharmony_ci    Some((0, 9)),
1318c67d6573Sopenharmony_ci    Some((7, 8))
1319c67d6573Sopenharmony_ci);
1320c67d6573Sopenharmony_cimat!(
1321c67d6573Sopenharmony_ci    match_repetition_93,
1322c67d6573Sopenharmony_ci    r"X(.?){3,}Y",
1323c67d6573Sopenharmony_ci    r"X1234567Y",
1324c67d6573Sopenharmony_ci    Some((0, 9)),
1325c67d6573Sopenharmony_ci    Some((7, 8))
1326c67d6573Sopenharmony_ci);
1327c67d6573Sopenharmony_cimat!(
1328c67d6573Sopenharmony_ci    match_repetition_94,
1329c67d6573Sopenharmony_ci    r"X(.?){4,}Y",
1330c67d6573Sopenharmony_ci    r"X1234567Y",
1331c67d6573Sopenharmony_ci    Some((0, 9)),
1332c67d6573Sopenharmony_ci    Some((7, 8))
1333c67d6573Sopenharmony_ci);
1334c67d6573Sopenharmony_cimat!(
1335c67d6573Sopenharmony_ci    match_repetition_95,
1336c67d6573Sopenharmony_ci    r"X(.?){5,}Y",
1337c67d6573Sopenharmony_ci    r"X1234567Y",
1338c67d6573Sopenharmony_ci    Some((0, 9)),
1339c67d6573Sopenharmony_ci    Some((7, 8))
1340c67d6573Sopenharmony_ci);
1341c67d6573Sopenharmony_cimat!(
1342c67d6573Sopenharmony_ci    match_repetition_96,
1343c67d6573Sopenharmony_ci    r"X(.?){6,}Y",
1344c67d6573Sopenharmony_ci    r"X1234567Y",
1345c67d6573Sopenharmony_ci    Some((0, 9)),
1346c67d6573Sopenharmony_ci    Some((7, 8))
1347c67d6573Sopenharmony_ci);
1348c67d6573Sopenharmony_cimat!(
1349c67d6573Sopenharmony_ci    match_repetition_97,
1350c67d6573Sopenharmony_ci    r"X(.?){7,}Y",
1351c67d6573Sopenharmony_ci    r"X1234567Y",
1352c67d6573Sopenharmony_ci    Some((0, 9)),
1353c67d6573Sopenharmony_ci    Some((7, 8))
1354c67d6573Sopenharmony_ci);
1355c67d6573Sopenharmony_cimat!(
1356c67d6573Sopenharmony_ci    match_repetition_98,
1357c67d6573Sopenharmony_ci    r"X(.?){8,}Y",
1358c67d6573Sopenharmony_ci    r"X1234567Y",
1359c67d6573Sopenharmony_ci    Some((0, 9)),
1360c67d6573Sopenharmony_ci    Some((8, 8))
1361c67d6573Sopenharmony_ci);
1362c67d6573Sopenharmony_cimat!(
1363c67d6573Sopenharmony_ci    match_repetition_100,
1364c67d6573Sopenharmony_ci    r"X(.?){0,8}Y",
1365c67d6573Sopenharmony_ci    r"X1234567Y",
1366c67d6573Sopenharmony_ci    Some((0, 9)),
1367c67d6573Sopenharmony_ci    Some((8, 8))
1368c67d6573Sopenharmony_ci);
1369c67d6573Sopenharmony_cimat!(
1370c67d6573Sopenharmony_ci    match_repetition_102,
1371c67d6573Sopenharmony_ci    r"X(.?){1,8}Y",
1372c67d6573Sopenharmony_ci    r"X1234567Y",
1373c67d6573Sopenharmony_ci    Some((0, 9)),
1374c67d6573Sopenharmony_ci    Some((8, 8))
1375c67d6573Sopenharmony_ci);
1376c67d6573Sopenharmony_cimat!(
1377c67d6573Sopenharmony_ci    match_repetition_104,
1378c67d6573Sopenharmony_ci    r"X(.?){2,8}Y",
1379c67d6573Sopenharmony_ci    r"X1234567Y",
1380c67d6573Sopenharmony_ci    Some((0, 9)),
1381c67d6573Sopenharmony_ci    Some((8, 8))
1382c67d6573Sopenharmony_ci);
1383c67d6573Sopenharmony_cimat!(
1384c67d6573Sopenharmony_ci    match_repetition_106,
1385c67d6573Sopenharmony_ci    r"X(.?){3,8}Y",
1386c67d6573Sopenharmony_ci    r"X1234567Y",
1387c67d6573Sopenharmony_ci    Some((0, 9)),
1388c67d6573Sopenharmony_ci    Some((8, 8))
1389c67d6573Sopenharmony_ci);
1390c67d6573Sopenharmony_cimat!(
1391c67d6573Sopenharmony_ci    match_repetition_108,
1392c67d6573Sopenharmony_ci    r"X(.?){4,8}Y",
1393c67d6573Sopenharmony_ci    r"X1234567Y",
1394c67d6573Sopenharmony_ci    Some((0, 9)),
1395c67d6573Sopenharmony_ci    Some((8, 8))
1396c67d6573Sopenharmony_ci);
1397c67d6573Sopenharmony_cimat!(
1398c67d6573Sopenharmony_ci    match_repetition_110,
1399c67d6573Sopenharmony_ci    r"X(.?){5,8}Y",
1400c67d6573Sopenharmony_ci    r"X1234567Y",
1401c67d6573Sopenharmony_ci    Some((0, 9)),
1402c67d6573Sopenharmony_ci    Some((8, 8))
1403c67d6573Sopenharmony_ci);
1404c67d6573Sopenharmony_cimat!(
1405c67d6573Sopenharmony_ci    match_repetition_112,
1406c67d6573Sopenharmony_ci    r"X(.?){6,8}Y",
1407c67d6573Sopenharmony_ci    r"X1234567Y",
1408c67d6573Sopenharmony_ci    Some((0, 9)),
1409c67d6573Sopenharmony_ci    Some((8, 8))
1410c67d6573Sopenharmony_ci);
1411c67d6573Sopenharmony_cimat!(
1412c67d6573Sopenharmony_ci    match_repetition_114,
1413c67d6573Sopenharmony_ci    r"X(.?){7,8}Y",
1414c67d6573Sopenharmony_ci    r"X1234567Y",
1415c67d6573Sopenharmony_ci    Some((0, 9)),
1416c67d6573Sopenharmony_ci    Some((8, 8))
1417c67d6573Sopenharmony_ci);
1418c67d6573Sopenharmony_cimat!(
1419c67d6573Sopenharmony_ci    match_repetition_115,
1420c67d6573Sopenharmony_ci    r"X(.?){8,8}Y",
1421c67d6573Sopenharmony_ci    r"X1234567Y",
1422c67d6573Sopenharmony_ci    Some((0, 9)),
1423c67d6573Sopenharmony_ci    Some((8, 8))
1424c67d6573Sopenharmony_ci);
1425c67d6573Sopenharmony_cimat!(
1426c67d6573Sopenharmony_ci    match_repetition_126,
1427c67d6573Sopenharmony_ci    r"(a|ab|c|bcd){0,}(d*)",
1428c67d6573Sopenharmony_ci    r"ababcd",
1429c67d6573Sopenharmony_ci    Some((0, 1)),
1430c67d6573Sopenharmony_ci    Some((0, 1)),
1431c67d6573Sopenharmony_ci    Some((1, 1))
1432c67d6573Sopenharmony_ci);
1433c67d6573Sopenharmony_cimat!(
1434c67d6573Sopenharmony_ci    match_repetition_127,
1435c67d6573Sopenharmony_ci    r"(a|ab|c|bcd){1,}(d*)",
1436c67d6573Sopenharmony_ci    r"ababcd",
1437c67d6573Sopenharmony_ci    Some((0, 1)),
1438c67d6573Sopenharmony_ci    Some((0, 1)),
1439c67d6573Sopenharmony_ci    Some((1, 1))
1440c67d6573Sopenharmony_ci);
1441c67d6573Sopenharmony_cimat!(
1442c67d6573Sopenharmony_ci    match_repetition_128,
1443c67d6573Sopenharmony_ci    r"(a|ab|c|bcd){2,}(d*)",
1444c67d6573Sopenharmony_ci    r"ababcd",
1445c67d6573Sopenharmony_ci    Some((0, 6)),
1446c67d6573Sopenharmony_ci    Some((3, 6)),
1447c67d6573Sopenharmony_ci    Some((6, 6))
1448c67d6573Sopenharmony_ci);
1449c67d6573Sopenharmony_cimat!(
1450c67d6573Sopenharmony_ci    match_repetition_129,
1451c67d6573Sopenharmony_ci    r"(a|ab|c|bcd){3,}(d*)",
1452c67d6573Sopenharmony_ci    r"ababcd",
1453c67d6573Sopenharmony_ci    Some((0, 6)),
1454c67d6573Sopenharmony_ci    Some((3, 6)),
1455c67d6573Sopenharmony_ci    Some((6, 6))
1456c67d6573Sopenharmony_ci);
1457c67d6573Sopenharmony_cimat!(match_repetition_130, r"(a|ab|c|bcd){4,}(d*)", r"ababcd", None);
1458c67d6573Sopenharmony_cimat!(
1459c67d6573Sopenharmony_ci    match_repetition_131,
1460c67d6573Sopenharmony_ci    r"(a|ab|c|bcd){0,10}(d*)",
1461c67d6573Sopenharmony_ci    r"ababcd",
1462c67d6573Sopenharmony_ci    Some((0, 1)),
1463c67d6573Sopenharmony_ci    Some((0, 1)),
1464c67d6573Sopenharmony_ci    Some((1, 1))
1465c67d6573Sopenharmony_ci);
1466c67d6573Sopenharmony_cimat!(
1467c67d6573Sopenharmony_ci    match_repetition_132,
1468c67d6573Sopenharmony_ci    r"(a|ab|c|bcd){1,10}(d*)",
1469c67d6573Sopenharmony_ci    r"ababcd",
1470c67d6573Sopenharmony_ci    Some((0, 1)),
1471c67d6573Sopenharmony_ci    Some((0, 1)),
1472c67d6573Sopenharmony_ci    Some((1, 1))
1473c67d6573Sopenharmony_ci);
1474c67d6573Sopenharmony_cimat!(
1475c67d6573Sopenharmony_ci    match_repetition_133,
1476c67d6573Sopenharmony_ci    r"(a|ab|c|bcd){2,10}(d*)",
1477c67d6573Sopenharmony_ci    r"ababcd",
1478c67d6573Sopenharmony_ci    Some((0, 6)),
1479c67d6573Sopenharmony_ci    Some((3, 6)),
1480c67d6573Sopenharmony_ci    Some((6, 6))
1481c67d6573Sopenharmony_ci);
1482c67d6573Sopenharmony_cimat!(
1483c67d6573Sopenharmony_ci    match_repetition_134,
1484c67d6573Sopenharmony_ci    r"(a|ab|c|bcd){3,10}(d*)",
1485c67d6573Sopenharmony_ci    r"ababcd",
1486c67d6573Sopenharmony_ci    Some((0, 6)),
1487c67d6573Sopenharmony_ci    Some((3, 6)),
1488c67d6573Sopenharmony_ci    Some((6, 6))
1489c67d6573Sopenharmony_ci);
1490c67d6573Sopenharmony_cimat!(match_repetition_135, r"(a|ab|c|bcd){4,10}(d*)", r"ababcd", None);
1491c67d6573Sopenharmony_cimat!(
1492c67d6573Sopenharmony_ci    match_repetition_136,
1493c67d6573Sopenharmony_ci    r"(a|ab|c|bcd)*(d*)",
1494c67d6573Sopenharmony_ci    r"ababcd",
1495c67d6573Sopenharmony_ci    Some((0, 1)),
1496c67d6573Sopenharmony_ci    Some((0, 1)),
1497c67d6573Sopenharmony_ci    Some((1, 1))
1498c67d6573Sopenharmony_ci);
1499c67d6573Sopenharmony_cimat!(
1500c67d6573Sopenharmony_ci    match_repetition_137,
1501c67d6573Sopenharmony_ci    r"(a|ab|c|bcd)+(d*)",
1502c67d6573Sopenharmony_ci    r"ababcd",
1503c67d6573Sopenharmony_ci    Some((0, 1)),
1504c67d6573Sopenharmony_ci    Some((0, 1)),
1505c67d6573Sopenharmony_ci    Some((1, 1))
1506c67d6573Sopenharmony_ci);
1507c67d6573Sopenharmony_cimat!(
1508c67d6573Sopenharmony_ci    match_repetition_143,
1509c67d6573Sopenharmony_ci    r"(ab|a|c|bcd){0,}(d*)",
1510c67d6573Sopenharmony_ci    r"ababcd",
1511c67d6573Sopenharmony_ci    Some((0, 6)),
1512c67d6573Sopenharmony_ci    Some((4, 5)),
1513c67d6573Sopenharmony_ci    Some((5, 6))
1514c67d6573Sopenharmony_ci);
1515c67d6573Sopenharmony_cimat!(
1516c67d6573Sopenharmony_ci    match_repetition_145,
1517c67d6573Sopenharmony_ci    r"(ab|a|c|bcd){1,}(d*)",
1518c67d6573Sopenharmony_ci    r"ababcd",
1519c67d6573Sopenharmony_ci    Some((0, 6)),
1520c67d6573Sopenharmony_ci    Some((4, 5)),
1521c67d6573Sopenharmony_ci    Some((5, 6))
1522c67d6573Sopenharmony_ci);
1523c67d6573Sopenharmony_cimat!(
1524c67d6573Sopenharmony_ci    match_repetition_147,
1525c67d6573Sopenharmony_ci    r"(ab|a|c|bcd){2,}(d*)",
1526c67d6573Sopenharmony_ci    r"ababcd",
1527c67d6573Sopenharmony_ci    Some((0, 6)),
1528c67d6573Sopenharmony_ci    Some((4, 5)),
1529c67d6573Sopenharmony_ci    Some((5, 6))
1530c67d6573Sopenharmony_ci);
1531c67d6573Sopenharmony_cimat!(
1532c67d6573Sopenharmony_ci    match_repetition_149,
1533c67d6573Sopenharmony_ci    r"(ab|a|c|bcd){3,}(d*)",
1534c67d6573Sopenharmony_ci    r"ababcd",
1535c67d6573Sopenharmony_ci    Some((0, 6)),
1536c67d6573Sopenharmony_ci    Some((4, 5)),
1537c67d6573Sopenharmony_ci    Some((5, 6))
1538c67d6573Sopenharmony_ci);
1539c67d6573Sopenharmony_cimat!(match_repetition_150, r"(ab|a|c|bcd){4,}(d*)", r"ababcd", None);
1540c67d6573Sopenharmony_cimat!(
1541c67d6573Sopenharmony_ci    match_repetition_152,
1542c67d6573Sopenharmony_ci    r"(ab|a|c|bcd){0,10}(d*)",
1543c67d6573Sopenharmony_ci    r"ababcd",
1544c67d6573Sopenharmony_ci    Some((0, 6)),
1545c67d6573Sopenharmony_ci    Some((4, 5)),
1546c67d6573Sopenharmony_ci    Some((5, 6))
1547c67d6573Sopenharmony_ci);
1548c67d6573Sopenharmony_cimat!(
1549c67d6573Sopenharmony_ci    match_repetition_154,
1550c67d6573Sopenharmony_ci    r"(ab|a|c|bcd){1,10}(d*)",
1551c67d6573Sopenharmony_ci    r"ababcd",
1552c67d6573Sopenharmony_ci    Some((0, 6)),
1553c67d6573Sopenharmony_ci    Some((4, 5)),
1554c67d6573Sopenharmony_ci    Some((5, 6))
1555c67d6573Sopenharmony_ci);
1556c67d6573Sopenharmony_cimat!(
1557c67d6573Sopenharmony_ci    match_repetition_156,
1558c67d6573Sopenharmony_ci    r"(ab|a|c|bcd){2,10}(d*)",
1559c67d6573Sopenharmony_ci    r"ababcd",
1560c67d6573Sopenharmony_ci    Some((0, 6)),
1561c67d6573Sopenharmony_ci    Some((4, 5)),
1562c67d6573Sopenharmony_ci    Some((5, 6))
1563c67d6573Sopenharmony_ci);
1564c67d6573Sopenharmony_cimat!(
1565c67d6573Sopenharmony_ci    match_repetition_158,
1566c67d6573Sopenharmony_ci    r"(ab|a|c|bcd){3,10}(d*)",
1567c67d6573Sopenharmony_ci    r"ababcd",
1568c67d6573Sopenharmony_ci    Some((0, 6)),
1569c67d6573Sopenharmony_ci    Some((4, 5)),
1570c67d6573Sopenharmony_ci    Some((5, 6))
1571c67d6573Sopenharmony_ci);
1572c67d6573Sopenharmony_cimat!(match_repetition_159, r"(ab|a|c|bcd){4,10}(d*)", r"ababcd", None);
1573c67d6573Sopenharmony_cimat!(
1574c67d6573Sopenharmony_ci    match_repetition_161,
1575c67d6573Sopenharmony_ci    r"(ab|a|c|bcd)*(d*)",
1576c67d6573Sopenharmony_ci    r"ababcd",
1577c67d6573Sopenharmony_ci    Some((0, 6)),
1578c67d6573Sopenharmony_ci    Some((4, 5)),
1579c67d6573Sopenharmony_ci    Some((5, 6))
1580c67d6573Sopenharmony_ci);
1581c67d6573Sopenharmony_cimat!(
1582c67d6573Sopenharmony_ci    match_repetition_163,
1583c67d6573Sopenharmony_ci    r"(ab|a|c|bcd)+(d*)",
1584c67d6573Sopenharmony_ci    r"ababcd",
1585c67d6573Sopenharmony_ci    Some((0, 6)),
1586c67d6573Sopenharmony_ci    Some((4, 5)),
1587c67d6573Sopenharmony_ci    Some((5, 6))
1588c67d6573Sopenharmony_ci);
1589