Регулярные выражения – одно из моих слабых мест, думаю будет разумно собрать все в кучу, и периодически обновлять новыми. Итак:
Вытащить расширение файла
echo preg_replace("/.*?\./", '', 'file.txt'); // получим txt
Получить все, что находится между тегами
$str='<tag>some text</tag><tag>some text2</tag>';
$str2 = preg_match('|<tag.*>(.*)</tag>|sei', $str, $res);
echo $res[1]; // получим some text

Эта статья будет посвящена основам технологии Smarty. Я не буду здесь углубляться в полное описание всех возможностей Smarty – все это можно найти на