Questão de regex SCJP6

Eu tenho problema com o seguinte exemplo:

import java.util.regex.*;
class Regex2 {
    public static void main(String[] args) {
        Pattern p = Pattern.compile(args[0]);
        Matcher m = p.matcher(args[1]);
        boolean b = false;
        while(b = m.find()) {
            System.out.print(m.start() + m.group());
        }
    }
}

E a linha de comando:

java Regex2 "\d*" ab34ef

Alguém pode me explicar, porque o resultado é: 01234456

o padrão de regex é d * - significa o número um ou mais, mas há mais posições que em args [1],

obrigado