¿Está buscando un título que "comience por" en Python?

Entonces tengo una lista de nombres

name_list = ["John Smith", "John Wrinkle", "John Wayne", "David John", "David Wrinkle", "David Wayne"]

Quiero poder buscar, por ejemplo,John y

John Smith
John Wrinkle
John Wayne

mostrará. Por el momento se mostrará mi código

John Smith
John Wrinkle
John Wayne
David John

¿Qué estoy haciendo mal?

Aqui esta mi codigo

search = input(str("Search: "))
search = search.lower()
matches = [name for name in name_list if search in name]
for i in matches:
    if(search == ""):
        print("Empty search field")
        break
    else:
        i = i.title()
        print(i)

Respuestas a la pregunta(1)

Su respuesta a la pregunta