thanks for your answer, it's good enough for me since no spaces are allowed in argument name and no commas in quoted strings. but I have a little question since I never used regexps with lookahead assertions, what is the '$|' symbol in the regexp (just before the assertion)?
translates to "match if either the end of line has been reached, OR if the next part (lookahead) matches one or more alphanumeric characters followed by a colon"
Without checking for the end of line, the last parameter would always be missed out (it would only match a parameter if it was followed by another one).