Page is a not externally linkable
vincevincevince - 3:31 am on Sep 11, 2007 (gmt 0)
The pattern looks for an opening curly-brace ( \{ ) - the end of the pattern is a closing curly-brace ( \} ). In between the two braces I look for any character which isn't an opening curly-brace [^\{], avoiding mistaken nesting of tags. I match between 1 and 100 of these non-{ characters by writing {1,100} and then I make the match non-greedy (try to find the shortest strings between { and }, not the longest) by adding a?. (? after *, + or {a,b} expressions changes them to non-greedy - in other situations? means 0 or 1 of the preceding). The full string of non-{ characters is matched and stored as string $1 by surrounding that part of the pattern with brackets (). Finally, the second argument of the preg_replace is "$$1", using variable variables. If the pattern encounters "{title}" then the matched string $1 is "title" and so $$1 is $title.
"/\{([^\{]{1,100}?)\}/e","$$1"
I'm delimiting the regular expression with / / and using the modifier 'e' which causes the second argument to be evaluated by PHP.