Tach!
Mach es Dir einfacher, und verwende höchstens einen Regex, um zu prüfen, ob der String nur aus Ziffern besteht:
Im einfachsten Fall reicht statt Regex schon is_numeric(), wenn auch Hex- und andere Schreibweisen gestattet sind. Ansonsten ctype_digit() (falls ctype eingebunden ist).
dedlfix.