import re
string = """[1,12:12] call basic_while1() Error Code: 1046. No database selected
[1,12:12] call add() Asdfjgg Error Code: 1046. No database aa selected
[1,12:12] call add()
[1,12:12]
Error Code: 1046. No database selected
END: Error Code: 2134. database doen't exist"""
rx = re.compile(r"""
^
(?:\[(?P<d1>[\d,]+):(?P<d2>[\d,]+)\]\ ?)?
(?:(?P<code>(?:(?!Error\ Code).)*))?
(?P<error>Error\ Code:.+)?""", re.M | re.X)
for m in rx.finditer(string):
print(m.group('error')) # or any other group
aW1wb3J0IHJlCgpzdHJpbmcgPSAiIiJbMSwxMjoxMl0gY2FsbCBiYXNpY193aGlsZTEoKSBFcnJvciBDb2RlOiAxMDQ2LiBObyBkYXRhYmFzZSBzZWxlY3RlZApbMSwxMjoxMl0gY2FsbCBhZGQoKSBBc2RmamdnIEVycm9yIENvZGU6IDEwNDYuIE5vIGRhdGFiYXNlIGFhIHNlbGVjdGVkClsxLDEyOjEyXSBjYWxsIGFkZCgpClsxLDEyOjEyXQpFcnJvciBDb2RlOiAxMDQ2LiBObyBkYXRhYmFzZSBzZWxlY3RlZApFTkQ6IEVycm9yIENvZGU6IDIxMzQuIGRhdGFiYXNlIGRvZW4ndCBleGlzdCIiIgoKcnggPSByZS5jb21waWxlKHIiIiIKXgooPzpcWyg/UDxkMT5bXGQsXSspOig/UDxkMj5bXGQsXSspXF1cID8pPwooPzooP1A8Y29kZT4oPzooPyFFcnJvclwgQ29kZSkuKSopKT8KKD9QPGVycm9yPkVycm9yXCBDb2RlOi4rKT8iIiIsIHJlLk0gfCByZS5YKQoKZm9yIG0gaW4gcnguZmluZGl0ZXIoc3RyaW5nKToKICAgIHByaW50KG0uZ3JvdXAoJ2Vycm9yJykpICMgb3IgYW55IG90aGVyIGdyb3Vw