My knowledge is limited in this area, and the documentation covers this specific dynamic only minimally, but for certain attempting to perform an un-anchored regexp match using a btree index is impossible.
These leaves to avenues to explore.
1) See if a start-of-string anchor will make the btree index usable
- CREATE INDEX CONCURRENTLY ix_inodes_checksum_st_size ON gorfs.inodes USING btree ("checksum_md5","st_size");
This one was used.
IMO you are leaving too much infomation encoded in the full_path. I'd personally setup triggers to parse out the components on insert/update into fields and then index those fields. In fact I'd probably use some form of inheritance or other one-to-one relationship here.