my $string = ' 5954 Bluebonnet Sun Catcher Horizontal Oval 6"X9" 1 @ $ 39.95 = $ 39.95 '; my $string2 = '5422 Texas Home Luggage Tag 6 @ $ 3.95 = $ 23.70'; print " 1 set to $1\n match \n\n" if ( $string2 =~ /([\d]+) # match first digits ( greedy ) \s+ # multiple space ([\w\s|"|\-|\']+) # capture at word boundary \s{2,} # single space followed by multiple spaces ([\d,\.]+) # capture digit, comma, period \s\D+ # single space, non-digit character ([\d,\.]+) # capture digit comma period \s\D+ # space plus non-digit character ([\d,\.]+) # capture digit comma period /ix # end regex ) ; #### my $prodID = $1; my $prodDescr = $2;