TCL正则表达式中,是否可以使用变量

TCL正则表达式中,是否可以使用变量

我现在需要使用TCL的正则表达式去匹配一些情况。
检查文本中的每一行里面,是否有我列表里的关键字。
代码如下

[Copy to clipboard] [ - ]
CODE:
regexp -all {(.*)($block)(.*)} $line s1 s2 s3 s4;

其中block是列表中的一个关键字。但是这样写,达不到我想要的结果。貌似TCL无法支持这种写法。
相反,换成

[Copy to clipboard] [ - ]
CODE:
regexp -all {(.*)(brom)(.*)} $line s1 s2 s3 s4;
regexp -all {(.*)(cpu)(.*)} $line s1 s2 s3 s4;

之类的,就可以,但关键字列表我无法事先得到,不能固化到程序里。

请问有解决办法吗,谢谢!
文本是类似这样的:

[Copy to clipboard] [ - ]
CODE:
Port           Dir     Load     Load     Trans   Cap     Class      Attrs  
acc_ica_s0_axiusz_awready
               in      0.0048   0.0000    0.68    0.09   default      
master_axi0_3_brom_rdata[17]

刚找到一种方法

[Copy to clipboard] [ - ]
CODE:
regexp -all "\(\.\*\)\($block\)\(\.\*\)" $line s1 s2 s3 s4;