in src/regex/regex.php [46:70]
function every_match<T as Match>(
string $haystack,
Pattern<T> $pattern,
int $offset = 0,
)[]: vec<T> {
$haystack_length = Str\length($haystack);
$result = vec[];
while (true) {
$match = _Private\regex_match($haystack, $pattern, inout $offset);
if ($match === null) {
break;
}
$result[] = $match;
$match_length = Str\length(Shapes::at($match, 0) as string);
if ($match_length === 0) {
$offset++;
if ($offset > $haystack_length) {
break;
}
} else {
$offset += $match_length;
}
}
return $result;
}