Your regex looks awfully close. Try:
var regexTenCharacter = new RegExp("^[A-Za-zÑ&]{4}\d{2}[01]\d(?:(?:0[1-9])|(?:[12]\d)|3[01])$");
All of the {1} are unnecessary since exactly 1 occurrence of an item is the default.
You had [0|1] where all you wanted was [01].
What you had would match any of the three characters: 0 1 | (vertical bar)
Your handling at the end would have allowed any 2 digit number from 00-39.
It needs to be a bit more specific, piecewise, to get the range you want.
There's also
Expresso[
^] for building and testing regular expressions.
Also, you said that what you had was failing but you weren't specific about what was wrong. You should always be as specific as possible describing your errors.