import re


def match_is_ipv4_address(value):
    """Match given value as a valid dotted-quad IPv4 address."""
    # Apply the dotted-quad pattern to the string and detect a mismatch
    try:
        match = re.search(r'^(\d+)\.(\d+)\.(\d+)\.(\d+)$', value)
    except TypeError:
        return u'{0} must be a string in IPv4 dotted-quad notation'.format(
            repr(value))
    if not match:
        return u'"{0}" must be in IPv4 dotted-quad notation'.format(
            value)

    # Validate the range of each octet
    octets = [int(x) for x in match.groups()]
    for idx, octet in enumerate(octets):
        if octet > 255:
            return '{0} octet of "{1}" exceeds 255'.format(
                ['1st', '2nd', '3rd', '4th'][idx], value)

    return None