1. A computer-implemented method comprising: configuring a pattern matching engine based on user input, the user input comprising one or more user configurable bounds on searching, wherein the one or more user configurable bounds comprise at least one of a predetermined sample size, a predetermined search time limit, a predetermined threshold of a confidence level of the content of the string being in one of the plurality of categories, a maximum barren sample size, and a minimum salience; using the pattern matching engine to perform a search for a plurality of features in an incoming string; updating a plurality of scores based on presence of any of the plurality of features in the string while searching for the plurality of features, wherein each of the plurality of scores indicates a likelihood of content of the string being in one of a plurality of categories; terminating the search before reaching an end of the string if the one or more user configurable bounds are met; and outputting the plurality of scores after terminating the search.