Hola, la verdad soy muy malo con expresiones regulares pero despues de ensayo y error encontre esta y ya la probe
pattern="(([0-1]?[0-9])|(20))"
Mi recomendacion es que trates de validar con javascript, ya que usas Ajax para enviar los datos, y que algunas funciones de Html5 no estan presentes en todos los nevegadores; por ejemplo pattern no esta ni para IE ni para Safari Segun la documentacion del W3C me avisas como te va
Saludos