use Regexp::Assemble; my @list = ('12341', '12342', '12343', '13341', '13342'); my $ra = Regexp::Assemble->new; $ra->add( @list ); print $ra->re __OUTPUT__ (?-xism:1(?:234[123]|334[12]))