Je pense que votre regex échoue à la validation sur une chaîne vide qui devrait dans ce cas être valide puisque ce champ n'est pas obligatoire. Pourquoi n'essayez-vous pas cette expression régulière :
/^$|^\d{10}$/
Cela correspondra à une chaîne vide ou à 10 chiffres.