$string = "(1,2,3,<4,5,6>),more"; my @line = split(/,(?![\w,]+[>)])/, $string); print Dumper(\@line); #### $VAR1 = [ '(1', '2', '3', '<4,5,6>)', 'more' ];