Вложенный PCRE Regex Issue

У меня есть собственный шаблонизатор.

Это поймать это:

@function(argument1 argument2 ...)
@get(param:name)
@get(param:@get(sub:name))

И это :

@function(argument1 argument2 ...)

    Some stuff @with(nested:tag)

    @foreach(arguments as value)
        More stuff : @get(value)
    @/foreach

    @function(other:args)
        Same function name (nested)
    @/function

@/function

С этим шаблоном (PCRE / PHP):

#

@ ([\w]+) \(

( (?: [^@\)] | (?R) )+ )

\)

(?:
    ( (?> (?-2) ) )

    @/\\1
)?

#xms

Это регулярное выражение ловит почти все результаты. Но когда у меня есть больше вложенных (или нет) тегов, то это ничего не ловит.Напримеркогда я делаю 2 вложенных@foreach(var:name) ... @/foreach тогда регулярное выражение не будет выполнено в зависимости от содержимого тегаspaces.

Ответы на вопрос(1)

Ваш ответ на вопрос