while ( ) { my %data = $_ =~ m{ ([^=\s]+) \s* = \s* ["']?( (?<=')[^']* | (?<=")[^"]* | \S+ )["']? }xg;