我不明白为什么这个正则表达式总是返回false?

Fab*_*ias 2 regex c#-4.0

好的就是正则表达式:

Match CMD = Regex.Match(CommandString, @"\(([a-z0-9]+);(INTEGER|DECIMAL|STRING);(d{1,3});(((YES|NO);){3})([a-z0-9]+)\)", RegexOptions.IgnoreCase);

if (CMD.Success){
   return true;
}
return false;
Run Code Online (Sandbox Code Playgroud)

以下模式应该返回true:

(ID;Integer;12;YES;YES;YES;0)

(weak;String;5;NO;YES;YES;super)

(fabris345;decimal;23;YES;YES;YES;0)

(expr12nd;String;455;NO;YES;NO;super1000)
Run Code Online (Sandbox Code Playgroud)

但他们总是回归虚假.为什么?

Soo*_*ony 5

......(d {1,3})......应该是(\ d {1,3})