Smartyのregex_replaceで一致した部分を取り出す

どうした

何故か今Smartyを触っている謎はおいといて、正規表現でヒットした部分を取り出したいなーと思った。

問題

www.smarty.net
公式のドキュメントには特に書いてない。

d.hatena.ne.jp
ありがたい先人。

解決策

PHP: preg_replace - Manual
つまりpreg_replaceのreplacementの仕様と同じく$nで指定すれば良い。
一部を切り抜きたい場合は、前後もマッチングしてやれば良い。

{assign var="origin_text" value="this is origin text."}
{$origin_text}<br>
{$origin_text|regex_replace:'/^(.*)(o.*t)(.*)$/':'$2'}<br>
 this is origin text.
<br>
origin text
<br>