- var_dump: documentation ( source)
- preg_replace_callback: documentation ( source)
<?php
$params = array("full");
$route = "/user/[a-z0-9:username]+";
echo preg_replace_callback('~\[([a-z0-9\.\-_\+]+)\:([a-z0-9\_]+)\](+|*|\{[0-9]+(?:,[0-9]+)?\})?~', function($matches) use($params) {
$params[] = $matches[2];
return '[' . $matches[1] . ']' . $matches[3];
}, $route);
var_dump($params);