Die Kritik galt nicht den regexp's an sich (und ich denke mal, schon gar nicht dir persönlich), sondern der Herangehensweise, und da eine Alternative vorgeschlagen wurde, nämlich den String umzuwandeln, war sie auch durchaus konstruktiv!
Ich führe die Alternative hier einmal aus, auch wenn ich natürlich jetz nicht weiß, inwiefern sie in deinem speziellen fall sinn macht:
Code: Alles auswählen
def is_in_0_4096(text):
"""Gebe True zurück, wenn text die Dezimaldarstellung einer
Zahl zwischen (einschließlich) 0 und (einschl.) 4096 ist.
"""
try:
n = int(text)
except ValueError, e: # text keine Zahl
return False
else:
return 0 <= n <= 4096
...sprich erstmal den String in einen Integer umwandeln und dann gucken, ob der im richtigen Zahlenbereich liegt. wenn du natürlich einen sehr komplexen regulären Ausdruck hast, innerhalb dessen du matchen willst, dürfte die hier bereits vorgeschlagene RegExp u.U. hilfreicher sein.