<p>Let's say we have 2 php variables:</p>

<ul>
<li><strong>$name</strong> = 'caption';</li>
<li><strong>$url</strong> = '<a href="http://domain.com/photo.jpg" rel="nofollow noreferrer">http://domain.com/photo.jpg</a>';</li>
</ul>

<p>The input string of <code>'{@url,&lt;img src="," alt="{@name}" /&gt;}'</code> should return:</p>

<p><code>'&lt;img src="http://domain.com/photo.jpg" alt="caption" /&gt;'</code></p>

<p>The <code>{tag}</code> takes up to 3 parameters: <code>{@variable[,text_before][,text_after]}</code>.</p>

<p>What regex would be needed to make this happen? The tricky part is that a <code>{@..}</code> tag is nested within another.</p>

It's for a CMS. Admins can add column fields, then add template code for how it will be displayed on the listing page. The {@tags} are used to output the dynamic column values. This template code:
```
<p>Link: <a href="{@url}">{@name}</a> - {@date}</p>
```
would create a listing page like:
Link:
link one
- 2 July 2008
Link:
link two
- 14 June 2008
Link:
link three
- 9 February 2007
...
I figured that people might want to use column values within others, hence the "alt" tag example from the first post. So using regex for this would be a bad idea?