[A-Z]?[a-z]?[0-9]?
соответствует необязательной заглавной букве, за которой следует необязательная строчная буква, за которой следует необязательная цифра. Таким образом, он также соответствует пустой строке. То, что вы ищете, это: [a-zA-Z0-9]
, который будет соответствовать одной цифре, строчные или прописные буквы.
И если вам нужно проверить наличие букв (и цифр) за пределами диапазона ASCII, используйте его, если ваш вариант регулярного выражения поддерживает это: [\p{L}\p{N}]
Где \p{L}
соответствует любой букве, а \p{N}
- любому числу.