Just to add a small diagnosis from symptoms without looking at the source code, the problem seems to be * specific, as fixed-width REs work (at least with 5.6.1), like :
print $1 if 'abcfoobc' =~ /(.*)foo\1/; # works
print $1 if 'abcfoobc' =~ /(.*).{3}\1/; # does work, $1 empty
print $1 if 'abcfoobc' =~ /(.+)foo\1/; # works as well
Update: Thanks to chipmunk, I figured out that I was dumb. The following RE also matches :
print $1 if 'abcfoobc' =~ /(.*)\w*\1/; # does work
perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The
$d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider
($c = $d->accept())->get_request(); $c->send_response( new #in the
HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web