use Test::More; my @values = qw/abc def/; my $re = qr{^(??{ join '|', map {quotemeta} @values })$}i; like 'ABC', $re; like 'DEF', $re; unlike 'GHI', $re; push @values, 'ghi'; like 'ABC', $re; like 'DEF', $re; like 'GHI', $re; done_testing;