From my understanding of regular expressions string "00###" has to match with "[0-9]", but not to "^[0-9]$". But it doesn't work with Java regexp's.
After some investigating of this problem I founded next information (http://www.wellho.net/solutions/java-regular-expressions-in-java.html):
It might appear that Java regular expressions are default anchored with both a ^ and $ character.
Can we be sure that this is true for all versions of JDK? And can this mode be turned off (i.e. to disable default anchoring with ^ and $)?