- compile_pattern(+Pattern, +Options, -CompiledPattern)
- Precompile a pattern for repeated use
- match(+Pattern, +String)
- A substring of String matches the regular expression Pattern
- match(+Pattern, +String, +Options)
- A substring of String matches the regular expression Pattern
- match(+Pattern, +String, +Options, -Match)
- Match is the first substring of String that matches the regular expression Pattern
- matchall(+Pattern, +String, +Options, -AllMatches)
- AllMatches is a list of substrings of String which match the regular expression Pattern
- matchsub(+Pattern, +String, +Options, -SubMatches)
- A substring of String matches the regular expression Pattern and SubMatches are matching sub-expressions
- split(+Pattern, +String, +Options, -Parts)
- Parts is a list of substrings, partitioning String according to Pattern
	?- ideal_match("(/[^/]*)+", "/usr/local/eclipse", L).
	L = ["/usr", "/local", "/eclipse"]
	Yes
    
    i.e. capture every instance of a matching subexpression.  There seems
    to be no way to do that with a POSIX regexp implementation.