Dovrebbe essere una cosa simile a questa:
^([A-Z]{6}[0-9]{2}[ABCDEHLMPRST]{1}(((0|4)[1-9]{1})|((1|5)[0-9]{1})|((2|6)[0-9]{1})|((3|7)[0-1]{1}))[A-Z]{1}[0-9]{3}[A-Z]{1})$
Oppure, come credo intenda dire MItaly, dai dati anagrafici calcoli il codice fiscale e lo confronti con quello inserito dall'utente.