my $file = /(1M01)(\_)(F)(\0+)(121)/; #### my $file = '1M01_F00121.npt.gro'; if ( $file =~ /(1M01)(_)(F)(0+)(121)/ ) { print join( "\n", "\$1 = '$1'", "\$2 = '$2'", "\$3 = '$3'", "\$4 = '$4'", "\$5 = '$5'", ),"\n"; } else { print "'$file': no match\n"; } __END__ $1 = '1M01' $2 = '_' $3 = 'F' $4 = '00' $5 = '121'