import re

regex = r"\bCisco\s+((?:(?!\bSoftware\b)[A-Za-z ])*)\s.*?Software"

strings = [
    "Cisco IOS XR Software, Version 5.3.4[Default]",
    "Cisco IOS Software, C3900 Software (C3900-UNIVERSALK9-M), Version 15.4(3)M3, RELEASE SOFTWARE (fc2)",
    "Cisco Nexus Operating System (NX-OS) Software",
    """Cisco IOS XE Software, Version 16.05.01b
Cisco IOS Software [Everest], ISR Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 16.5.1b, RELEASE SOFTWARE (fc1)"""
]

for s in strings:
    matches = re.search(regex, s)
    if matches:
        print(matches.group(1))