请问正则式如何匹配这样的模版呢?[求助]

请问正则式如何匹配这样的模版呢?[求助]
比如这个简化的例子:


template1 var1
{
Pos ID_2
{
Size = ( 27, 30 );
};
Pos ID_3
{
Size = ( 27, 30 );
};
};

template2 var2
{
Pos ID_2
{
Size = ( 27, 30 );
};
Pos ID_2
{
Size = ( 27, 30 );
};
Pos ID_3
{
Size = ( 27, 30 );
};
};

我想分组出出 template1 和template2:

我写的
@class = $input =~ /\s*[a-zA-Z0-9]+\s+\w+\s+\{.*(\{.*\})+.*\s\};/gs;

分组没法处理,怎么样匹配外面的大括号呢?

多谢!