Попробуйте это
^(?=(?:\D*\d){0,10}\D*$)
Объяснил:
^ # Beginning of string, BOS
# Lookahead assertion
(?=
# Note this group is designed
# so that it is the only place
# a digit can exist.
(?: # Group
\D* # Optional, any amount of non-digits
\d # Required, a single digit
){0,10} # End group, do 0 to 10 times
# Example:
# - If this group runs 0 times, no digits were in the string.
# - If this group runs 4 times, 4 digits are in the string.
# - Therefore, min digits = 0, max digits = 10
\D* # Finally, and optionally, any amount of non-digits
$ # End of string, EOS
)