in reply to formatting my html output

Could you post some sample data together with the code that you've tried? What you need to do should in principle also work with Unicode/UTF-8.

For example, you can use \p{Lu} to match a character with the unicode property "Letter, uppercase" (for a detailed list see perlunicode, in particular section "Effects of Character Semantics").  Uppercasing and lowercasing should work as well...

Update: to avoid unnecessary confusion, it's maybe worth mentioning that for a number of \p{...} expressions, there's the alternative [[:...:]] form. E.g. [[:upper:]] is the same as \p{IsUpper}. The \p{...} style is the more generic form, i.e. not all \p{...} expressions do have a [[:...:]] form. — BTW, the "Is"-prefix is optional, and you can use short or long forms. For example \p{IsLu} is equivalent to \p{Lu} or \p{UpercaseLetter} or \p{IsUpercaseLetter}.