Regex não consegue capturar todos os grupos

Usandojava.util.regex (jdk 1.6), a expressão regular201210(\d{5,5})Test aplicado à string do assunto20121000002Test apenas capturasgroup(0) e não capturagroup(1) (o padrão00002) como deveria, dado o código abaixo:

Pattern p1 = Pattern.compile("201210(\\d{5,5})Test");
Matcher m1 = p1.matcher("20121000002Test");

if(m1.find()){

    for(int i = 1; i<m1.groupCount(); i++){         
    System.out.println("number = "+m1.group(i));            
    }
}

Curiosamente, outra expressão regular similar como201210(\d{5,5})Test(\d{1,10}) aplicado à string do assunto20121000002Test0000000099 captura o grupo 0 e 1, mas não o grupo 2.

Pelo contrário, usando o objeto RegExp do JavaScript, as mesmas expressões regulares aplicadas às mesmas cadeias de assunto capturam todos os grupos, como se poderia esperar. Eu verifiquei e verifiquei novamente esse fato sozinho usando esses testadores on-line:

http://www.regular-expressions.info/javascriptexample.htmlhttp://www.regextester.com/

Estou fazendo algo errado aqui? Ou é que a biblioteca de regex do Java realmente é uma droga?

questionAnswers(5)

yourAnswerToTheQuestion