I only know of one instance using registers is via CtrlR* whereby I paste text from a clipboard.
What are other uses of registers?
One overlooked register is the '.' dot register which contains the last inserted text no matter how it was inserted eg ct] (change till ]). Then you realise you need to insert it elsewhere but can't use the dot repeat method.
:reg .
:%s/fred/<C-R>./
My favorite register is the ':' register. Running @: in Normal mode allows me to repeat the previously ran ex command.
My favorite feature is the ability to append into registers by using capital letters. For example, say you want to move a subset of imports from buffer X to buffer Y.
x1 in buffer X."ayy to replace register a with the content of line x1.x5."Ayy (capital A) to append line x5 at the end of register a."ap to paste<content of line x1>
<content of line x5>
Use registers in commands with @. E.g.:
echo @a
echo @0
echo @+
Set them in command:
let @a = 'abc'
Now "ap will paste abc.
If you ever want to paste the contents of the register in an ex-mode command, hit <C-r><registerletter>.
Why would you use this? I wanted to do a search and replace for a longish string, so I selected it in visual mode, started typing out the search/replace expression :%s/[PASTE YANKED PHRASE]//g and went on my day.
If you only want to paste a single word in ex mode, can make sure the cursor is on it before entering ex mode, and then hit <C-r><C-w> when in ex mode to paste the word.