PHP: простая проблема с регулярным выражением

Некоторые из моих файлов HTML содержат строку, например:

{foreach $any_kind_of_charaters} Any kind of string including "\n\r" and spaces here {/foreach} 

Я хочу применить PHP's preg_match_all на них и хочу вернуть хороший array как показано ниже

 Array ( [0] => {foreach $any_kind_of_charaters} Any kind of string including "\n\r" and spaces here {/foreach} [1] => any_kind_of_charaters [2] => Any kind of string including "\n\r" and spaces here ) 

Этот REGEX: /\{foreach\s+\$(.*)\}\s+(.*)\s+\{\/foreach\}/ работает нормально для меня,
но он терпит неудачу, когда я добавляю новые строки (\ n) между тегами {foreach}{/foreach} .

Вы будете очень благодарны, спасибо.

МАССА ПОСЛЕ ИСПОЛЬЗОВАНИЯ МОДИФИКАЦИИ «S»

 Array ( [0] => {foreach $any_kind_of_charaters} Any kind of string including "\n\r" and spaces here {/foreach} [1] => any_kind_of_charaters} Any kind of string including "\n\r" and spaces here [2] => ) 

Посмотрите second key array содержащий ненужные данные, и last key array полностью пуст.