import re


def check_pal(phrase):
    """
    Checks whether a phrase is a palindrome or not.

    >>> check_pal('Reviled did I live, said I, as evil I did deliver')
    True
    """
    p = re.compile('\W')
    phrase = p.sub('', phrase).lower()

    # With list
    # rev = list(phrase)
    # rev.reverse()
    #
    # return list(phrase) == rev

    # With iterator
    # rev = ""
    # for i in reversed(phrase):
    #     rev += i

    # With recursion
    def srev(string):
        if len(string) == 1:
            return string[0]

        else:
            return srev(string[1:]) + string[0]

    return phrase == srev(phrase)