Я выяснил проблему .... валидатор пытается проверить литеральный символ и символы приглашения.
Вот как использовать валидатор asp regex с telerik RadMaskedTextBox, который имеет маску ##### - #### и может принимать 5 или 9 чисел.
регулярное выражение, которое сработало для меня: ^ \ d {5} -? (?: _ {4})? (?: [- \ s]? \ d {4})? $
<asp:RegularExpressionValidator ID="valRegexZip" runat="server" ErrorMessage="Must be valid!" ControlToValidate="txtZip" SetFocusOnError="true" Display="Dynamic" ValidationExpression="^\d{5}-?(?:_{4})?(?:[-\s]?\d{4})?$" ValidationGroup="valGroupStep1" ></asp:RegularExpressionValidator>
У меня были проблемы с маской, потому что валидатор пытался проверить «55555 -____» буквально с тире и подчеркиванием.Этот валидатор учитывает это (данные передаются только как «55555»)
Также вы можете использовать другие выражения регулярных выражений, отключив свойство prompt char маскированного текстового поля.
Надеюсь, это поможет кому-то сэкономить время!