##
@keyword{@keywords} = map {qr/\Q$_\E/} @keywords;
##
##
$result{$_} = () = $string =~ $keyword{$_}
for (keys %keyword);
##
##
my @regexen = map {
qr/(?:\Q$_\E(?{$result{$_}++}))/
} @keywords;
my $re = do {
local $" = '|';
qr/@regexen/;
};
##
##
$string =~ /$re/g;
print "$_: $result{$_}\n" for @keywords;