Created attachment 32049 [details] proper.diff Implement and test the PROPER function. I checked some Unicode letters too, but I don't know if it behaves exactly as Excel in all Unicode (corner)cases.
Unfortunately this does not apply cleanly, Character.isAlphabetic() was added in Java 7, however we still want to be compatible with Java 6 as well, can you redo the patch with this implemented slightly different so it still works with Java 6 as well?
Created attachment 32109 [details] proper_java6_comp.diff Replaced Character class usage with a regular expression.
(Hopefully) Java 6 compatible version is there.
Applied as r1633215, I had to adjust the regular expression as "\P{IsAlphabetic}" is not available in Java 6, I used \P{IsL}, according to the unit test this has the same effect.