#!/usr/bin/perl -- use strict; use warnings; use Regexp::Assemble; my $ra = Regexp::Assemble->new; $ra->add( quotemeta $_) for qw[ abcpwbln08 abcpwbln07 abcpwbnn10 abcpwbnn06 adesicln09 adesicln08 adesicln01 adesicnn05 ]; print $ra->re; __END__ (?-xism:a(?:bcpwb(?:nn(?:06|10)|ln0[78])|desic(?:ln0[189]|nn05)))