Regex for mobile number validation
I guess it depends a bit on what kind of input text you have but if you wanna do exact match per line

^(\+27|0)\d{9}$


would work well. If you wanna be liberal what comes before and after then

.*(\+27|0)\d{9}.*


I agree with st88 that negative lookahead makes it confusing. Better to provide your expectation before and after the main pattern (like above)