Will it always be that format:
Apple (red) (23)
Grape (green) (12)
And so on?
If so, you could use a CASE expression to count the number of opening brackets:
CASE WHEN LEN(Fields!Field.Value) - LEN(REPLACE(Fields!Field.Value, '(', '')) = 1 THEN Mid(Fields!Field.Value, 1, InStr(Fields!Field.Value, "(") - 1) ELSE ...... END where ...... represents your formula to strip out to get Apple (red)
For that, you could use reverse, chop down to the first occurrence of ")" then reverse back and chop 2 off the length of the string.
Without knowing your exact string options, I've at least given you a starter for ten. 🙂