A script like this: line1: $string3 = "bacdeabcdefghijklabcdeabcdefghijkl"; line2: $string4 = "xxyyzzbatttvv";
line3: print "\$1 = $1 [EMAIL PROTECTED],$+[0]}, \$& = $&\n" if($string3 =~ /(a|b)*/); line4: print "\$1 = $1 [EMAIL PROTECTED],$+[0]}, \$& = $&\n" if($string4 =~ //); Run and gett result: $1 = a @{0,2}, $& = ba $1 = @{0,0}, $& = If I change the code of line3 to: print "\$1 = $1 [EMAIL PROTECTED],$+[0]}, \$& = $&\n" if($string3 =~ /(a|b)+/); and keep everything else the same, I will get: $1 = a @{0,2}, $& = ba $1 = a @{6,8}, $& = ba This result doesn't look very promising to me. The first matching results keeps the same between * and +, while the second who is supposed to inherit the pervious match shows different result. The version I'm using is 5.6.1. Can anyone tell why is this? A bug? Or some tricky I can't figure out? Does this work differently in latest release? Thanks. Sincerely Pine