def segments_difference(segment, subtracted):
    """Return the difference between segment (start, end) and subtracted.

    The result is a list containing either zero, one, or two segments of the
    form (start, end).

    Examples
    --------

    >>> segment=(10, 100), subtracted=(0, 85) => [(85, 100)]
    >>> segment=(10, 100), subtracted=(40, 125) => [(10, 40)]
    >>> segment=(10, 100), subtracted=(30, 55) => [(10, 30), (55, 100)]
    >>> segment=(10, 100), subtracted=(0, 150) => []
    """
    seg_start, seg_end = segment
    sub_start, sub_end = subtracted
    result = []
    if sub_start > seg_start:
        result.append((seg_start, min(sub_start, seg_end)))
    if sub_end < seg_end:
        result.append((max(seg_start, sub_end), seg_end))
    return sorted(list(set(result)))