They're hard to find, but just searching for indices that use the keywords upper and lower, I'm able to find a few. One using upper is located at ./ticket-tracker/sql/postgresql/category-create.sql:94. I also found one at ./bookmarks/sql/postgresql/bookmarks-create.sql:96, and I found a comment in the code that indicated that functional indices don't work on functions with more than one argument. However, I don't think that is a true statement. IIRC, the only limitation is that you can't have a constant arguement. In the case where you need a constant arg, then you need to create a wrapper function for indexing. An example where this might be useful would be when creating a functional index using substr.