in reply to Regular Expression, Catching Variables

Catching all the variables: just assign your RE to an array, or list. For example:
my @captures = $line =~ m/(\d{4}-\d\d-\d\d),(\w*),(\w*),(\w*,|\w*\(.*? +\),?|\w*-\w*,|\w*-\w*\(.*?\),?)*/; #{8} replaces