<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_selection():
 """ Create a selection expression """

    operation = Forward()
    nested = Group(Suppress("(") + operation + Suppress(")")).setResultsName("nested")
    select_expr = Forward()
    functions = select_functions(select_expr)
    maybe_nested = functions | nested | Group(var_val)
    operation <<= maybe_nested + OneOrMore(oneOf("+ - * /") + maybe_nested)
    select_expr <<= operation | maybe_nested
    alias = Group(Suppress(upkey("as")) + var).setResultsName("alias")
    full_select = Group(
        Group(select_expr).setResultsName("selection") + Optional(alias)
    )
    return Group(
        Keyword("*") | upkey("count(*)") | delimitedList(full_select)
    ).setResultsName("attrs")