Vim like mark, sort of

I know there is "<reg>Z and "<reg>z combo for that, but I find following complement useful, as it remembers last saved register.

declare-option -hidden str my_mark_reg
map global normal '"' %{: prompt 'Register<lt>=:' 'exec \" "%val{text}Z";set buffer my_mark_reg "%val{text}"'<ret>}
map global normal "'" %{: prompt '<lt>=Register:' -init %opt{my_mark_reg} 'exec \" "%val{text}z"'<ret>}

Occupying <a-r> with <"> just in case:

map -docstring 'choose register' global normal <a-r> <">

I wish alphabetic registers had notion of a buffer scope, like it is in vim [a-z] for buffer and [A-Z] for global.