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