I know it's complicated. For the new discogs script I'm also trying to get it from both sections. I don't think it will work completely without mistakes, but I'm getting pretty close.
I will take a few days until I upload the script. It has got pretty complicated and I have to do a few other things in that thing called "real life".
Anyway, for your action, try this:
Action 1: Format Value
Field: COMPOSER
Formatstring: $if($eql($regexp(%mixartist%,.(Composed By|Written-By|Written By).+,yes),yes),$replace($regexp($regexp(%mixartist%,'.(^|; )[^:](Composed By|Written-By|Written By)[^:]: (.+?(;|$)).*',$3),;$,),',',;),%composer%)
Action 2: Format Value
Field: COMPOSER TEMP
Formatstring: $if($eql($regexp(%credits%,.(Composed By|Written-By|Written By).+,yes),yes),$replace($regexp($regexp(%credits%,'.(^|; )[^:](Composed By|Written-By|Written By)[^:]: (.+?(;|$)).*',$3),;$,),',',;),)
Action 3: Format Value
Field: COMPOSER
Formatstring: %composer%$if($and(%composer%,%composer temp%),; ,)%composer temp%
Action 4: Remove Fields
Fields: COMPOSER TEMP
Note that I have used %credits% in the second action. Use the tag-field there where you have stored the album credits.