Пропустите его через несколько регулярных выражений, если можете. Это будет намного чище, чем эти чудовища: -)
^[a-zA-Z0-9]{6,10}$
[a-zA-Z]
[0-9]
Хотя некоторые могут счесть это умным, нет необходимости делать все с одним регулярным выражением (или даже с любым регулярным выражением, иногда - просто свидетельствуйте людям, которые хотят, чтобы регулярное выражение обнаруживало числа между 75 и 4093 ).
Вы бы предпочли какой-нибудь хороший чистый код вроде:
if not checkRegex(str,"^[0-9]+$")
return false
val = string_to_int(str);
return (val >= 75) and (val <= 4093)
или что-то вроде:
return checkRegex(str,"^7[5-9]$|^[89][0-9]$|^[1-9][0-9][0-9]$|^[1-3][0-9][0-9][0-9]$|^40[0-8][0-9]$|^409[0-3]$")
Я знаю, какой я бы предпочел бы сохранить: -)