import  re 
 
pattern =  r"(\( \( PERS\) \s *)((?:(?![()]|\s y\b ).)* y\b [^()]*?)\s *\) " 
s =  ( "((PERS) Marcos Sy y) ((PERS) Lucy) estuvieron ((VERB) jugando) sdds\n " 
            "ashsahghgsa ((PERS) María y Rosa ds) son alumnas de esa escuela y juegan juntas\n " 
            "ashsahghgsa ((PERS) María y Rosa ds y Test Person 1 y test person 2) son alumnas de esa escuela y juegan juntas" ) 
 
 
def  custom_replacement( m) :
    return  m.group ( 1 )  + " y ((PERS) " .join ( [ p + ")"  for  p in  re .split ( r"\s +y\b \s *" ,  m.group ( 2 ) )  if  p] ) 
 
 
replaced_names =  re .sub ( pattern,  custom_replacement,  s) 
replaced_pers =  re .sub ( r"(\( \( PERS\) [^()]*\) )\s *(?=\( \( PERS\) [^()]*\) )" ,  r"\1  y " ,  replaced_names) 
print ( replaced_pers) 
 
				aW1wb3J0IHJlCgpwYXR0ZXJuID0gciIoXChcKFBFUlNcKVxzKikoKD86KD8hWygpXXxcc3lcYikuKSogeVxiW14oKV0qPylccypcKSIKcyA9ICgiKChQRVJTKSBNYXJjb3MgU3kgeSkgKChQRVJTKSBMdWN5KSBlc3R1dmllcm9uICgoVkVSQikganVnYW5kbykgc2Rkc1xuIgogICAgICAgICAgICAiYXNoc2FoZ2hnc2EgKChQRVJTKSBNYXLDrWEgeSBSb3NhIGRzKSBzb24gYWx1bW5hcyBkZSBlc2EgZXNjdWVsYSB5IGp1ZWdhbiBqdW50YXNcbiIKICAgICAgICAgICAgImFzaHNhaGdoZ3NhICgoUEVSUykgTWFyw61hIHkgUm9zYSBkcyB5IFRlc3QgUGVyc29uIDEgeSB0ZXN0IHBlcnNvbiAyKSBzb24gYWx1bW5hcyBkZSBlc2EgZXNjdWVsYSB5IGp1ZWdhbiBqdW50YXMiKQoKCmRlZiBjdXN0b21fcmVwbGFjZW1lbnQobSk6CiAgICByZXR1cm4gbS5ncm91cCgxKSArICIgeSAoKFBFUlMpICIuam9pbihbcCArICIpIiBmb3IgcCBpbiByZS5zcGxpdChyIlxzK3lcYlxzKiIsIG0uZ3JvdXAoMikpIGlmIHBdKQoKCnJlcGxhY2VkX25hbWVzID0gcmUuc3ViKHBhdHRlcm4sIGN1c3RvbV9yZXBsYWNlbWVudCwgcykKcmVwbGFjZWRfcGVycyA9IHJlLnN1YihyIihcKFwoUEVSU1wpW14oKV0qXCkpXHMqKD89XChcKFBFUlNcKVteKCldKlwpKSIsIHIiXDEgeSAiLCByZXBsYWNlZF9uYW1lcykKcHJpbnQocmVwbGFjZWRfcGVycyk=