my $string="{'totalResultsCount':71-24,'securityList':[{'cusip':'91%279-6.H:Y8','issueDate':'2016-06-02T00:00:00','securityType':'Bill'}"; # Patterns # original (\w+\-\$\.\%) # matach any pattern with these limits ([\w\-\$\.\%\:]+) # anything but this ' ([^\']+) # exact pattern (\d{2}\%\d{3}\-\d\.[A-Z]\:[A-Z]\d) $string =~ /'cusip':'(\d{2}\%\d{3}\-\d\.[A-Z]\:[A-Z]\d)'/; if (defined $1) { print " first is : $1 \n\n"; } else { print " first is not defined\n\n"; }