Your code lower-cases the whole string if a singe uppercase character is found. Is that what you want? What should happen to strings with mixed case?
Also you ignore all non-ASCII upper case letters.
Perl 6 - links to (nearly) everything that is Perl 6.