You cannot use VBScript expressions if you are publishing to ArcGIS Server. I ran into this problem, and the key to understanding it is found in the first sentence of the third paragraph of the "Building label expressions" help topic:
"Field values are automatically cast to text strings."
Nonetheless, Python expressions are awkward for parsing strings because you can't use square brackets . For example, in the following expression:
[DATEFIELD].split(" ")[0]
the parser will look for a field called "0" and fail. Instead, you can use the following:
[DATEFIELD].split(" ").pop(0)
If a field is nullable, then you need to be prepared to handle a null value:
def FindLabel ([DATEFIELD]):
s = [DATEFIELD]
if s is None:
return None
return s.split(" ").pop(0)
Of course, label performance is adversely affected by using a function, which in turn affects the return time on an ArcGIS Server map service.
[BTW, if you look at the examples, the most appropriate ones for parsing strings are in JScript, and that is probably the better route to take.]