def genus_species_subprefix_subspecies(tokens):
    """
    Input:  Brassica oleracea var. capitata
    Output: <taxon genus="Brassica" species="oleracea" sub-prefix="var"
            sub-species="capitata"><sp>Brassica</sp> <sp>oleracea</sp> var
                <sp>capitata</sp></taxon>
    """
    (genus, species, subprefix, subspecies) = (tokens[0], tokens[1], tokens[2], tokens[3])
    return f'''<taxon genus="{genus}" species="{species}" sub-prefix="{subprefix}" sub-species="{subspecies}"><sp>{genus}</sp> <sp>{species}</sp> {subprefix} <sp>{subspecies}</sp></taxon>'''