В PHP, как бы я разделил строку, где начальный и конечный разделитель отличаются друг от друга

вступление

В PHP, как бы я разделил строку с этим синтаксисом:

<As's\\as'dsd> asqwedasd <sa sdasd> [a sadasd] [<asdsad> [as ddsd]] 'asdsad assd' 

в это?

 array(5) { [0]=> string(14) "<As's\\as'dsd>" [1]=> string(9) "asqwedasd" [2]=> string(10) "<sa sdasd>" [3]=> string(10) "[a sadasd]" [4]=> string(20) "[<asdsad> [as ddsd]]" [5]=> string(13) "'asdsad assd'" } 

Более подробное объяснение

Теперь я не лучше объясняю, поэтому я надеюсь, что приведенный выше пример достаточно хорошо объясняет мою ситуацию, что вам не понадобятся мои объяснения, но здесь все равно:

Я хочу разбить эту строку на каждое пространство, кроме некоторых конкретных:

  • Если пространство находится внутри угловых скобок или квадратных скобок, оно не должно разделять эту линию. См. Номера 2 и 3.
  • Внутри кронштейна может быть кронштейн. Это нужно просто вернуть как одну целую строку. См. Номер 4.
  • Там могут быть элементы, которые не находятся в скобках. См. Номер 1.
  • Элементы, не заключенные в скобки, НЕ будут содержать пробелы, которые не будут указаны апострофами. См. Номер 5.
  • Элементы могут содержать все символы UTF-8 EXCEPT для [] <>

Источники, которые могли бы помочь

Разведывать строку, кроме окружения круглыми скобками?

Заранее спасибо! Я знаю, что это очень сложная задача, но я не знаю, как это сделать сам.