Whoopsies, I got confused between the different template modes -- function mode doesn't require quote, template program mode (TPM) and general program mode (GPM) do.
That should've been:
Code:
{series:'test($, strcat("_", field('series'), " - ",sublist(field('authors'),'0','1','&')), sublist(field('authors'),'0','1','&'))'}/{series_index:0>4s| | - }{title} - {authors:sublist(0,1,&)}
And in GPM:
Code:
program:
short_authors = sublist(field('authors'), '0', '1', '&');
sindex = finish_formatting(field('series'), '0>4s', '', ' - ');
strcat(
test(
field('series'),
strcat("_", field('series'), " - ", short_authors),
short_authors
),
'/', sindex, field('title'), ' - ', short_authors)