import re


def is_quote(s, q_start, q_end, wc):
    """Is this pair of quote-marks a valid quote, or "other construct" that should be ignored?"""
    # Quotes should have one of...

    # ...five or more words (for double quotes)
    if wc >= 5 and s[q_start] not in set(("’", "'")):
        return True
    # ... select punctuation before the quote
    if re.search(r'(?:\-\-|\(|,|:|;)\s*$', s[q_start - 4: q_start]):
        return True
    # ... select punctuation at the start
    if re.search(r'^\s*(?:\-\-)', s[q_start + 1: q_start + 6]):
        return True
    # ... select punctuation before the end
    if re.search(r'--\s*$|[,?.!-;_]$', s[q_end - 5:q_end - 1]):
        return True
    # ... select punctuation after the quote
    if re.search(r'^\s*--', s[q_end:q_end + 5]):
        return True
    return False