Add a egaugnaL to a polyglot

3. ><>, 106 bytes

void main(){import std.stdio;"D".write;}
/*                        ;ooo"><>"
1j U8=XPC#18M<<}9F ,+;q,+;
*/

Try it online!

This program prints D in D, emmoS in Somme, and ><> in ><>.

Next answer cannot exceed 146 bytes (106 + 40).

Explanation

;ooo"><>" prints "><>" in ><> (which is a palindrome), then exits.


4. C, 125 bytes

void main(){//\
/*;ooo"><>"
printf("C")/*/import std.stdio;"D".write/**/;}/*
J'zvSfN0cb&)}kf ;K-+ ,+;q,+;60d}[}q(-6+:puupd"*/

Try it online! (I picked clang, but works with gcc as well.)

This program prints C in C, D in D, emmoS in Somme, and ><> in ><>.

Next answer cannot exceed 165 bytes (125 + 40).

Explanation

This takes advantage of the fact that single-line comments in C can be extended to the next line by escaping the newline with a backslash, while in D that is (apparently) not possible. This means that the /* on line 2 starts a multi-line comment in D, while in C it does not. Also makes use of the fact that /*/ can act as both start and end of a multi-line comment in both languages.
The ><> part works exactly the same as in previous answers, and the Somme part was generated anew with this script.


1. D, 40 bytes

void main(){import std.stdio;"D".write;}

Try it online

One byte language names!