use strict; use warnings; my $five10 = $] > 5.010 ? 1 : 0; while () { my $regex = '\b' . substr $_,0,1; foreach my $letter (split //, substr($_,1)) { $regex .= '(?:' . $letter; } $regex .= (')?' . '+' x $five10) x ((length)-1) . '\b'; print $regex; } __DATA__ hello