I have a function which fixes capitalization for those naughty users that insist on making everything UPPERCASE!
I want my function to only be called when a string c
if (preg_match('/\b\p{L}*\p{Lu}{3}\p{L}*\b/u', $str)) {
// Naughty user!
}
will match any word that contains at least three uppercase letters. It doesn't matter whether the word starts with an uppercase or lowercase letter, so it would match, for example iTUNES
or StackOVERflow
as complete words.
If you want to restrict yourself to words that consist entirely of uppercase characters, three or more, then use
if (preg_match('/\b\p{Lu}{3,}\b/u', $str)) {
// Naughty user!
}