31. The computer readable storage medium according to claim 29 wherein processing step (d) further comprises the steps of: (d1) checking a first character of a first of said plurality of strings of words against a predefined alias character list, wherein each of said alias characters is a predefined character mapping where more than one character in an ordered sequence is mapped to a single character; (d2) when a match is found in said step (d1) for said first character of a first word of said first plurality of strings of words, building a temporary alias list for said first character; (d3) comparing said first character against a first character of all said previously identified undesirable terms in said secondary database of undesirable terms for a match; (d4) when a match is found, checking to see if said first character is at an end of said first word; (d5) when said first character is not at said end of said first word, calling, by said recursive comparison subroutine, said recursive comparison subroutine recursively; (d6) moving to a next character in said first word of said first plurality of strings of words; (d7) repeating steps (d1) through (d6) for said next character; (d8) repeating step (d7) for each remaining character in said first word of said first plurality of strings of words; (d9) repeating steps (d1) through (d8) for each next word in said first of said plurality of strings of words; and (d10) repeating steps (d1) through (d9) for the remaining plurality of strings of words.
32. The computer readable storage medium according to claim 31 wherein building step (d2) further comprises the steps of: (d2a) when a match is not found for said first character of a first word of said first plurality of strings of words, determining if there are any of said alias characters left for said first character of said first word; (d2b) when said determining step (d2a) result is yes, replacing said first character of said first word with a next alias character in said ordered sequence and passing control to said comparing step (d3) for continued processing; (d2c) when said determining step (d2a) result is no, determining if said recursive comparison subroutine is pointing to said first character of said first word of said first plurality of strings of words on its way back up from said recursion; (d2d) when said determining step (d2c) result is no, stepping back up a level recursively to a previous character position and passing control to said determining step (d2a) for continued processing; (d2e) when said determining step (d2c) result is yes, returning any said at least one undesirable terms found to said blocking step (e).