#!/usr/bin/perl use strict; use warnings; use Test::More qw(no_plan); my @a = ('a','r','z','x'); my $re = join '', map { "(?=.*?$_)" } @a; like 'xzarfoobar', qr{$re}; unlike 'zarfoobar', qr{$re};