1. A method of detecting in a data stream a complex string of a complex dictionary comprising a set of complex strings, each complex string comprising at least one word in which each character is an indefinite character, the method comprising executing processor-readable instructions causing at least one processor to perform steps of: transforming said complex dictionary into: a segmented dictionary comprising a string prefix and string segments of each complex string in said complex dictionary, each string segment comprising a simple string and a segment suffix, said simple string containing characters defined in an alphabet; and a set of segment descriptors, each segment descriptor defining content of a corresponding string segment in said segmented dictionary; locating in said data stream selected simple strings defined in said segmented dictionary; selecting candidate string segments, from said segmented dictionary, containing said selected simple strings subject to ascertaining congruence of a portion of said data stream, succeeding each said selected simple string, and a segment suffix of a corresponding string segment in said segmented dictionary; and updating a state variable associated with said each complex string according to gauged spans in said data stream between successive positions at which simple strings belonging to said each complex string begin; determining, at each said position, a subset of said candidate string segments belonging to said each complex string; and correlating, at each said position, said state variable with locations, within said each complex string, of candidate string segments of said subset of said candidate string segments.
1. A method of detecting in a data stream a complex string of a complex dictionary comprising a set of complex strings, each complex string comprising at least one word in which each character is an indefinite character, the method comprising executing processor-readable instructions causing at least one processor to perform steps of: transforming said complex dictionary into: a segmented dictionary comprising a string prefix and string segments of each complex string in said complex dictionary, each string segment comprising a simple string and a segment suffix, said simple string containing characters defined in an alphabet; and a set of segment descriptors, each segment descriptor defining content of a corresponding string segment in said segmented dictionary; locating in said data stream selected simple strings defined in said segmented dictionary; selecting candidate string segments, from said segmented dictionary, containing said selected simple strings subject to ascertaining congruence of a portion of said data stream, succeeding each said selected simple string, and a segment suffix of a corresponding string segment in said segmented dictionary; and updating a state variable associated with said each complex string according to gauged spans in said data stream between successive positions at which simple strings belonging to said each complex string begin; determining, at each said position, a subset of said candidate string segments belonging to said each complex string; and correlating, at each said position, said state variable with locations, within said each complex string, of candidate string segments of said subset of said candidate string segments. 8. The method of claim 1 further comprising updating said predefined complex dictionary, said updating comprising at least one of: adding a new complex string; and deleting an existing complex strings.