'Create a subexpression token.
`value`: The value of the token
`func`: If True, force the token to be of type FUNC'

@classmethod
def make_subexp(cls, value, func=False):

    assert (value[(-1)] in ('{', '}', '(', ')'))
    if func:
        assert re.match('.+\\(|\\)', value)
        type_ = Token.FUNC
    elif (value in '{}'):
        type_ = Token.ARRAY
    elif (value in '()'):
        type_ = Token.PAREN
    else:
        type_ = Token.FUNC
    subtype = (cls.CLOSE if (value in ')}') else cls.OPEN)
    return cls(value, type_, subtype)
