Я почти уверен, что ваше регулярное выражение неверно.
Я думаю, что вы пропустили некоторые периоды (.) Там до * 100 * *
Если вы сломаете то, что у вас есть: ^{0}*(q*x|x*q)*
то есть:
^{0}* <-- starts with 0 or more of whatever the text box had.
(q*x|x*q)* <-- then contains 0 or more of this pattern.
Поскольку вы спрашиваете «0 или больше», оно в основном соответствует чему угодно. Ввод "bb", похоже, сработает, потому что это сделает начальное регулярное выражение: ^bb*
, которое разбивается на:
^b <-- starts with 1 letter 'b'
b* <-- followed by 0 or more letter 'b's
Я думаю, что вы хотели:
^{0}.*(q.*x|x.*q)+
Который разбивается на:
^{0} <-- starts with 1 of whatever my text box had
.* <-- then 0 or more of anything
(q.*x|x.*q)+ <-- then 1 or more of q + anything + x, or x + anything + q