* Fix incorrect parsing of bfrange (#631)
Previously, the regular expression for single-offset bfrange mapping
unintentionally matched portions of the bracketed array form. This
caused extremely large code range, leading to out of memory.
Now, we capture the `<from>` and `<to>` ranges first and then
distinguish between single-offset (`<xxxx>`) and array (`[<xxxx> <xxxx> ...]`)
forms. This ensures that the single-offset regex won't
accidentally match bracketed segments.
* Apply suggestions from code review
* Add check if the regexp patterns match
---------
Co-authored-by: Konrad Abicht <hi@inspirito.de>