$a = "foo|{baz|qux}|fax"; @b = ($a =~ /( [^|\{]+ | \{ [^}]+ \} ) (?: \| | $ ) /xg);