1c67d6573Sopenharmony_cimatiter!(
2c67d6573Sopenharmony_ci    match_multi_1,
3c67d6573Sopenharmony_ci    r"(?m)^[a-z]+$",
4c67d6573Sopenharmony_ci    "abc\ndef\nxyz",
5c67d6573Sopenharmony_ci    (0, 3),
6c67d6573Sopenharmony_ci    (4, 7),
7c67d6573Sopenharmony_ci    (8, 11)
8c67d6573Sopenharmony_ci);
9c67d6573Sopenharmony_cimatiter!(match_multi_2, r"(?m)^$", "abc\ndef\nxyz");
10c67d6573Sopenharmony_cimatiter!(match_multi_3, r"(?m)^", "abc\ndef\nxyz", (0, 0), (4, 4), (8, 8));
11c67d6573Sopenharmony_cimatiter!(match_multi_4, r"(?m)$", "abc\ndef\nxyz", (3, 3), (7, 7), (11, 11));
12c67d6573Sopenharmony_cimatiter!(
13c67d6573Sopenharmony_ci    match_multi_5,
14c67d6573Sopenharmony_ci    r"(?m)^[a-z]",
15c67d6573Sopenharmony_ci    "abc\ndef\nxyz",
16c67d6573Sopenharmony_ci    (0, 1),
17c67d6573Sopenharmony_ci    (4, 5),
18c67d6573Sopenharmony_ci    (8, 9)
19c67d6573Sopenharmony_ci);
20c67d6573Sopenharmony_cimatiter!(match_multi_6, r"(?m)[a-z]^", "abc\ndef\nxyz");
21c67d6573Sopenharmony_cimatiter!(
22c67d6573Sopenharmony_ci    match_multi_7,
23c67d6573Sopenharmony_ci    r"(?m)[a-z]$",
24c67d6573Sopenharmony_ci    "abc\ndef\nxyz",
25c67d6573Sopenharmony_ci    (2, 3),
26c67d6573Sopenharmony_ci    (6, 7),
27c67d6573Sopenharmony_ci    (10, 11)
28c67d6573Sopenharmony_ci);
29c67d6573Sopenharmony_cimatiter!(match_multi_8, r"(?m)$[a-z]", "abc\ndef\nxyz");
30c67d6573Sopenharmony_cimatiter!(match_multi_9, r"(?m)^$", "", (0, 0));
31c67d6573Sopenharmony_ci
32c67d6573Sopenharmony_cimatiter!(
33c67d6573Sopenharmony_ci    match_multi_rep_1,
34c67d6573Sopenharmony_ci    r"(?m)(?:^$)*",
35c67d6573Sopenharmony_ci    "a\nb\nc",
36c67d6573Sopenharmony_ci    (0, 0),
37c67d6573Sopenharmony_ci    (1, 1),
38c67d6573Sopenharmony_ci    (2, 2),
39c67d6573Sopenharmony_ci    (3, 3),
40c67d6573Sopenharmony_ci    (4, 4),
41c67d6573Sopenharmony_ci    (5, 5)
42c67d6573Sopenharmony_ci);
43c67d6573Sopenharmony_cimatiter!(
44c67d6573Sopenharmony_ci    match_multi_rep_2,
45c67d6573Sopenharmony_ci    r"(?m)(?:^|a)+",
46c67d6573Sopenharmony_ci    "a\naaa\n",
47c67d6573Sopenharmony_ci    (0, 0),
48c67d6573Sopenharmony_ci    (2, 2),
49c67d6573Sopenharmony_ci    (3, 5),
50c67d6573Sopenharmony_ci    (6, 6)
51c67d6573Sopenharmony_ci);
52c67d6573Sopenharmony_cimatiter!(
53c67d6573Sopenharmony_ci    match_multi_rep_3,
54c67d6573Sopenharmony_ci    r"(?m)(?:^|a)*",
55c67d6573Sopenharmony_ci    "a\naaa\n",
56c67d6573Sopenharmony_ci    (0, 1),
57c67d6573Sopenharmony_ci    (2, 5),
58c67d6573Sopenharmony_ci    (6, 6)
59c67d6573Sopenharmony_ci);
60c67d6573Sopenharmony_cimatiter!(
61c67d6573Sopenharmony_ci    match_multi_rep_4,
62c67d6573Sopenharmony_ci    r"(?m)(?:^[a-z])+",
63c67d6573Sopenharmony_ci    "abc\ndef\nxyz",
64c67d6573Sopenharmony_ci    (0, 1),
65c67d6573Sopenharmony_ci    (4, 5),
66c67d6573Sopenharmony_ci    (8, 9)
67c67d6573Sopenharmony_ci);
68c67d6573Sopenharmony_cimatiter!(
69c67d6573Sopenharmony_ci    match_multi_rep_5,
70c67d6573Sopenharmony_ci    r"(?m)(?:^[a-z]{3}\n?)+",
71c67d6573Sopenharmony_ci    "abc\ndef\nxyz",
72c67d6573Sopenharmony_ci    (0, 11)
73c67d6573Sopenharmony_ci);
74c67d6573Sopenharmony_cimatiter!(
75c67d6573Sopenharmony_ci    match_multi_rep_6,
76c67d6573Sopenharmony_ci    r"(?m)(?:^[a-z]{3}\n?)*",
77c67d6573Sopenharmony_ci    "abc\ndef\nxyz",
78c67d6573Sopenharmony_ci    (0, 11)
79c67d6573Sopenharmony_ci);
80c67d6573Sopenharmony_cimatiter!(
81c67d6573Sopenharmony_ci    match_multi_rep_7,
82c67d6573Sopenharmony_ci    r"(?m)(?:\n?[a-z]{3}$)+",
83c67d6573Sopenharmony_ci    "abc\ndef\nxyz",
84c67d6573Sopenharmony_ci    (0, 11)
85c67d6573Sopenharmony_ci);
86c67d6573Sopenharmony_cimatiter!(
87c67d6573Sopenharmony_ci    match_multi_rep_8,
88c67d6573Sopenharmony_ci    r"(?m)(?:\n?[a-z]{3}$)*",
89c67d6573Sopenharmony_ci    "abc\ndef\nxyz",
90c67d6573Sopenharmony_ci    (0, 11)
91c67d6573Sopenharmony_ci);
92c67d6573Sopenharmony_cimatiter!(
93c67d6573Sopenharmony_ci    match_multi_rep_9,
94c67d6573Sopenharmony_ci    r"(?m)^*",
95c67d6573Sopenharmony_ci    "\naa\n",
96c67d6573Sopenharmony_ci    (0, 0),
97c67d6573Sopenharmony_ci    (1, 1),
98c67d6573Sopenharmony_ci    (2, 2),
99c67d6573Sopenharmony_ci    (3, 3),
100c67d6573Sopenharmony_ci    (4, 4)
101c67d6573Sopenharmony_ci);
102c67d6573Sopenharmony_cimatiter!(match_multi_rep_10, r"(?m)^+", "\naa\n", (0, 0), (1, 1), (4, 4));
103c67d6573Sopenharmony_cimatiter!(
104c67d6573Sopenharmony_ci    match_multi_rep_11,
105c67d6573Sopenharmony_ci    r"(?m)$*",
106c67d6573Sopenharmony_ci    "\naa\n",
107c67d6573Sopenharmony_ci    (0, 0),
108c67d6573Sopenharmony_ci    (1, 1),
109c67d6573Sopenharmony_ci    (2, 2),
110c67d6573Sopenharmony_ci    (3, 3),
111c67d6573Sopenharmony_ci    (4, 4)
112c67d6573Sopenharmony_ci);
113c67d6573Sopenharmony_cimatiter!(match_multi_rep_12, r"(?m)$+", "\naa\n", (0, 0), (3, 3), (4, 4));
114c67d6573Sopenharmony_cimatiter!(match_multi_rep_13, r"(?m)(?:$\n)+", "\n\naaa\n\n", (0, 2), (5, 7));
115c67d6573Sopenharmony_cimatiter!(
116c67d6573Sopenharmony_ci    match_multi_rep_14,
117c67d6573Sopenharmony_ci    r"(?m)(?:$\n)*",
118c67d6573Sopenharmony_ci    "\n\naaa\n\n",
119c67d6573Sopenharmony_ci    (0, 2),
120c67d6573Sopenharmony_ci    (3, 3),
121c67d6573Sopenharmony_ci    (4, 4),
122c67d6573Sopenharmony_ci    (5, 7)
123c67d6573Sopenharmony_ci);
124c67d6573Sopenharmony_cimatiter!(match_multi_rep_15, r"(?m)(?:$\n^)+", "\n\naaa\n\n", (0, 2), (5, 7));
125c67d6573Sopenharmony_cimatiter!(
126c67d6573Sopenharmony_ci    match_multi_rep_16,
127c67d6573Sopenharmony_ci    r"(?m)(?:^|$)+",
128c67d6573Sopenharmony_ci    "\n\naaa\n\n",
129c67d6573Sopenharmony_ci    (0, 0),
130c67d6573Sopenharmony_ci    (1, 1),
131c67d6573Sopenharmony_ci    (2, 2),
132c67d6573Sopenharmony_ci    (5, 5),
133c67d6573Sopenharmony_ci    (6, 6),
134c67d6573Sopenharmony_ci    (7, 7)
135c67d6573Sopenharmony_ci);
136c67d6573Sopenharmony_cimatiter!(
137c67d6573Sopenharmony_ci    match_multi_rep_17,
138c67d6573Sopenharmony_ci    r"(?m)(?:$\n)*",
139c67d6573Sopenharmony_ci    "\n\naaa\n\n",
140c67d6573Sopenharmony_ci    (0, 2),
141c67d6573Sopenharmony_ci    (3, 3),
142c67d6573Sopenharmony_ci    (4, 4),
143c67d6573Sopenharmony_ci    (5, 7)
144c67d6573Sopenharmony_ci);
145