<?php
$string='[b]あなたのために詩を書いてください[/b]
[i]あなたのために不可能なことをしてください[/i]
$pattern=array(
'/\[b\](.*)\[\/b\]/i',
'/\[i\]( . *)\[\/i\]/iU',
);
$replace=array(
'<b>\\1</b> ; <br />',
'<i>\\1</i><br />',
);
$ ubb =preg_replace($pattern,$replace,$string);
echo $ubb;
\\1 が (.*) を置き換えずに継承するのはなぜですか? ? ?
置換のみに後方参照が含まれる可能性はありますか?\nこれは説明ですか?というか、固まってますよね?