Bem, não sou um expert em regex ahahaha e para eu te dar uma explicação convincente vou ter que ler sobre regex e os métodos de matcher de novo (faz tempo que não vejo isso).
Mas ai a grande pegadinha tá que ele imprime o método start, da uma olhada nesses dois tópicos, ve se ajuda:
Portanto o que dá prar concluir é que de fato ele retorna Strings vazias ou dígitos, por causa do * que representa zero ou mais. Tanto é que se você trocar o regex de "\\d*" para "\\d+" (+ é um ou mais) vai retornar:
index:2:group:34:
A única coisa estranha mesmo é o porque da linha "index:6:group::", de onde ele tirou esta posição 6 que não existe? A única explicação que eu vi nestes foruns é que ele considera o nada depois do 'f'. O que é meio esquisitinho mas... tem coisas que a gente entende, tem coisas que a gente aceita não mesmo?
L
luBSPJ
hehehe sabe que eu nem tinha me ligado nisso, que com d* ele retorna os vazios e d+ não… eu rodei o código aqui e pensei: “ow, um branco, bah faz tanto tempo que não leio sobre isso, deve ter lógica” hehe
mas pois é, minha ignorância nesse assunto é visível hehe e não sei te dizer porque da linha 6, se achar algo posto aqui