def are_brackets_balanced(expr):
    """
    Checks to see if there are parens or brackets that are unbalanced
    
    """
    stack = [] 

    # Traversing the Expression 
    for char in expr: 
        if char in ["(", "{", "["]: 
            # Push the element in the stack 
            stack.append(char) 
        elif char in [")", "}", "]"]: 
            # IF current character is not opening 
            # bracket, then it must be closing. 
            # So stack cannot be empty at this point. 
            if not stack: 
                return False
            current_char = stack.pop() 
            if current_char == '(': 
                if char != ")": 
                    return False
            if current_char == '{': 
                if char != "}": 
                    return False
            if current_char == '[': 
                if char != "]": 
                    return False

    # Check Empty Stack 
    if stack: 
        return False
    return True