function Count(t, s: String): Integer;
var
Offset, P: Integer;
begin
Result := 0;
Offset := 1;
P := PosEx(t, s, Offset);
while P > 0 do
begin
Inc(Result);
P := PosEx(t, s, P + 1);
end;
end;
my $t="banana bo bana bandana";
my $c =()= $t=~ m/ana/g;
print "count without overlap: $c\n";
$c =()= $t =~ m/an(?=a)/g;
print "count with overlap: $c\n";
function Count(t, s: String): Integer;
var
Offset, P: Integer;
begin
Result := 0;
Offset := 1;
P := PosEx(t, s, Offset);
while P > 0 do
begin
Inc(Result);
P := PosEx(t, s, P + 1);
end;
end;
my $t="banana bo bana bandana";
my $c =()= $t=~ m/ana/g;
print "count without overlap: $c\n";
$c =()= $t =~ m/an(?=a)/g;
print "count with overlap: $c\n";