UPPERCASE to lowercase with no overwriting?

Hey, I've just started learning shell script today.

How would I write a bash script file that changes file names from uppercase to lowercase in that directory, the program should warn the user and NOT overwrite the existing file if it's already in lowercase?

for example in a directory i have files called: hello1.txt HELLO2.txt
and after executing script it would print outsomething like : Not overwriting hello1.txt, and the file names become

hello1.txt hello2.txt

any help would be great

ls -1 | grep "^[A-Z]*\." | 
while read file; do
   newfile=`echo $file | tr '[A-Z]' '[a-z]'`
   if test -e "$newfile"; then
      echo >&2 $newfile exists, not overwriting
   else
      mv -- "$file" "$newfile"
   fi
done

I use grep here because I assume ALL the characters (before the period) must be capitals.