Significant changes to the "ore" package are laid out below for each release.

===============================================================================

VERSION 1.2.0

- Oniguruma's support for alternative regular expression syntaxes is now
  exposed by the ore() function. At present only "fixed" (i.e., literal)
  patterns are supported in addition to the default, which has always been
  "ruby".
- The ore.lastmatch() function gains a "simplify" argument.
- Underscore-separated function names are now available as aliases to their
  period-separated equivalents. For example, you can use ore_search() instead
  of ore.search(), if you prefer.
- The use of variables holding patterns could sometimes cause errors in ore().
  This has been corrected.

===============================================================================

VERSION 1.1.0

- The package now provides functionality for creating and working with a
  pattern dictionary, and a few predefined patterns are included. This allows
  common regular expressions to be easily named, stored, and integrated into
  larger expressions later. The key new function is ore.dict().
- The new es() function provides expression substitution, a convenient way to
  embed R expressions within strings, and a good example of the package's
  substitution functions in action.
- Printing of "orematch" objects is now much clearer, particularly for long or
  multiline search texts.
- Group matches are now passed to substitution functions, in an attribute.
- The "ore.colour" (or "ore.color") option can now be used to determine whether
  to print in colour, rather than using the crayon package (although the latter
  is still the default).

===============================================================================

VERSION 1.0.7

- Printing "orematch" objects no longer leads to errors. This was due to a
  mismatch in function names between the C code and the calling R code.

===============================================================================

VERSION 1.0.6

- All of the core functions have now switched to primarily C implementations,
  providing substantial performance gains. Minor changes in the handling of
  text encodings have occurred alongside this.
- The limit of 128 matches per string has been removed, due to more
  sophisticated memory management.
- The arguments to ore.subst() have been reordered slightly, to avoid
  inadvertent partial matching when using a substitution function.

===============================================================================

VERSION 1.0.5

- Calculation of match offsets within the C code have been made much more
  efficient.

===============================================================================

VERSION 1.0.4

- Default methods have been added for matches() and groups(), which return NA.
- The "rex" test is now skipped if that package is not available.
- Various low-level warnings/errors from UBSAN have been addressed.

===============================================================================

VERSION 1.0.3

- Almost all of the work of ore.search() is now done in C code rather than R,
  for performance. In testing, ore is now appreciably faster than base R for
  simple searches, when the regex is precompiled. Optimisation of other
  functions will follow in later releases.
- The package no longer requires any specified minimum version of R (although
  it has not been tested on old releases).

===============================================================================

VERSION 1.0.2

- A bug in the ore.subst() function that could produce low-level errors or
  segmentation faults has been fixed.

===============================================================================

VERSION 1.0.1

- Tests should no longer fail in locales which do not use a UTF-8 encoding.
- Documentation tweaks.

===============================================================================

VERSION 1.0.0

- First public release.

===============================================================================
