Hm, nach meinem Verständnis sollte eigentlich
jede Zahlenkombination erschlagen- das + sagt "mindestens ein Auftreten der Zahlen 0-9". Die Angabe [10-99]+ würde dann so interpretiert "mindestens einmal entweder die 1, eine Zahl von 0-9 oder die 9". Kurz gesagt: Der Ausdruck in der ersten Klammer sollte reichen, wenn ich mich nicht irre.
EDIT: Anders ausgedrückt: Eine regexp "versteht" keine Zahlen sondern Zeichenketten. Mit [1-1000]+ hast Du also versucht zu sagen "mindestens einmal eine Zahl zwischen 1 und 1 oder die 0 oder die 0 oder die 0".