in reply to Many birds, single cage...

How about:

my ( $piece ) = $strange_thing =~ m/($large|(?<=$wei)$rd|$stra(?=$nge))/;

The lookbehind and lookahead assertions won't become part of $1.