def _build_abbreviation_regex(input_string):
        """ builds a recursive regex based on an input string to find possible abbreviations more simply.
            e.g. = punct(u(a(t(i(on?)?)?)?)?)?

        :param input_string: str, input string
        :return: str, output regex
        """
        result=''
        for char in input_string:
            result += '[%s%s]?' % (char.upper(), char.lower())
        return '(%s)' % result