Here is a regex from my BB Code formatter, it's basically what you're looking for.
$Formatted = preg_replace('/\[(.*?)\](.*?)\[\/\1\]/is', '<span class=\'$1\'>$2</span>', $Formatted);
Type: Posts; User: -=Hero Doug=-
Here is a regex from my BB Code formatter, it's basically what you're looking for.
$Formatted = preg_replace('/\[(.*?)\](.*?)\[\/\1\]/is', '<span class=\'$1\'>$2</span>', $Formatted);