Does pattern matching verify object lifetime and null references

With C# 9.0 and newer, various pattern match forms were added. Here’s an example:

Rigidbody? Rb = //...

//Style #1
if ( Rb is null ) { //<-- pattern match

}
//Style #2
if ( Rb is not null ) {

}
//Style #3
if ( Rb is { } RbVal ) {

}

My question then is, do the pattern match checks also check object lifetime and null references properly? Much like how we can’t use null propagation and instead must use the ’ == null ’ check, I’m wondering if the same goes for pattern matches.

The documentation is quite explicit

The compiler guarantees that no user-overloaded equality operator == is invoked when expression x is null is evaluated.

Since the comparison between null and a Unity object involves some custom code, I am pretty sure you can’t use this syntax to check if the object is (fake) null, and you’ll have to stick with the good old if(Rb) or if(Rb == null) syntax.