default String resolveField(FacesContext context, ValueExpression expression) {
        String exprStr = expression.getExpressionString();

        if (isDynamic()) {
            ELContext elContext = context.getELContext();

            Matcher matcher = DYNAMIC_FIELD_VE_LEGACY_PATTERN.matcher(exprStr);
            if (matcher.find()) {
                exprStr = matcher.group(1);
                expression = context.getApplication().getExpressionFactory()
                        .createValueExpression(elContext, "#{" + exprStr  + "}", String.class);
                return expression.getValue(elContext);
            }
        }
        else {
            Matcher matcher = STATIC_FIELD_VE_LEGACY_PATTERN.matcher(exprStr);
            if (matcher.find()) {
                return matcher.group(1);
            }
        }

        return null;
    }
Used to extract UIColumn#field if not defined. Supports strictly two kind of expressions:

#{car.name}: name (for static columns)
#{car[column.property]}: name (for dynamic columns)

@param context the {@link FacesContext}
@param expression the {@link ValueExpression} like "filterBy" or "sortBy"
@return the "field" name if found, otherwise null
primefaces/src/main/java/org/primefaces/component/api/UIColumn.java