import re
s = '''M1 hello world 1234_5678 ip som lorem 9321_1231 iste natus error sit voluptatem 4313_4351 ratione voluptatem sequi nesciunt 4312_1234
M2 magnam aliquam 4351_3143 sed quia non numquam 3123_1432'''
for x in re .finditer ( r'^(M[12])?((?:\s +\D +\d {4}_\d {4})+)' , s, flags= re .M ) :
f = re .findall ( r'\s +(\D +)(\d {4})_(\d {4})' , x.group ( 2 ) )
print ( "\n " .join ( [ "{}\t {}\t {}\t {}" .format ( x.group ( 1 ) , c[ 0 ] , c[ 1 ] , c[ 2 ] ) for c in f] ) )
aW1wb3J0IHJlCgpzID0gJycnTTEgIGhlbGxvIHdvcmxkIDEyMzRfNTY3OCAgaXAgc29tIGxvcmVtICA5MzIxXzEyMzEgIGlzdGUgbmF0dXMgZXJyb3Igc2l0IHZvbHVwdGF0ZW0gICA0MzEzXzQzNTEgIHJhdGlvbmUgdm9sdXB0YXRlbSBzZXF1aSBuZXNjaXVudCAgIDQzMTJfMTIzNApNMiBtYWduYW0gYWxpcXVhbSA0MzUxXzMxNDMgIHNlZCBxdWlhIG5vbiBudW1xdWFtICAzMTIzXzE0MzInJycKCmZvciB4IGluIHJlLmZpbmRpdGVyKHInXihNWzEyXSk/KCg/OlxzK1xEK1xkezR9X1xkezR9KSspJywgcywgZmxhZ3M9cmUuTSk6CglmID0gcmUuZmluZGFsbChyJ1xzKyhcRCspKFxkezR9KV8oXGR7NH0pJywgeC5ncm91cCgyKSkKCXByaW50KCJcbiIuam9pbihbInt9XHR7fVx0e31cdHt9Ii5mb3JtYXQoeC5ncm91cCgxKSwgY1swXSwgY1sxXSwgY1syXSkgZm9yIGMgaW4gZl0pKQoK