PHP, plantillas anidadas en preg_replace

preg_replace("/\[b\](.*)\[\/b\]/Usi", "<strong>$1</strong>", "Some text here... [b][b]Hello, [b]PHP![/b][/b][/b] ... [b]and here[/b]");

devoluciones

Some text here... <strong>[b]Hello, [b]PHP!</strong>[/b][/b] ... <strong>and here</strong>

Pero necesito reemplazar todas las etiquetas [b] ... [/ b]. ¿Por qué esto no sucede en mi caso?