# error
obj.startswith("foo") or obj.startswith("bar")
# error
obj.endswith("foo") or obj.endswith("bar")
# error
obj.startswith(foo) or obj.startswith(bar)
# error
obj.startswith(foo) or obj.startswith("foo")
# error
obj.endswith(foo) or obj.startswith(foo) or obj.startswith("foo")

def func():
    msg = "hello world"

    x = "h"
    y = ("h", "e", "l", "l", "o")  
    z = "w"

    if msg.startswith(x) or msg.startswith(y) or msg.startswith(z): # Error
        print("yes") 

def func():
    msg = "hello world"

    if msg.startswith(("h", "e", "l", "l", "o")) or msg.startswith("h") or msg.startswith("w"): # Error
        print("yes") 

# ok
obj.startswith(("foo",  "bar"))
# ok
obj.endswith(("foo",  "bar"))
# ok
obj.startswith("foo") or obj.endswith("bar")
# ok
obj.startswith("foo") or abc.startswith("bar")

def func():
    msg = "hello world"

    x = "h"
    y = ("h", "e", "l", "l", "o")  

    if msg.startswith(x) or msg.startswith(y): # OK
        print("yes") 

def func():
    msg = "hello world"

    y = ("h", "e", "l", "l", "o")  

    if msg.startswith(y): # OK
        print("yes") 

def func():
    msg = "hello world"

    y = ("h", "e", "l", "l", "o")  

    if msg.startswith(y) or msg.startswith(y): # OK
        print("yes") 

def func():
    msg = "hello world"

    y = ("h", "e", "l", "l", "o")  
    x = ("w", "o", "r", "l", "d")

    if msg.startswith(y) or msg.startswith(x) or msg.startswith("h"): # OK
        print("yes") 

def func():
    msg = "hello world"

    y = ("h", "e", "l", "l", "o")  
    x = ("w", "o", "r", "l", "d")

    if msg.startswith(y) or msg.endswith(x) or msg.startswith("h"): # OK
        print("yes")


def func():
    "Regression test for https://github.com/astral-sh/ruff/issues/9663"
    if x.startswith("a") or x.startswith("b") or re.match(r"a\.b", x):
        print("yes")
