my @files=("zzz.21.yy.ccc", "xxx.220.ccc" ); foreach my $name (@files) { my $match="no "; $match="yes" if ( $name =~ /(^[a-z]{3})\.(\d{2,3})\..*\.ccc/) ; print "$match, $name, match1: $1, match2: $2\n"; }