@@ -163,6 +163,66 @@ benchRelative(regex_ip_find_all, m):
163163 doAssert d == 5
164164 doNotOptimizeAway (d)
165165
166+ var sql_find_all_re = re.re " mysql://[^/\ s?#]+[^\ s?#]+(?:\ ?[^\ s#]*)?(?:#[^\ s]*)?"
167+
168+ bench (re_sql_find_all, m):
169+ var d = 0
170+ for i in 0 ..< m:
171+ for _ in re.findAll (bench_text, sql_find_all_re):
172+ d += 1
173+ doAssert d == 4
174+ doNotOptimizeAway (d)
175+
176+ const sql_find_all = regex.re2 " mysql://[^/\ s?#]+[^\ s?#]+(?:\ ?[^\ s#]*)?(?:#[^\ s]*)?"
177+
178+ benchRelative (regex_sql_find_all, m):
179+ var d = 0
180+ for i in 0 ..< m:
181+ for _ in regex.findAll (bench_text, sql_find_all):
182+ d += 1
183+ doAssert d == 4
184+ doNotOptimizeAway (d)
185+
186+ var url_find_all_re = re.re " https?://[^/\ s?#]+[^\ s?#]+(?:\ ?[^\ s#]*)?(?:#[^\ s]*)?"
187+
188+ bench (re_url_find_all, m):
189+ var d = 0
190+ for i in 0 ..< m:
191+ for _ in re.findAll (bench_text, url_find_all_re):
192+ d += 1
193+ doAssert d == 5295
194+ doNotOptimizeAway (d)
195+
196+ const url_find_all = regex.re2 " https?://[^/\ s?#]+[^\ s?#]+(?:\ ?[^\ s#]*)?(?:#[^\ s]*)?"
197+
198+ benchRelative (regex_url_find_all, m):
199+ var d = 0
200+ for i in 0 ..< m:
201+ for _ in regex.findAll (bench_text, url_find_all):
202+ d += 1
203+ doAssert d == 5295
204+ doNotOptimizeAway (d)
205+
206+ var unicode_find_all_re = re.re " \ smůžete\ s"
207+
208+ bench (re_unicode_find_all, m):
209+ var d = 0
210+ for i in 0 ..< m:
211+ for _ in re.findAll (bench_text, unicode_find_all_re):
212+ d += 1
213+ doAssert d == 25
214+ doNotOptimizeAway (d)
215+
216+ const unicode_find_all = regex.re2 " \ smůžete\ s"
217+
218+ benchRelative (regex_unicode_find_all, m):
219+ var d = 0
220+ for i in 0 ..< m:
221+ for _ in regex.findAll (bench_text, unicode_find_all):
222+ d += 1
223+ doAssert d == 25
224+ doNotOptimizeAway (d)
225+
166226when true :
167227 bench (runes, m):
168228 var d = 0
0 commit comments