Не расщепляется, но выполняется сопоставление и обрезка. Пример в JavaScript, вы можете попробовать его в консоли браузера:
var a = '[apples carrots] (car plane train) {food water} foo bar';
a.match(/[a-zA-Z0-9\[\]\(\){}]+/g).map(function (s) { return s.replace(/[\[\]\(\)\{\}]/, ''); });
["apples", "carrots", "car", "plane", "train", "food", "water", "foo", "bar"]
Альтернативно:
a.split(/\s+(?![^\[]*\]|[^(]*\)|[^\{]*})/)
Производит:
["[apples carrots]", "(car plane train)", "{food water}", "foo", "bar"]