:h E65 we can see that Vim doesn't allow more than 9 capture groups in a substitution command.
For example the following command will work:
But this one with one more capture group will fail:
My question is not about why it fails (it's a Vim hard limit) but about why does Vim have this limit at all?
Also, I'm aware that a real life regex with more than 9 capture group would probably be pretty monstrous to read and to maintain but I'm still curious.