use warnings; use strict; ... my ($prefix, $format, $count, $ext) = ($match =~ /(\w+)(%(\d+)d)\.(\w+)/) or die "cannot find match"; # EX: Img%04d.png printf(" \$prefix: >%s<\n", $prefix); # (\w+) => Img printf(" \$format: >%s<\n", $format); # (%...d) => %04d printf(" \$count: >%s<\n", $count); # (\d+) => 04 printf(" \$ext: >%s<\n\n", $ext); # (\w+) => png ...