<?php
$sql = "BEGIN;INSERT INTO TABLE_A (a, b, c) VALUES('42', '12', '\'ab\'c; DEF');INSERT INTO TABLE_B (d, e, f) VALUES('42', '43', 'XY\'s Z ;uvw');COMMIT;";
$splits = preg_split('~\([^)]*\)(*SKIP)(*F)|;~', $sql);
echo "Option 1<br />";
print_r($splits);
echo "<br />Option 2<br />";
$splits = preg_split('~\([^)]*\)(*SKIP)(*F)|(?<=;)(?![ ]*$)~', $sql);
print_r($splits);

