Just thought I'd share this one...Got it from Cadalyst. Don't use it very often, but when I do, I'm VERY thankful that I have it.
Enjoy
;Tip1359.LSP: CASE.LSP Change Case (c)1997, V. Levin
(defun C:CASE ( / ss ncase i n e txt txt1 l l1 nw)
(setvar "cmdecho" 0)
(graphscr)
(prompt "\n Select text: ")
(setq ss (ssget '((0 . "TEXT"))))
(print)
(if (not ss) (prompt "\n No text found."))
(while ss
(prompt "\n Change case of all letters to... ")
(initget "Upper Lower Opposite Sentence Title None")
(setq ncase (getkword "\n ...Upper/Lower/Opposite/Sentence/Title/<None> :")
i 0 tst 0
)
(if (= ncase "None") (setq ncase nil ss nil))
(if ncase
(repeat (sslength ss)
(setq e (entget (ssname ss i)) i (1+ i)
txt (cdr (assoc 1 e))
txt1 (cond
((= ncase "Upper") (strcase txt))
((= ncase "Lower") (strcase txt 1))
((= ncase "Sentence")
(strcat (strcase (substr txt 1 1))
(strcase (substr txt 2) 1)
)
)
(T
(setq txt1 "" nw nil n 1)
(repeat (strlen txt)
(setq l (substr txt n 1)
l1 (strcase l
(if (= ncase "Title")
(if (and (> n 1) (not nw)) 1)
(if (< 64 (ascii l) 91) 1)
)
)
)
(setq txt1 (strcat txt1 l1) n (1+ n)
nw (if (and (= ncase "Title") (= l " ")) 1)
)
)
(eval txt1)
)
)
)
(entmod (subst (cons 1 txt1) (assoc 1 e) e))
)
(setq ss nil)
)
(print)
)
(princ)
)
(prompt "\n CASE - changes case of letters in selected lines of text.")
(princ)