# ==> $keyptr, @inputs as in your code my $rg = join'|', map quotemeta, keys %$Keyptr; my @hits; push @hits, { /($rg):(.+?)(?=(?:$rg)|$)/g } for @inputs ; # thats it