- preg_match_all: documentation ( source)
<?php
$txt="Fatti&Storie 5 - Lorem ipsum dolor [12] sit amet [nid:5]";
$re1=".*?";
$re2="(\\[)";
$re3="((?:[a-z][a-z0-9_]*))";
$re4="(:)";
$re5='(\\d+)';
if ($c=preg_match_all ("/".$re1.$re2.$re3.$re4.$re5."/is", $txt, $matches)) {
$c1=$matches[1][0];
$var1=$matches[2][0];
$c2=$matches[3][0];
$int1=$matches[4][0];
print "($c1) ($var1) ($c2) ($int1)\n";
}