import re


def iscrcard(value):
    """
    Return whether or not given value is a credit card.
    If the value is a credit card, this function returns ``True``, otherwise ``False``.

    Examples::

        >>> iscrcard('375556917985515')
        True

        >>> iscrcard('5398228707871528')
        False

    :param value: string to validate credit card
    """
    pattern = re.compile(r"^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$")
    sanitized = re.sub(r'[^0-9]+', '', value)
    if not pattern.match(sanitized):
        return False
    summation = 0
    should_double = False
    for i in reversed(range(len(sanitized))):
        digit = int(sanitized[i:i+1])
        if should_double:
            digit *= 2
            if digit >= 10:
                summation += (digit % 10) + 1
            else:
                summation += digit
        else:
            summation += digit
        should_double = not should_double
    if summation % 10 == 0:
        return True
    return False