our $pal = qr{ .? | (.) (??{$pal}) \1 }x; sub is_palindrome { shift =~ /^$pal\z/; }