[...]
matches any character defined in the character class, so
[X{9,11}\*{2,3}]
actually means, a single character which is: X, or open brace, or 9, or comma, or 1, or 1 (yes you have it duplicated), or backslash, or asterisk....
So as your string have more than character in your string to-be-matched, such pattern will not match.
When you add a +
, it means matching a string with 1 or more [ X or asterisk or....], so it match
I believe what you really want to do is using a group.
So the regex looks like (X{9,11}*{2,3}])+
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…