s///e is inefficient though; and this feels like a workaround more than a fix to me.
Edit: on the other hand, it seems there really is no way to get around this on 5.6.0. The only thing I could come up with, though it seems slightly more efficient than
s///e, is many times more kludgy:
$b = $1 || "" . ":$2" if $b =~ /^(?:a(\w))?(\w)$/;
(Which amounts to the same thing expressed in a different way..)