in reply to Regular expressions - match

I tried to simplify the requirements and I ended up confusing you. These are some more details:

The data lines are like csv, but I cannot rely on the comma delimiters (the data line syntax is not always correct), therefore I chose to match the values based on the text before and after the match group.
Because of the above, "split" is not an option and I am not interested to use a hash for remembering the values (I have about 6 fields in total).

I have modified the initial regexp based on "eff_i_g"'s suggesion and it seems to work:

$string1 =~ m/ (?:one=(.*?),)? .*? (?:two=(.*?),)? .*? (?:three=(.*?),)? .*? (?:four=(.*?),)? .*? (?:five=(.*?),)? /x;
Thank you very much.