Your regular expression can match zero characters. The final match is a zero width string occurring at the end of the string, after the character at index 5. The index of this zero width string is therefore 6.
As an aside, you might also find it easier to understand what is going on if you use separators to make the output more readable:
System.out.println(matcher.start()+ ": " + matcher.group());
Results:
0:
1:
2: 34
4:
5:
6:
ideone