in reply to Re: regex at word boundary
in thread regex at word boundary

I came up with this recursive-regex code. It's a bit simpler than most of the others posted here. It finds the leftmost longest palindrome in each line.
my $palin_re; $palin_re = qr/(([a-z]) # First letter [^a-z]* # any irrelevant chars (?:(??{$palin_re})|[a-z]?) # The interior [^a-z]* # any other irrelevant chars \2) # the last letter matches the first /xi; while (<DATA>) { if (/\b$palin_re\b/) { print "Matched $1\n"; } else { print "No palindrome found in '$_'\n"; } } __DATA__ oo madam in eden, I'm Adam, prince of eternia is god a dog? nested testest detsen nested i prefer pi ip referp nothing to see here, folks.

Caution: Contents may have been coded under pressure.