import re
regex = re.compile(r"\b[a-z]?[A-Z]+\w*(?: [a-z]?[A-Z]+\w*)+", flags=re.MULTILINE)
test_str = ("Moby Dick or the White Whale by Herman Melville\n"
"Winne The Pooh by A. A. Milne\n"
"Kim by Rudyard Kipling\n"
"The United States of America\n"
"The United States Of America\n"
"WWF PandaLogo\n"
"US Navy\n"
"iPhone\n")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html