Here's a much shorter way to reproduce it: perl6 -e '"foo" ~~ /(.*)+/' # hangs
While my previous explanation for why this occurs makes sense, it's worth noting this behaviour is not observed in Perl 5, for example: perl -e '"foo" =~ /(.*)+/' # does not hang