public static Substring ofExpressions(
            ToExpression expression,
            ToExpression startIndex,
            ToExpression stopIndex,
            ToExpression reverse
    ) {
        return DEFINITION.createFunction(FunctionNode.ofExpressions(ID, expression, startIndex, stopIndex, reverse));
    }
Creates a {@link Substring} function from the given expressions.

@param expression the string to extract from.
@param startIndex the starting index.
@param stopIndex  the ending index.
@param reverse    the reverse order argument.
@return The resulting {@link Substring} function.
smithy-rules-engine/src/main/java/software/amazon/smithy/rulesengine/language/syntax/expressions/functions/Substring.java