[ library(regex) | The ECLiPSe Libraries | Reference Manual | Alphabetic Index ]

# compile_pattern(+Pattern, +Options, -CompiledPattern)

Precompile a pattern for repeated use

Pattern
  A string
Options
  List of atoms
CompiledPattern
  Output: a compiled pattern handle

## Description

All matching predicates in this library accept either a regular expression in string form, or a precompiled regular expression. The matching predicates will execute faster if invoked with a precompiled pattern instead of the string. Whenever a pattern needs to be matched more than once, it will typically be more efficient to work with a precompiled pattern.

Options is a (possibly empty) list of atomic option names, as described in the library(regex) page. The options give here should be the same as the ones given to the matching-predicates later.

The space consumed by the compiled pattern will be automatically reclaimed on failure, or on garbage collection when no longer needed.

### Modes and Determinism

- compile_pattern(+, +, -) is det

### Fail Conditions

None

## Examples

        ?- compile_pattern("ab+a", [], C),
           match(C, "bbabbbaab", [], M1),
           match(C, "abacus", [], M2).

        C = 'HANDLE'(16'00025c60)
        M1 = "abbba"
        M2 = "aba"
        Yes

## See Also

library(regex), match / 2, match / 3, match / 4, matchsub / 4, matchall / 4