Provo a scrivere una cosa, ma sarà sicuramente sbagliata...

^(1-9)(0-9)*[a-z]{1}$

può andare?
No
Per come lo hai scritto, quel codice prenderebbe per valido 1-9a

e riterrebbe invalido un nomale 3


Fai così:

^[1-9]{1}[0-9]*[a-z]?$