Неидеально, но кажется работает:
$text='Какой-то текст [IMG=3902565d3789b88c50b.jpg] Текст после картинки без переноса[IMG=3902565d3789b88c50b.jpg][IMG=3902565d3789b88c50b.jpg]
Текст после изображения с переносом
Обычный абзац
Текст перед картинкой вконце всего текста [IMG=3902565d3789b88c50b.jpg].';
$split="SPLIT";
$text=preg_replace ("#(.*)(\[IMG\=.+\])(.*)#Uisu", $split."$1".$split."$2".$split."$3", $text);
$t_arr=explode ($split, $text);
foreach ($t_arr as $k=>$v)
 if ($v!="") $arr []=trim ($v);
print_r ($arr);
Array
(
    [0] => Какой-то текст
    [1] => [IMG=3902565d3789b88c50b.jpg]
    [2] => Текст после картинки без переноса
    [3] => [IMG=3902565d3789b88c50b.jpg]
    [4] => [IMG=3902565d3789b88c50b.jpg]
    [5] => Текст после изображения с переносом
Обычный абзац
Текст перед картинкой вконце всего текста
    [6] => [IMG=3902565d3789b88c50b.jpg]
    [7] => .
)