I guess it is wrong in your sense.
I suspect you’re looking for this.
String pattern = "(\\D*)(\\d+)(.*)";
Maybe you want to check reluctant quantifiers too.
http://docs.oracle.com/javase/tutorial/essential/regex/quant.html
13
solved Is this regex pattern wrong? [closed]