Saludos, puedes utilizar los metodos IndexOf y LastIndexOf para obtener los delimitantes del nombre que quieres extraer.
La siguiente función puede extraer la información que necesitas, sin embargo tienes que agregarle manejo de errores en el caso que el string que estes utilizando no cumpla con los requisitos que mencionaste (por ejemplo que este el string vacio).
Código csharp:
Ver originalprivate string extractName(string sValue)
{
string sName;
int iStart = sValue.LastIndexOf(':'); // Posición del caracter
int iEnd = sValue.IndexOf("has left the game"); // Posición del mensaje final
iStart += 2; // Sumamos dos posiciones
iEnd -= 1; // Quitamos una posición
sName = sValue.Substring(iStart, iEnd - iStart); // Extraemos el valor
return sName;
}