C:\>perl -E "my $num ='abcd23.5fghi';if ($num =~ /[a-z]+(.*?)[a-z]/i){ say $1;}" 23.5 /^\ #### C:\>perl -E "my $num ='abcd23.5fghi';if ($num =~ /[a-z]+(.*)[a-z]/i){ say $1;}" 23.5fgh # not what OP seems to want #### C:\>perl -E "my $num ='abcd23fghi'; my $intermediate; if ($num =~ /[a-d]+(\d+)[f-z]+/) {$intermediate = $1;} if ($intermediate =~ /[0-9]+/ ){ say $intermediate;}" 23 #### C:\>perl -E "my $num ='abcd23.777fghi'; my $intermediate; if ($num =~ /[a-d]+(\d+)[f-z]+/) {$intermediate = $1;} if ($intermediate =~ /[0-9]+/ ){ say $intermediate;}" (no output)