identifiers are delay-eval'd in $regsubex so that things like $nick(\1, \2) work properly, so the [ $2 ] behaviour cannot be implicit. But, as you just pointed out, using [ $2 ] is a fine way to properly pass the $2 you expect.