Regex com expressão recursiva para combinar chaves aninhadas?

Estou tentando combinar texto comosp { ...{...}... }, onde as chaves são permitidas para aninhar. Isto é o que eu tenho até agora:

my $regex = qr/
(                   #save $1
    sp\s+           #start Soar production
    (               #save $2
        \{          #opening brace
        [^{}]*      #anything but braces
        \}          #closing brace  
        | (?1)      #or nested braces
    )+              #0 or more
)
/x;

Eu simplesmente não consigo combiná-lo com o seguinte texto:sp { { word } }. Alguém pode ver o que está errado com o meu regex?

questionAnswers(2)

yourAnswerToTheQuestion