não consegui chegar numa regex q me satisfizesse pros nomes então só 2 campos permaneceram sendo validados depois de uma longa batalha ...

msgs de erro e sucesso já impressas na view, depois vai ter q ajeitar no css só ...