import re


class AnyStr(str):
    __slots__ = ("prefix",)

    def __init__(self, prefix: str | re.Pattern[str] = "") -> None:
        super().__init__()
        self.prefix = prefix

    def __eq__(self, other: object) -> bool:
        return isinstance(other, str) and (
            other.startswith(self.prefix)
            if isinstance(self.prefix, str)
            else self.prefix.match(other) is not None
        )

    def __hash__(self) -> int:
        return hash((str(self), self.prefix))
