<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_expression(expression, parent_data):
 """ Parse an expression in a model formula. Parameters expression: str Formula expression: either a single variable or a variable group paired with an operation (exponentiation or differentiation). parent_data: pandas DataFrame The source data for the model expansion. Returns ------- variables: list A list of variables in the provided formula expression. data: pandas DataFrame A tabulation of all terms in the provided formula expression. """

    variables = None
    data = None
    variables, data = _check_and_expand_subformula(expression,
                                                   parent_data,
                                                   variables,
                                                   data)
    variables, data = _check_and_expand_exponential(expression,
                                                    variables,
                                                    data)
    variables, data = _check_and_expand_derivative(expression,
                                                   variables,
                                                   data)
    if variables is None:
        expr = expression.strip()
        variables = [expr]
        data = parent_data[expr]
    return variables, data