split MaybeParseRegister into its two logical uses, eliminating malloc+free traffic.