;; PCRE regex for parsing pretty type strings
(define impc:ir:regex-tc-or-a (string-append "((\\[|\\<)(?<struct>[^<>\\[\\]]|(\\[|\\<)\\g<struct>*(\\]|\\>)\\**)*(\\]|\\>)\\**)"
"|([0-9A-Za-z_]*{(?<tvar>[^{}]|{\\g<tvar>*}\\**)*}\\**)"
"|(\\|[0-9](?<array>[^\\|]|\\|[0-9]\\g<array>*\\|\\**)*\\|\\**)"
"|(/[0-9](?<vector>[^/]|/[0-9]\\g<vector>*/\\**)*/\\**)"
;; "|(?:([:%#!0-9a-zA-Z_-]({.*?}\\**\)?\\**)+)"))
"|(?:([:%#!0-9a-zA-Z_-]\\**)+)"))