Check if all of the delimiters in an expression are matched and closed
Performance

Checking if a list contains a value is an \$O(n)\$ operation.
To make if v not in delimiters fast,
it would be better to make delimiters a set instead of a list.

The elif v in delimiters: is unnecessary, because at that point we already know that v is in delimiters, so you can replace with a simple else:.

Creating lists and maps of characters

This is a PITA to type:


delimiters = ['[', ']', '(', ')', '{', '}']
delimiters_map = {']':'[', ')':'(', '}':'{'}



An easier and less error-prone way is to call list to turn a string into a list of characters:

openers = list('[({')
closers = list('])}')
delimiters = set(openers + closers)
delimiters_map = dict(zip(closers, openers))


If it's a stack, call it a stack

working_set is a misleading name. It suggests a set, but it's a list.
And you're using it as a stack, so I suggest to call it a stack.

Use doctests

Doctests are awesome. You can run them with python -mdoctests script.py.

def check_match(source):
    """
    &gt;&gt;&gt; check_match('{(abc)22}[14(xyz)2]')
    True

    &gt;&gt;&gt; check_match('[ { ] }')
    False

    &gt;&gt;&gt; check_match('{ (x) } [')
    False

    &gt;&gt;&gt; check_match('')
    True

    """
    # ... (your implementation)