Fix `should =~ list` when `list` has no `=~` method.

This is a backport of #597 to 2.99.  I would have cherry-picked but it wouldn't cherry pick cleanly.  Will merge when green.