my $string = qq{var1='1' var2="2" var3="3"}; while ( $string =~ /(\w+)=(['"])(.*?)\2/g) { print "$1 = $3\n"; } #### use 5.010_000; while ( $string =~ /(?\w+)=(?['"])(?.*?)\k/g) { say "$+{variable} = $+{value}"; }