from typing import Tuple
import re


def split_line(s: str, *, pattern: str) -> Tuple[str, str]:
    """
    Splits a line into two parts and tests the first part against pattern.

    Splits a line on the first white space.
    If the first word matches the specified pattern, then it returns
    a tuple containing the first word and the remainder of the string,

    If there is no match, the tuple contains an empty string and the
    original string.
    """
    # Split into first word and remaining text
    parts = s.split(None, 1)
    if len(parts) == 0:
        return "", s
    match = re.match(pattern, parts[0])
    if match is None:
        # no match, return original string as remainder
        return "", s
    if len(parts) > 1:
        # string contains a match and a remainder
        return parts[0], parts[1]
    # string contains match only
    return parts[0], ""