1. A Ternary Content Addressable Memory (TCAM) comprising: input search data bits, the input search data bits separated into a plurality of groups wherein each group in the plurality of groups can be configured as range search bits or as search bits; a plurality of TCAM words; wherein each TCAM word of the plurality of TCAM words is operable to store a match pattern; wherein each TCAM word of the plurality of TCAM words provides a match output; wherein the match output indicates a match when the match pattern of the TCAM word matches the TCAM input search data bits; wherein for a group in the plurality of groups the group has a bit width N wherein N is the number of range search bits; wherein for the match pattern for each group in the plurality of groups when the group is range search bits there is a Boolean function, the Boolean function using the N range search bits; wherein (2 N )/2 TCAM bits are provided for each TCAM word in the plurality of TCAM words; where 2 N internal TCAM search lines associated are operable to search said (2 N )/2 TCAM bits; wherein decoder logic associated with each group decodes the N range search bits; wherein the decoder logic associated with each group drives the 2 N internal TCAM search line; wherein each of the TCAM bits identifies two TCAM memory bit-cells; wherein each TCAM memory bit-cell of the 2 N TCAM memory bit-cells is associated with an associated input value of said the N range search bits; wherein each of the 2 N TCAM memory bit-cells is programmed with a match enabling value when the Boolean function indicates a match; and wherein each of said 2 N TCAM memory bit-cells is programmed with a match disabling value when said Boolean function indicates a mismatch.