in reply to "Can't happen" bugs

the error message I was getting (" is only avaliable") can be explained by a failed match or an empty capture.

A failed match doesn't clear $1

>perl -le"'a'=~/(.)/; 'b'=~/c/; print $1" a

$1 is cleared by a successful match with no captures, or capturing a zero-length string.

>perl -le"'a'=~/(.)/; 'b'=~/./; print $1" >perl -le"'a'=~/(.)/; 'b'=~/(.*?)/; print $1"

Apart from the typo in "available"

It's a feature to make the error message easily findable in the source. *wink*