$text = 'ab'; if ($text =~ /(a*)((?:ab)*|b*)/) { print "'$1', '$2' \n"; } if ($text =~ /(a*)(b*|(?:ab)*)/) { print "'$1', '$2' \n"; } #### 'a', '' 'a', 'b'