function bb2($str)
{
$find = array('#\[ ?b *\](.+)\[ ?/b *\]#isU',
'#\[ ?i *\](.+)\[ ?/i *\]#isU',
'#\[ ?u *\](.+)\[ ?/u *\]#isU',
'#\[ ?s *\](.+)\[ ?/s *\]#isU',
'#\[(colou*r)=(.+)\](.*)\[\/\1\]#isU',
'#\[ ?quote *\](.+)\[ ?/quote *\]#isU',
'#\[ ?list *\](.+)\[ ?/list *\]#isU',
'#\[ ?\* *\](.+)\n#isU',
'#\[size=(.+)\](.*)\[/size\]#isU',
'#\[(quote)=([a-z0-9]*)\](.*)\[\/\1\]#isU',
'#\[syntax="(.+)"\](.*)\[/syntax\]#isUe',
'#\[ ?code *\](.+)\[ ?/code *\]#isU',
'#\[ ?img *\](.+)\[ ?/img *\]#isU',
'#\[url=(https?:\/\/)([^\]]*)\](.*)\[\/url\]#isU',
'#\[url=([^\]]*)\](.*)\[\/url\]#isU',
'#\[url\](https?:\/\/)([^\[]*)\[\/url\]#isU',
'#\[url\]([^\[]*)\[\/url\]#isU',
'#\n#');
$replace = array('\1',
'\1',
'\1',
'\1',
'\3',
'
',
'',
'\1',
'\2',
'',
'\' |
| \' . $this->getsyntax((\'\1\' == \'es\' ? \'eventscripts\' : \'\1\'), \'\2\') . \' |
\'',
'',
'
',
'\3',
'\2',
'\2',
'\1',
'
');
$str = preg_replace($find, $replace, $str);
return $str;
}