<?php

if (
  preg_match_all(
    '~(?(DEFINE)(?<content>\w+))(?><(?&content)>|\[(?&content)\]|\((?&content)\))~',
    '<123> [234] (45) 6 (<78>)',
    $m
  )
)
print_r($m);

?>