Expressões regulares em C # com caracteres \ Uxxxxxxxx no padrão

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

Lança: System.ArgumentException: analisando o intervalo [[]] - [x-y] na ordem inversa.

Observando os valores hexadecimais de \ U00010000 e \ U0010FFF, obtenho: 0xd800 0xdc00 para o primeiro caractere e 0xdbff 0xdfff para o segundo.

Então eu acho que realmente tenho um problema. Por que os caracteres Unicode formados com \ U são divididos em dois caracteres na string?

questionAnswers(3)

yourAnswerToTheQuestion