Ваше выражение работает нормально, вы можете просто удалить начальный и конечный символы, и оно также пройдет 23456KW33C3
.
2\d{4}k?(m|(w33)(c3)?)?
Эта ссылка помогает вам изменять / обновлять выражения по вашему желанию.
![enter image description here](https://i.stack.imgur.com/HYW0E.png)
Я не совсем уверен, что вы хотели бы соответствовать. Возможно, вы захотите упростить свое выражение и уменьшить ограничения, которые оно имеет.
Если вы хотите написать свои выражения с помощью ИЛИ, это выражение показывает, как вы можете это сделать:
2\d{4}(k|)|(m|w33)|(c3)
Вы можете добавить их между имеющимися у вас группами захвата, чтобы провести нужные выводы слева направо. Затем, если вы хотите, после этого вы можете добавить больше границ.
![enter image description here](https://i.stack.imgur.com/d2nsw.png)
RegEx Circuit
Эта ссылка поможет вам визуализировать ваши выражения:
![enter image description here](https://i.stack.imgur.com/OYgaO.png)