1. A method implemented in a multi-threaded network processor, the method comprising: receiving a plurality of packets; classifying the packets to assign the packets into one or more flows; performing content inspection on at least some of the packets using a multi-pattern search and employing tagged values for at least one search pattern, the tagged values comprising an offset value identifying an offset in a data stream at which a search pattern may start and a depth value identifying a depth in the data stream to which the data stream is to be searched for the search pattern, wherein at least one of the offsets and depths for at least two search patterns in the multi-pattern search are different; forwarding at least a portion of the packets based at least in part on the classifying and the content inspection.