C # Expresiones regulares con caracteres \ Uxxxxxxxx en el patrón

Regex.IsMatch( "foo", "[\U00010000-\U0010FFFF]" ) 

Lanza: System.ArgumentException: analizando el rango "[-]" - [x-y] en orden inverso.

Mirando los valores hexadecimales para \ U00010000 y \ U0010FFF obtengo: 0xd800 0xdc00 para el primer carácter y 0xdbff 0xdfff para el segundo.

Así que supongo que realmente tengo un problema. ¿Por qué los caracteres Unicode formados con \ U se dividen en dos caracteres en la cadena?

Respuestas a la pregunta(3)

Su respuesta a la pregunta