A partir :h E65
podemos ver que Vim não permite mais de 9 grupos de captura em um comando de substituição.
Por exemplo, o seguinte comando funcionará:
s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)/\9\8\7\6\5\4\3\2\1
Mas este com mais um grupo de captura falhará:
s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/\10\9\8\7\6\5\4\3\2\1
Minha pergunta não é sobre por que falha (é um limite rígido do Vim), mas sobre por que o Vim tem esse limite?
Além disso, estou ciente de que uma regex da vida real com mais de 9 grupos de captura provavelmente seria bastante monstruosa de ler e manter, mas ainda estou curioso.
sed
: s/.../.../3
substituiria apenas a terceira ocorrência do padrão. Este é provavelmente o recurso que mais sinto falta no Vim.
\%()
.