Hi Jason,
to extract the id of the function you could select
indexkeyarray_out(indexkeys) as allparts from sysindices
Then you will get something like "-3 [1], <526>(5) [1], 4 [1]".
The "<526>" is the ID of the function (procid in sysprocedures).
The "[1]" seems to be the operator class (opclassid in sysopclasses)
which you only have to specify in your create statement when its not the default value
(e.g. btree_ops for default access method btree).
The "-3", "5" and "4" are the column numbers (colno in syscolumns),
when less than zero then in DESC order.
So this Index would be something like "(colno3 DESC, ud_function(colno5), colno4)".
If you have one or more user defined functions in your index,
all 16 parts in sysindexes are 0.
I just checked out these things by trying. So no guarantee.
When somebody has exact information, please let me know.