use strict; use warnings; my $pat = "test"; $pat = join "|", glob join "", map { "{".uc.",".lc."}"} split //, $pat; print "$pat\n"; for ( qw( Test test tesT tast ) ) { print "$_\n" if /$pat/; }