Skip to content

8.2.1

Choose a tag to compare

@facelessuser facelessuser released this 11 Nov 14:02
· 4 commits to master since this release

8.2.1

  • FIX: Reject compiled replace templates from another search pattern in compiled search objects,
    matching module-level substitutions and preventing incorrect capture references.
  • FIX: bre: Fix a - after a POSIX class in a character set sometimes forming a range ([[:blank:]-z]).
  • FIX: bre: Fix an escaped - before a POSIX or Unicode class in a character set being turned into a
    range operator ([\-\p{N}]).
  • FIX: bre: Fix ^ being treated as a negation when it follows properties in a character set that match
    nothing, such as \p{Han} in a byte string ([\p{Han}^a]).
  • FIX: bre: Fix ranges in byte string character sets with a named character beyond the byte range
    ([a-\N{CJK UNIFIED IDEOGRAPH-4E00}]). They now match Regex: a range that ends beyond the byte range includes
    everything up to \xff, and a range that starts beyond it matches nothing, or is an error if it is reversed.
  • FIX: bre: Fix a literal ^ after the negating ^ in a character set ([^^]) causing an unterminated
    character set error.
  • FIX: bregex: Fix finding the end of character sets, which could cause false errors or wrongly handle what
    follows a set (such as \R, groups, or verbose comments). Character sets now follow Regex's own rules:
    • POSIX classes are recognized in byte strings, and with qualified names or values ([[:script=latin:]]).
    • In V1, a ] directly after a set operator is a literal ([\w--]]).
    • A literal ^ after the negating ^ ([^^]) no longer causes an unterminated character set error.
  • FIX: bregex: POSIX classes in character sets are no longer rewritten before being passed to Regex.