use Regexp::List; print Regexp::List->new->list2re(qw( image_sequenceA.1.tif image_sequenceA.2.tif image_sequenceA.3.tif image_sequenceB.40.tif image_sequenceB.41.tif image_sequenceB.42.tif )); __END__ (?^:image_sequence(?:A\.[123]\.tif|B\.4[012]\.tif))