$s = "Test-01-xxx"; if ($s =~ /-(\d\d)-/g) { print "Pos: $pos - ", pos( $s )-3, "\n"; } #### $s = "Test-01-xxx"; if ($s =~ /(.*?)-(\d\d)-(.*)/g) { print "The string was split into :\n" print "Left part : $1\n"; print "Number part : $2\n"; print "Right part : $3\n"; } #### $s = "Test-01-xxx"; # Method 1, possibly slow if ($s =~ /-(\d\d)-/g) { print "Pos: $pos - ", pos( $s )- length( $& ), "\n"; } # Method 2, possibly slow if ($s =~ /(-(\d\d)-)/g) { print "Pos: $pos - ", pos( $s )- length( $1 ), "\n"; }