Right.
With build 156 you can do this easily enough. We could take the output of marko's expression:
listitem([track credits],1, / vocals - )
and pass that to a regular expression to remove the remainder (I'm going to use the newer build's syntax, and will translate to 156 at the end):
regex(listitem([track credits],1, / vocals - ), /#^([^;]+)#/,1)
But can we use regular expressions to do to it all? When a list is treated as a string, MC presents a semicolon separated string, such as:
base - sarah; drum - sally; guitar - sam; vocals - sue; vocoder - slim
So we simply search for "vocals - " followed by everything that is not a semicolon.
regex([track credits], /#vocals - ([^;]+)#/,1)
Now I believe this would be:
RegexSearch([track credits], /#vocals - ([^;]+)#/, 0)
in the .156 build. I'll double check and correct if I'm wrong about the syntax.
In anycase, you can just take that output, and append whatever else you want, such as your [Artist].
[Artist], RegexSearch([track credits], /#vocals - ([^;]+)#/, 0)
[edit: I corrected the last argument from 1 to 0, as in RegexSearch the capture number was zero-based, not one-based.]