Check Parentheses Balance

Create a Python function to check if parentheses within a string are balanced.

In programming, evaluating the balance of parentheses is often necessary for interpreting expressions or validating code blocks. Your task is to create a function that verifies whether every '(' has its corresponding ')' in a string, returning `True` if each parenthesis is matched with another in the correct order and `False` otherwise. A key factor to consider is that pure counting of parentheses wouldn't be sufficient in this problem. For instances like ')(', although the number of '(' and ')' are equal, they aren't balanced since the closing parenthesis appears before the opening one. Be aware that the strings may contain other characters other than parentheses. ### Parameters - `expression` (str): A string that may include parentheses and other characters. ### Return Value - boolean: Returns `True` if all pairs of parentheses within the string are balanced and in the correct order, and `False` otherwise. ### Examples ```python # the parentheses are matched correctly and in order solution("()") # returns True # a closing parenthesis appears before an opening parenthesis solution(")(()))") # returns False # there's an unpaired opening parenthesis solution("(") # returns False # the parentheses are correctly matched and in order, even in a very lengthy string solution("(())((()())())") # returns True # an unmatched closing parenthesis exists within the string solution("hi())(") # returns False # any characters other than parentheses do not interfere with the balance evaluation solution("hi(hi)()") # returns True ```