I have the following regular expression which validates the British National Insurance Number
^([a-zA-Z]){2}( )?([0-9]){2}( )?([0-9]){2}( )?([0-9]){2}( )?([         
        
I found a link to the government xml document which contains the regular expression for validating national insurance which was:
[A-CEGHJ-NOPR-TW-Z]{2}[0-9]{6}[ABCD\s]{1}
I've done some testing on regex online and seems to work well and in only 4 steps.
https://web.archive.org/web/20121026141031/http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/media/291296/CitizenIdentificationTypes-v1-4.xml