my %patt1; my $key = "([A-Z&;][a-z&;]+), ([0-9]{2}) ([0-9]{4})"; my $value = "qq|\$1|"; $patt1{$key} = $value; $instr = 'Jan, 10 1997'; for my $pat (keys %patt1) { if ( $instr =~ s|$pat|$patt1{$pat}|eegs ) { print "match1: $instr\n"; } }