From c7af5df3824d2494c01133bf9d999afa773a05b1 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Thu, 30 May 2019 19:20:41 +0200
Subject: [PATCH] git subrepo pull packages/PEGTL

subrepo:
  subdir:   "packages/PEGTL"
  merged:   "293ef9f54"
upstream:
  origin:   "git@github.com:taocpp/PEGTL.git"
  branch:   "master"
  commit:   "293ef9f54"
git-subrepo:
  version:  "0.4.0"
  origin:   "git@github.com:ingydotnet/git-subrepo.git"
  commit:   "5d6aba9"
---
 packages/PEGTL/.conan/build.py                |   8 +-
 packages/PEGTL/.gitignore                     |   1 +
 packages/PEGTL/.gitrepo                       |   4 +-
 packages/PEGTL/.travis.yml                    |  20 +-
 packages/PEGTL/CMakeLists.txt                 |  15 +-
 packages/PEGTL/README.md                      |  43 +-
 packages/PEGTL/doc/Changelog.md               |   8 +
 packages/PEGTL/doc/Contrib-and-Examples.md    |   6 +-
 packages/PEGTL/doc/Installing-and-Using.md    |   2 +
 packages/PEGTL/doc/Parse-Tree.png             | Bin 59564 -> 0 bytes
 packages/PEGTL/doc/Parse-Tree.svg             | 157 +++++++
 packages/PEGTL/doc/README.md                  |   1 -
 packages/PEGTL/doc/Rule-Reference.md          |   5 -
 packages/PEGTL/doc/Thank-You.md               |  41 --
 packages/PEGTL/include/tao/pegtl.hpp          |   5 +-
 .../include/tao/pegtl/contrib/integer.hpp     | 436 ++++++++++++++++--
 .../PEGTL/include/tao/pegtl/contrib/json.hpp  |   6 +-
 .../tao/pegtl/contrib/json_pointer.hpp        |  33 ++
 .../PEGTL/include/tao/pegtl/contrib/uri.hpp   |   9 +-
 .../PEGTL/src/test/pegtl/ascii_forty_two.cpp  |   6 +-
 .../PEGTL/src/test/pegtl/contrib_integer.cpp  | 154 ++++++-
 .../PEGTL/src/test/pegtl/rule_rematch.cpp     |  20 +-
 .../PEGTL/src/test/pegtl/utf16_general.cpp    | 160 +++----
 packages/PEGTL/src/test/pegtl/verify_rule.hpp |   6 +-
 24 files changed, 914 insertions(+), 232 deletions(-)
 delete mode 100644 packages/PEGTL/doc/Parse-Tree.png
 create mode 100644 packages/PEGTL/doc/Parse-Tree.svg
 delete mode 100644 packages/PEGTL/doc/Thank-You.md
 create mode 100644 packages/PEGTL/include/tao/pegtl/contrib/json_pointer.hpp

diff --git a/packages/PEGTL/.conan/build.py b/packages/PEGTL/.conan/build.py
index 838e79755..d558f1f9c 100644
--- a/packages/PEGTL/.conan/build.py
+++ b/packages/PEGTL/.conan/build.py
@@ -52,17 +52,17 @@ class BuilderSettings(object):
 
     @property
     def reference(self):
-        """ Read project version from CMake file to create Conan referece
+        """ Read project version from version.hpp file to create Conan referece
         """
-        pattern = re.compile(r"project\(pegtl VERSION (\d+\.\d+\.\d+) LANGUAGES CXX\)")
+        pattern = re.compile(r"#define TAO_PEGTL_VERSION \"(\d+\.\d+\.\d+)\"")
         version = None
-        with open('CMakeLists.txt') as file:
+        with open('include/tao/pegtl/version.hpp') as file:
             for line in file:
                 result = pattern.match(line)
                 if result:
                     version = result.group(1)
         if not version:
-            raise Exception("Could not find version in CMakeLists.txt")
+            raise Exception("Could not find version in version.hpp")
         return os.getenv("CONAN_REFERENCE", "pegtl/{}@taocpp/stable".format(version))
 
 if __name__ == "__main__":
diff --git a/packages/PEGTL/.gitignore b/packages/PEGTL/.gitignore
index 454bccb45..90173b58d 100644
--- a/packages/PEGTL/.gitignore
+++ b/packages/PEGTL/.gitignore
@@ -1,3 +1,4 @@
 *~
 build
 private
+/.vs
diff --git a/packages/PEGTL/.gitrepo b/packages/PEGTL/.gitrepo
index 943a88058..b7e013522 100644
--- a/packages/PEGTL/.gitrepo
+++ b/packages/PEGTL/.gitrepo
@@ -6,7 +6,7 @@
 [subrepo]
 	remote = git@github.com:taocpp/PEGTL.git
 	branch = master
-	commit = 68790bd2c25fceff1049e9fc2fb9528ca4d93bbf
-	parent = 0fc26ddb5da553e9b9ddff3db48b3d6a1617eb96
+	commit = 293ef9f549bfde12f78c6117a6d13a1f5b9879d2
+	parent = 512de6bdac8531e32026970fcf476a1a1154ae62
 	cmdver = 0.4.0
 	method = merge
diff --git a/packages/PEGTL/.travis.yml b/packages/PEGTL/.travis.yml
index 32500f242..efdead2af 100644
--- a/packages/PEGTL/.travis.yml
+++ b/packages/PEGTL/.travis.yml
@@ -20,6 +20,14 @@ matrix:
       env:
         - CXX=g++-8
 
+    - compiler: gcc
+      addons:
+        apt:
+          sources: ['ubuntu-toolchain-r-test']
+          packages: ['g++-9']
+      env:
+        - CXX=g++-9
+
     - compiler: clang
       addons:
         apt:
@@ -77,9 +85,9 @@ matrix:
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test']
-          packages: ['g++-8']
+          packages: ['g++-9']
       env:
-        - CXX=g++-8
+        - CXX=g++-9
         - CPPFLAGS="-fsanitize=undefined -fuse-ld=gold"
 
     - compiler: gcc
@@ -87,9 +95,9 @@ matrix:
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test']
-          packages: ['g++-8']
+          packages: ['g++-9']
       env:
-        - CXX=g++-8
+        - CXX=g++-9
         - CPPFLAGS="-fsanitize=address -fuse-ld=gold"
 
     - compiler: clang
@@ -135,9 +143,9 @@ matrix:
       addons:
         apt:
           sources: ['ubuntu-toolchain-r-test']
-          packages: ['g++-8', 'valgrind']
+          packages: ['g++-9', 'valgrind']
       env:
-        - CXX=g++-8
+        - CXX=g++-9
         - SPECIAL=valgrind
       script:
         - make -kj3 valgrind
diff --git a/packages/PEGTL/CMakeLists.txt b/packages/PEGTL/CMakeLists.txt
index 410ec90d1..0fe7e8e7a 100644
--- a/packages/PEGTL/CMakeLists.txt
+++ b/packages/PEGTL/CMakeLists.txt
@@ -1,6 +1,11 @@
 cmake_minimum_required(VERSION 3.8.0 FATAL_ERROR)
 
-project(pegtl VERSION 3.0.0 LANGUAGES CXX)
+# Read version from version.hpp
+file(READ "${CMAKE_CURRENT_LIST_DIR}/include/tao/pegtl/version.hpp" version_hpp_data)
+string(REGEX MATCH "#define TAO_PEGTL_VERSION \"([^\"]+)\"" _ ${version_hpp_data})
+set(PEGTL_VERSION "${CMAKE_MATCH_1}")
+
+project(pegtl VERSION ${PEGTL_VERSION} LANGUAGES CXX)
 
 if(${PROJECT_NAME}_FOUND)
   # Multiple versions of PEGTL can't co-exist
@@ -55,6 +60,13 @@ endif()
 # Make package findable
 configure_file(cmake/dummy-config.cmake.in pegtl-config.cmake @ONLY)
 
+# Ignore pointer width differences since this is a header-only library
+unset(CMAKE_SIZEOF_VOID_P)
+
+# Enable version checks in find_package
+include(CMakePackageConfigHelpers)
+write_basic_package_version_file(pegtl-config-version.cmake COMPATIBILITY SameMajorVersion)
+
 # install and export target
 install(TARGETS pegtl EXPORT pegtl-targets)
 
@@ -64,5 +76,6 @@ install(EXPORT pegtl-targets
   DESTINATION ${PEGTL_INSTALL_CMAKE_DIR}
 )
 
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pegtl-config-version.cmake DESTINATION ${PEGTL_INSTALL_CMAKE_DIR})
 install(DIRECTORY include/ DESTINATION ${PEGTL_INSTALL_INCLUDE_DIR})
 install(FILES LICENSE DESTINATION ${PEGTL_INSTALL_DOC_DIR})
diff --git a/packages/PEGTL/README.md b/packages/PEGTL/README.md
index d9798a226..089408179 100644
--- a/packages/PEGTL/README.md
+++ b/packages/PEGTL/README.md
@@ -69,7 +69,7 @@ Each commit is automatically tested with multiple architectures, operating syste
 
 * Ubuntu 16.04 LTS (using libstdc++)
 
-  * GCC 7.x, 8.x
+  * GCC 7.x, 8.x, 9.x
   * Clang 5.x, 6.x, 7.x, 8.x
 
 Additionally, each commit is checked with Clang's [Static Analyzer](https://clang-analyzer.llvm.org/), GCC's and Clang's [sanitizers](https://github.com/google/sanitizers), [`clang-tidy`](http://clang.llvm.org/extra/clang-tidy/), and [`valgrind`](http://valgrind.org/).
@@ -79,11 +79,48 @@ Code coverage is automatically measured and the unit tests cover 100% of the cor
 Incompatible API changes are *only* allowed to occur between major versions.
 For details see the [changelog](doc/Changelog.md).
 
-## Contact
+## Thank You
+
+In appreciation of all contributions here are the people that have [directly contributed](https://github.com/taocpp/PEGTL/graphs/contributors) to the PEGTL and/or its development.
+
+[<img alt="andoma" src="https://avatars2.githubusercontent.com/u/216384?v=4&s=117" width="117">](https://github.com/andoma)
+[<img alt="Bjoe" src="https://avatars3.githubusercontent.com/u/727911?v=4&s=117" width="117">](https://github.com/Bjoe)
+[<img alt="bwagner" src="https://avatars3.githubusercontent.com/u/447049?v=4&s=117" width="117">](https://github.com/bwagner)
+[<img alt="cdiggins" src="https://avatars2.githubusercontent.com/u/1759994?s=460&v=4?v=4&s=117" width="117">](https://github.com/cdiggins)
+[<img alt="delpinux" src="https://avatars0.githubusercontent.com/u/35096584?v=4&s=117" width="117">](https://github.com/delpinux)
+[<img alt="dkopecek" src="https://avatars2.githubusercontent.com/u/1353140?v=4&s=117" width="117">](https://github.com/dkopecek)
+[<img alt="irrequietus" src="https://avatars0.githubusercontent.com/u/231192?v=4&s=117" width="117">](https://github.com/irrequietus)
+[<img alt="jedelbo" src="https://avatars2.githubusercontent.com/u/572755?v=4&s=117" width="117">](https://github.com/jedelbo)
+[<img alt="joelfrederico" src="https://avatars0.githubusercontent.com/u/458871?v=4&s=117" width="117">](https://github.com/joelfrederico)
+[<img alt="jovermann" src="https://avatars3.githubusercontent.com/u/6087443?v=4&s=117" width="117">](https://github.com/jovermann)
+[<img alt="kneth" src="https://avatars0.githubusercontent.com/u/1225363?v=4&s=117" width="117">](https://github.com/kneth)
+[<img alt="kuzmas" src="https://avatars1.githubusercontent.com/u/1858553?v=4&s=117" width="117">](https://github.com/kuzmas)
+[<img alt="lambdafu" src="https://avatars1.githubusercontent.com/u/1138455?v=4&s=117" width="117">](https://github.com/lambdafu)
+[<img alt="lichray" src="https://avatars2.githubusercontent.com/u/433009?v=4&s=117" width="117">](https://github.com/lichray)
+[<img alt="michael-brade" src="https://avatars0.githubusercontent.com/u/8768950?v=4&s=117" width="117">](https://github.com/michael-brade)
+[<img alt="mkrupcale" src="https://avatars1.githubusercontent.com/u/13936020?v=4&s=117" width="117">](https://github.com/mkrupcale)
+[<img alt="NewProggie" src="https://avatars3.githubusercontent.com/u/162319?s=460&v=4?v=4&s=117" width="117">](https://github.com/NewProggie)
+[<img alt="pauloscustodio" src="https://avatars1.githubusercontent.com/u/70773?v=4&s=117" width="117">](https://github.com/pauloscustodio)
+[<img alt="pleroux0" src="https://avatars2.githubusercontent.com/u/39619854?v=4&s=117" width="117">](https://github.com/pleroux0)
+[<img alt="quadfault" src="https://avatars3.githubusercontent.com/u/30195320?v=4&s=117" width="117">](https://github.com/quadfault)
+[<img alt="samhocevar" src="https://avatars2.githubusercontent.com/u/245089?v=4&s=117" width="117">](https://github.com/samhocevar)
+[<img alt="sanssecours" src="https://avatars2.githubusercontent.com/u/691989?v=4&s=117" width="117">](https://github.com/sanssecours)
+[<img alt="sgbeal" src="https://avatars1.githubusercontent.com/u/235303?v=4&s=117" width="117">](https://github.com/sgbeal)
+[<img alt="studoot" src="https://avatars1.githubusercontent.com/u/799344?v=4&s=117" width="117">](https://github.com/studoot)
+[<img alt="SvenJo" src="https://avatars1.githubusercontent.com/u/1538181?s=460&v=4?v=4&s=117" width="117">](https://github.com/SvenJo)
+[<img alt="wickedmic" src="https://avatars1.githubusercontent.com/u/12001183?v=4&s=117" width="117">](https://github.com/wickedmic)
+[<img alt="wravery" src="https://avatars0.githubusercontent.com/u/6502881?v=4&s=117" width="117">](https://github.com/wravery)
+[<img alt="zhihaoy" src="https://avatars2.githubusercontent.com/u/43971430?v=4&s=117" width="117">](https://github.com/zhihaoy)
+
+## The Art of C++
 
 The PEGTL is part of [The Art of C++](https://taocpp.github.io/).
 
-We [are grateful](doc/Thank-You.md) for all support and contributions.
+[<img alt="ColinH" src="https://avatars0.githubusercontent.com/u/113184?v=4&s=117" width="117">](https://github.com/ColinH)
+[<img alt="d-frey" src="https://avatars2.githubusercontent.com/u/3956325?v=4&s=117" width="117">](https://github.com/d-frey)
+[<img alt="uilianries" src="https://avatars0.githubusercontent.com/u/4870173?v=4&s=117" width="117">](https://github.com/uilianries)
+
+## Contact
 
 For questions and suggestions regarding the PEGTL, success or failure stories, and any other kind of feedback, please feel free to open an issue or a PR on GitHub or contact the authors at `taocpp(at)icemx.net`.
 
diff --git a/packages/PEGTL/doc/Changelog.md b/packages/PEGTL/doc/Changelog.md
index 37b4184c7..9fc17ba38 100644
--- a/packages/PEGTL/doc/Changelog.md
+++ b/packages/PEGTL/doc/Changelog.md
@@ -10,6 +10,8 @@
 * The macro `TAO_PEGTL_NAMESPACE` now contains the fully qualified namespace, e.g. `tao::pegtl`.
 * Replaced `tao::pegtl::input_error` with `std::system_error`.
 * Changed message of `tao::pegtl::parse_error` to no longer contain the position redundantly.
+* Changed rules in `tao/pegtl/contrib/integer.hpp` to not accept redundant leading zeros.
+* Added rules to `tao/pegtl/contrib/integer.hpp` that test unsigned values against a maximum.
 * Removed option of [state](Rule-Reference.md#state-s-r-)'s `S::success()` to have an extended signature to get access to the current `apply_mode`, `rewind_mode`, *action*- and *control* class (template).
 * Added `[[nodiscard]]` to most non-void functions.
 * Removed compatibility macros starting with `TAOCPP_PEGTL_`.
@@ -17,6 +19,12 @@
 * Removed compatibility `peek_byte()` member functions.
 * Removed compatibility header `changes.hpp` from contrib.
 
+## 2.8.1
+
+**Not yet released**
+
+* Fixed missing `string_input<>` in amalgamated header.
+
 ## 2.8.0
 
 Released 2019-04-09
diff --git a/packages/PEGTL/doc/Contrib-and-Examples.md b/packages/PEGTL/doc/Contrib-and-Examples.md
index f83cc6cf1..7f844ad13 100644
--- a/packages/PEGTL/doc/Contrib-and-Examples.md
+++ b/packages/PEGTL/doc/Contrib-and-Examples.md
@@ -206,12 +206,12 @@ The example shows how to choose which rules will produce a parse tree node, whic
 The output is in [DOT](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) format and can be converted into a graph.
 
 ```sh
-$ build/src/example/pegtl/parse_tree "(2*a + 3*b) / (4*n)" | dot -Tpng -o parse_tree.png
+$ build/src/example/pegtl/parse_tree "(2*a + 3*b) / (4*n)" | dot -Tsvg -o parse_tree.svg
 ```
 
-The above will generate a PNG with a graphical representation of the parse tree.
+The above will generate an SVG file with a graphical representation of the parse tree.
 
-![Parse Tree](Parse-Tree.png)
+![Parse Tree](Parse-Tree.svg)
 
 ###### `src/example/pegtl/proto3.cpp`
 
diff --git a/packages/PEGTL/doc/Installing-and-Using.md b/packages/PEGTL/doc/Installing-and-Using.md
index d0b78a470..7b73f2236 100644
--- a/packages/PEGTL/doc/Installing-and-Using.md
+++ b/packages/PEGTL/doc/Installing-and-Using.md
@@ -36,6 +36,8 @@ on either
 It requires C++17, e.g. using the `--std=c++17` compiler switch.
 Using newer versions of the C++ standard is supported.
 
+Larger projects will frequently require the `/bigobj` option when compiling with Visual Studio on Windows.
+
 It should also work with other C++17 compilers on other Unix systems (or any sufficiently compatible platform).
 
 The PEGTL is written with an emphasis on clean code and is compatible with
diff --git a/packages/PEGTL/doc/Parse-Tree.png b/packages/PEGTL/doc/Parse-Tree.png
deleted file mode 100644
index fcacd0611dbb67c7516dbc0df9c54211d21d3ae9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 59564
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
Hr-UW|J)&VW

diff --git a/packages/PEGTL/doc/Parse-Tree.svg b/packages/PEGTL/doc/Parse-Tree.svg
new file mode 100644
index 000000000..87792aff9
--- /dev/null
+++ b/packages/PEGTL/doc/Parse-Tree.svg
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (0)
+ -->
+<!-- Title: parse_tree Pages: 1 -->
+<svg width="1063pt" height="367pt"
+ viewBox="0.00 0.00 1062.99 367.48" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 363.4802)">
+<title>parse_tree</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-363.4802 1058.9899,-363.4802 1058.9899,4 -4,4"/>
+<!-- x0x1604e70 -->
+<g id="node1" class="node">
+<title>x0x1604e70</title>
+<ellipse fill="none" stroke="#000000" cx="632.8736" cy="-341.4802" rx="39.7935" ry="18"/>
+<text text-anchor="middle" x="632.8736" y="-337.7802" font-family="Times,serif" font-size="14.00" fill="#000000">ROOT</text>
+</g>
+<!-- x0x1605200 -->
+<g id="node2" class="node">
+<title>x0x1605200</title>
+<ellipse fill="none" stroke="#000000" cx="632.8736" cy="-269.4802" rx="83.6854" ry="18"/>
+<text text-anchor="middle" x="632.8736" y="-265.7802" font-family="Times,serif" font-size="14.00" fill="#000000">example::divide</text>
+</g>
+<!-- x0x1604e70&#45;&gt;x0x1605200 -->
+<g id="edge1" class="edge">
+<title>x0x1604e70&#45;&gt;x0x1605200</title>
+<path fill="none" stroke="#000000" d="M632.8736,-323.3116C632.8736,-315.6112 632.8736,-306.4546 632.8736,-297.8969"/>
+<polygon fill="#000000" stroke="#000000" points="636.3737,-297.8935 632.8736,-287.8935 629.3737,-297.8935 636.3737,-297.8935"/>
+</g>
+<!-- x0x16053b0 -->
+<g id="node3" class="node">
+<title>x0x16053b0</title>
+<ellipse fill="none" stroke="#000000" cx="528.8736" cy="-197.4802" rx="75.2868" ry="18"/>
+<text text-anchor="middle" x="528.8736" y="-193.7802" font-family="Times,serif" font-size="14.00" fill="#000000">example::plus</text>
+</g>
+<!-- x0x1605200&#45;&gt;x0x16053b0 -->
+<g id="edge2" class="edge">
+<title>x0x1605200&#45;&gt;x0x16053b0</title>
+<path fill="none" stroke="#000000" d="M607.963,-252.2344C594.199,-242.7055 576.9218,-230.7443 562.0293,-220.4341"/>
+<polygon fill="#000000" stroke="#000000" points="563.7951,-217.3998 553.581,-214.5853 559.8106,-223.1551 563.7951,-217.3998"/>
+</g>
+<!-- x0x1605a60 -->
+<g id="node4" class="node">
+<title>x0x1605a60</title>
+<ellipse fill="none" stroke="#000000" cx="737.8736" cy="-197.4802" rx="94.4839" ry="18"/>
+<text text-anchor="middle" x="737.8736" y="-193.7802" font-family="Times,serif" font-size="14.00" fill="#000000">example::multiply</text>
+</g>
+<!-- x0x1605200&#45;&gt;x0x1605a60 -->
+<g id="edge3" class="edge">
+<title>x0x1605200&#45;&gt;x0x1605a60</title>
+<path fill="none" stroke="#000000" d="M658.0237,-252.2344C671.8187,-242.775 689.109,-230.9188 704.0695,-220.6602"/>
+<polygon fill="#000000" stroke="#000000" points="706.2969,-223.3767 712.5648,-214.8348 702.3381,-217.6036 706.2969,-223.3767"/>
+</g>
+<!-- x0x1605560 -->
+<g id="node5" class="node">
+<title>x0x1605560</title>
+<ellipse fill="none" stroke="#000000" cx="312.8736" cy="-116.6102" rx="94.4839" ry="18"/>
+<text text-anchor="middle" x="312.8736" y="-112.9102" font-family="Times,serif" font-size="14.00" fill="#000000">example::multiply</text>
+</g>
+<!-- x0x16053b0&#45;&gt;x0x1605560 -->
+<g id="edge4" class="edge">
+<title>x0x16053b0&#45;&gt;x0x1605560</title>
+<path fill="none" stroke="#000000" d="M488.2457,-182.2692C453.5814,-169.2909 403.4996,-150.5404 365.7225,-136.3967"/>
+<polygon fill="#000000" stroke="#000000" points="366.5019,-132.9513 355.9096,-132.7228 364.0475,-139.5069 366.5019,-132.9513"/>
+</g>
+<!-- x0x16057e0 -->
+<g id="node6" class="node">
+<title>x0x16057e0</title>
+<ellipse fill="none" stroke="#000000" cx="528.8736" cy="-116.6102" rx="94.4839" ry="18"/>
+<text text-anchor="middle" x="528.8736" y="-112.9102" font-family="Times,serif" font-size="14.00" fill="#000000">example::multiply</text>
+</g>
+<!-- x0x16053b0&#45;&gt;x0x16057e0 -->
+<g id="edge5" class="edge">
+<title>x0x16053b0&#45;&gt;x0x16057e0</title>
+<path fill="none" stroke="#000000" d="M528.8736,-179.1296C528.8736,-169.1 528.8736,-156.4555 528.8736,-145.1666"/>
+<polygon fill="#000000" stroke="#000000" points="532.3737,-144.8882 528.8736,-134.8882 525.3737,-144.8883 532.3737,-144.8882"/>
+</g>
+<!-- x0x16059d0 -->
+<g id="node11" class="node">
+<title>x0x16059d0</title>
+<ellipse fill="none" stroke="#000000" cx="737.8736" cy="-116.6102" rx="96.7474" ry="26.7407"/>
+<text text-anchor="middle" x="737.8736" y="-120.4102" font-family="Times,serif" font-size="14.00" fill="#000000">example::integer</text>
+<text text-anchor="middle" x="737.8736" y="-105.4102" font-family="Times,serif" font-size="14.00" fill="#000000">&quot;4&quot;</text>
+</g>
+<!-- x0x1605a60&#45;&gt;x0x16059d0 -->
+<g id="edge10" class="edge">
+<title>x0x1605a60&#45;&gt;x0x16059d0</title>
+<path fill="none" stroke="#000000" d="M737.8736,-179.1296C737.8736,-171.5597 737.8736,-162.5002 737.8736,-153.6583"/>
+<polygon fill="#000000" stroke="#000000" points="741.3737,-153.4808 737.8736,-143.4808 734.3737,-153.4808 741.3737,-153.4808"/>
+</g>
+<!-- x0x1605b10 -->
+<g id="node12" class="node">
+<title>x0x1605b10</title>
+<ellipse fill="none" stroke="#000000" cx="953.8736" cy="-116.6102" rx="101.2327" ry="26.7407"/>
+<text text-anchor="middle" x="953.8736" y="-120.4102" font-family="Times,serif" font-size="14.00" fill="#000000">example::variable</text>
+<text text-anchor="middle" x="953.8736" y="-105.4102" font-family="Times,serif" font-size="14.00" fill="#000000">&quot;n&quot;</text>
+</g>
+<!-- x0x1605a60&#45;&gt;x0x1605b10 -->
+<g id="edge11" class="edge">
+<title>x0x1605a60&#45;&gt;x0x1605b10</title>
+<path fill="none" stroke="#000000" d="M780.8065,-181.4062C810.7205,-170.2065 851.2523,-155.0314 885.5715,-142.1824"/>
+<polygon fill="#000000" stroke="#000000" points="886.9346,-145.4094 895.0725,-138.6252 884.4801,-138.8538 886.9346,-145.4094"/>
+</g>
+<!-- x0x16054d0 -->
+<g id="node7" class="node">
+<title>x0x16054d0</title>
+<ellipse fill="none" stroke="#000000" cx="96.8736" cy="-26.8701" rx="96.7474" ry="26.7407"/>
+<text text-anchor="middle" x="96.8736" y="-30.6701" font-family="Times,serif" font-size="14.00" fill="#000000">example::integer</text>
+<text text-anchor="middle" x="96.8736" y="-15.6701" font-family="Times,serif" font-size="14.00" fill="#000000">&quot;2&quot;</text>
+</g>
+<!-- x0x1605560&#45;&gt;x0x16054d0 -->
+<g id="edge6" class="edge">
+<title>x0x1605560&#45;&gt;x0x16054d0</title>
+<path fill="none" stroke="#000000" d="M273.2559,-100.1505C241.728,-87.0518 196.9923,-68.4657 160.464,-53.2895"/>
+<polygon fill="#000000" stroke="#000000" points="161.4608,-49.9137 150.8832,-49.3091 158.7751,-56.378 161.4608,-49.9137"/>
+</g>
+<!-- x0x1605610 -->
+<g id="node8" class="node">
+<title>x0x1605610</title>
+<ellipse fill="none" stroke="#000000" cx="312.8736" cy="-26.8701" rx="101.2327" ry="26.7407"/>
+<text text-anchor="middle" x="312.8736" y="-30.6701" font-family="Times,serif" font-size="14.00" fill="#000000">example::variable</text>
+<text text-anchor="middle" x="312.8736" y="-15.6701" font-family="Times,serif" font-size="14.00" fill="#000000">&quot;a&quot;</text>
+</g>
+<!-- x0x1605560&#45;&gt;x0x1605610 -->
+<g id="edge7" class="edge">
+<title>x0x1605560&#45;&gt;x0x1605610</title>
+<path fill="none" stroke="#000000" d="M312.8736,-98.4499C312.8736,-88.5469 312.8736,-75.9148 312.8736,-64.0273"/>
+<polygon fill="#000000" stroke="#000000" points="316.3737,-63.8597 312.8736,-53.8597 309.3737,-63.8597 316.3737,-63.8597"/>
+</g>
+<!-- x0x1605750 -->
+<g id="node9" class="node">
+<title>x0x1605750</title>
+<ellipse fill="none" stroke="#000000" cx="528.8736" cy="-26.8701" rx="96.7474" ry="26.7407"/>
+<text text-anchor="middle" x="528.8736" y="-30.6701" font-family="Times,serif" font-size="14.00" fill="#000000">example::integer</text>
+<text text-anchor="middle" x="528.8736" y="-15.6701" font-family="Times,serif" font-size="14.00" fill="#000000">&quot;3&quot;</text>
+</g>
+<!-- x0x16057e0&#45;&gt;x0x1605750 -->
+<g id="edge8" class="edge">
+<title>x0x16057e0&#45;&gt;x0x1605750</title>
+<path fill="none" stroke="#000000" d="M528.8736,-98.4499C528.8736,-88.5469 528.8736,-75.9148 528.8736,-64.0273"/>
+<polygon fill="#000000" stroke="#000000" points="532.3737,-63.8597 528.8736,-53.8597 525.3737,-63.8597 532.3737,-63.8597"/>
+</g>
+<!-- x0x1605890 -->
+<g id="node10" class="node">
+<title>x0x1605890</title>
+<ellipse fill="none" stroke="#000000" cx="744.8736" cy="-26.8701" rx="101.2327" ry="26.7407"/>
+<text text-anchor="middle" x="744.8736" y="-30.6701" font-family="Times,serif" font-size="14.00" fill="#000000">example::variable</text>
+<text text-anchor="middle" x="744.8736" y="-15.6701" font-family="Times,serif" font-size="14.00" fill="#000000">&quot;b&quot;</text>
+</g>
+<!-- x0x16057e0&#45;&gt;x0x1605890 -->
+<g id="edge9" class="edge">
+<title>x0x16057e0&#45;&gt;x0x1605890</title>
+<path fill="none" stroke="#000000" d="M568.4914,-100.1505C599.7956,-87.1447 644.1211,-68.7291 680.5048,-53.6129"/>
+<polygon fill="#000000" stroke="#000000" points="682.1617,-56.7147 690.0535,-49.6458 679.476,-50.2504 682.1617,-56.7147"/>
+</g>
+</g>
+</svg>
diff --git a/packages/PEGTL/doc/README.md b/packages/PEGTL/doc/README.md
index 4f98196ac..7c9acc81d 100644
--- a/packages/PEGTL/doc/README.md
+++ b/packages/PEGTL/doc/README.md
@@ -104,7 +104,6 @@
   * [Custom Rules](Grammar-Analysis.md#custom-rules)
 * [Changelog](Changelog.md)
 * [Migration Guide](Migration-Guide.md)
-* [Thank You](Thank-You.md)
 
 # Rule Reference Index
 
diff --git a/packages/PEGTL/doc/Rule-Reference.md b/packages/PEGTL/doc/Rule-Reference.md
index 85040484d..160f74372 100644
--- a/packages/PEGTL/doc/Rule-Reference.md
+++ b/packages/PEGTL/doc/Rule-Reference.md
@@ -103,7 +103,6 @@ These are the classical PEG combinator rules defined in namespace `tao::pegtl`.
 * Succeeds if and only if `seq< R... >` would succeed.
 * Consumes nothing, i.e. rewinds after matching.
 * Disables all actions.
-* Allows local failure of `R...` even within `must<>` etc.
 
 ###### `not_at< R... >`
 
@@ -111,14 +110,12 @@ These are the classical PEG combinator rules defined in namespace `tao::pegtl`.
 * Succeeds if and only if `seq< R... >` would **not** succeed.
 * Consumes nothing, i.e. rewinds after matching.
 * Disables all actions.
-* Allows local failure of `R...` even within `must<>` etc.
 
 ###### `opt< R... >`
 
 * PEG **optional** *e*?
 * Optional `seq< R... >`, i.e. attempt to match `seq< R... >` and signal success regardless of the result.
 * Equivalent to `sor< seq< R... >, success >`.
-* Allows local failure of `R...` even within `must<>` etc.
 
 ###### `plus< R... >`
 
@@ -143,14 +140,12 @@ These are the classical PEG combinator rules defined in namespace `tao::pegtl`.
 * Matches the given rules `R...` in the given order.
 * Succeeds and stops matching when one of the given rules succeeds.
 * Consumes whatever the first rule that succeeded consumed.
-* Allows local failure of `R...` even within `must<>` etc.
 * Fails if `R` is an empty rule pack.
 
 ###### `star< R... >`
 
 * PEG **zero-or-more** *e**
 * Matches `seq< R... >` as often as possible and always succeeds.
-* Allows local failure of `R...` even within `must<>` etc.
 * `R` must be a non-empty rule pack.
 
 ## Convenience
diff --git a/packages/PEGTL/doc/Thank-You.md b/packages/PEGTL/doc/Thank-You.md
deleted file mode 100644
index 63beb187c..000000000
--- a/packages/PEGTL/doc/Thank-You.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Thank You
-
-In appreciation of all contributions here are the people that have [directly contributed](https://github.com/taocpp/PEGTL/graphs/contributors) to the PEGTL and/or its development.
-
-[<img alt="andoma" src="https://avatars2.githubusercontent.com/u/216384?v=4&s=117" width="117">](https://github.com/andoma)
-[<img alt="Bjoe" src="https://avatars3.githubusercontent.com/u/727911?v=4&s=117" width="117">](https://github.com/Bjoe)
-[<img alt="bwagner" src="https://avatars3.githubusercontent.com/u/447049?v=4&s=117" width="117">](https://github.com/bwagner)
-[<img alt="cdiggins" src="https://avatars2.githubusercontent.com/u/1759994?s=460&v=4?v=4&s=117" width="117">](https://github.com/cdiggins)
-[<img alt="delpinux" src="https://avatars0.githubusercontent.com/u/35096584?v=4&s=117" width="117">](https://github.com/delpinux)
-[<img alt="dkopecek" src="https://avatars2.githubusercontent.com/u/1353140?v=4&s=117" width="117">](https://github.com/dkopecek)
-[<img alt="irrequietus" src="https://avatars0.githubusercontent.com/u/231192?v=4&s=117" width="117">](https://github.com/irrequietus)
-[<img alt="jedelbo" src="https://avatars2.githubusercontent.com/u/572755?v=4&s=117" width="117">](https://github.com/jedelbo)
-[<img alt="joelfrederico" src="https://avatars0.githubusercontent.com/u/458871?v=4&s=117" width="117">](https://github.com/joelfrederico)
-[<img alt="jovermann" src="https://avatars3.githubusercontent.com/u/6087443?v=4&s=117" width="117">](https://github.com/jovermann)
-[<img alt="kneth" src="https://avatars0.githubusercontent.com/u/1225363?v=4&s=117" width="117">](https://github.com/kneth)
-[<img alt="kuzmas" src="https://avatars1.githubusercontent.com/u/1858553?v=4&s=117" width="117">](https://github.com/kuzmas)
-[<img alt="lambdafu" src="https://avatars1.githubusercontent.com/u/1138455?v=4&s=117" width="117">](https://github.com/lambdafu)
-[<img alt="lichray" src="https://avatars2.githubusercontent.com/u/433009?v=4&s=117" width="117">](https://github.com/lichray)
-[<img alt="michael-brade" src="https://avatars0.githubusercontent.com/u/8768950?v=4&s=117" width="117">](https://github.com/michael-brade)
-[<img alt="mkrupcale" src="https://avatars1.githubusercontent.com/u/13936020?v=4&s=117" width="117">](https://github.com/mkrupcale)
-[<img alt="NewProggie" src="https://avatars3.githubusercontent.com/u/162319?s=460&v=4?v=4&s=117" width="117">](https://github.com/NewProggie)
-[<img alt="pauloscustodio" src="https://avatars1.githubusercontent.com/u/70773?v=4&s=117" width="117">](https://github.com/pauloscustodio)
-[<img alt="pleroux0" src="https://avatars2.githubusercontent.com/u/39619854?v=4&s=117" width="117">](https://github.com/pleroux0)
-[<img alt="quadfault" src="https://avatars3.githubusercontent.com/u/30195320?v=4&s=117" width="117">](https://github.com/quadfault)
-[<img alt="samhocevar" src="https://avatars2.githubusercontent.com/u/245089?v=4&s=117" width="117">](https://github.com/samhocevar)
-[<img alt="sanssecours" src="https://avatars2.githubusercontent.com/u/691989?v=4&s=117" width="117">](https://github.com/sanssecours)
-[<img alt="sgbeal" src="https://avatars1.githubusercontent.com/u/235303?v=4&s=117" width="117">](https://github.com/sgbeal)
-[<img alt="studoot" src="https://avatars1.githubusercontent.com/u/799344?v=4&s=117" width="117">](https://github.com/studoot)
-[<img alt="SvenJo" src="https://avatars1.githubusercontent.com/u/1538181?s=460&v=4?v=4&s=117" width="117">](https://github.com/SvenJo)
-[<img alt="wickedmic" src="https://avatars1.githubusercontent.com/u/12001183?v=4&s=117" width="117">](https://github.com/wickedmic)
-[<img alt="zhihaoy" src="https://avatars2.githubusercontent.com/u/43971430?v=4&s=117" width="117">](https://github.com/zhihaoy)
-
-## The Art of C++
-
-Members of the *Art of C++* project.
-
-[<img alt="ColinH" src="https://avatars0.githubusercontent.com/u/113184?v=4&s=117" width="117">](https://github.com/ColinH)
-[<img alt="d-frey" src="https://avatars2.githubusercontent.com/u/3956325?v=4&s=117" width="117">](https://github.com/d-frey)
-[<img alt="uilianries" src="https://avatars0.githubusercontent.com/u/4870173?v=4&s=117" width="117">](https://github.com/uilianries)
-
-Copyright (c) 2019 Dr. Colin Hirsch and Daniel Frey
diff --git a/packages/PEGTL/include/tao/pegtl.hpp b/packages/PEGTL/include/tao/pegtl.hpp
index 42141a9df..832fc9eae 100644
--- a/packages/PEGTL/include/tao/pegtl.hpp
+++ b/packages/PEGTL/include/tao/pegtl.hpp
@@ -22,12 +22,15 @@
 #include "pegtl/argv_input.hpp"
 #include "pegtl/buffer_input.hpp"
 #include "pegtl/cstream_input.hpp"
-#include "pegtl/file_input.hpp"
 #include "pegtl/istream_input.hpp"
 #include "pegtl/memory_input.hpp"
 #include "pegtl/read_input.hpp"
 #include "pegtl/string_input.hpp"
 
+// this has to be included *after* the above inputs,
+// otherwise the amalgamated header will not work!
+#include "pegtl/file_input.hpp"
+
 #include "pegtl/change_action.hpp"
 #include "pegtl/change_action_and_state.hpp"
 #include "pegtl/change_action_and_states.hpp"
diff --git a/packages/PEGTL/include/tao/pegtl/contrib/integer.hpp b/packages/PEGTL/include/tao/pegtl/contrib/integer.hpp
index 77d11421b..2e9c8edb1 100644
--- a/packages/PEGTL/include/tao/pegtl/contrib/integer.hpp
+++ b/packages/PEGTL/include/tao/pegtl/contrib/integer.hpp
@@ -1,13 +1,16 @@
-// Copyright (c) 2018-2019 Dr. Colin Hirsch and Daniel Frey
+// Copyright (c) 2019 Dr. Colin Hirsch and Daniel Frey
 // Please see LICENSE for license or visit https://github.com/taocpp/PEGTL/
 
 #ifndef TAO_PEGTL_CONTRIB_INTEGER_HPP
 #define TAO_PEGTL_CONTRIB_INTEGER_HPP
 
-#include <limits>
+#include <cstdint>
+#include <cstdlib>
+
 #include <type_traits>
 
 #include "../ascii.hpp"
+#include "../parse.hpp"
 #include "../parse_error.hpp"
 #include "../rules.hpp"
 
@@ -15,63 +18,332 @@ namespace TAO_PEGTL_NAMESPACE::integer
 {
    namespace internal
    {
-      template< typename I, I Limit, typename Input >
-      [[nodiscard]] I actual_convert( const Input& in, std::size_t index )
+      struct unsigned_rule_old
+         : plus< digit >
+      {
+         // Pre-3.0 version of this rule.
+      };
+
+      struct unsigned_rule_new
+         : if_then_else< one< '0' >, not_at< digit >, plus< digit > >
+      {
+         // New version that does not allow leading zeros.
+      };
+
+      struct signed_rule_old
+         : seq< opt< one< '-', '+' > >, plus< digit > >
+      {
+         // Pre-3.0 version of this rule.
+      };
+
+      struct signed_rule_new
+         : seq< opt< one< '-', '+' > >, if_then_else< one< '0' >, not_at< digit >, plus< digit > > >
+      {
+         // New version that does not allow leading zeros.
+      };
+
+      struct signed_rule_bis
+         : seq< opt< one< '-' > >, if_then_else< one< '0' >, not_at< digit >, plus< digit > > >
       {
-         static constexpr I cutoff = Limit / 10;
-         static constexpr I cutlim = Limit % 10;
+      };
+
+      struct signed_rule_ter
+         : seq< one< '-', '+' >, if_then_else< one< '0' >, not_at< digit >, plus< digit > > >
+      {
+      };
+
+      [[nodiscard]] constexpr bool is_digit( const char c ) noexcept
+      {
+         // We don't use std::isdigit() because it might
+         // return true for other values on MS platforms.
+
+         return ( '0' <= c ) && ( c <= '9' );
+      }
+
+      template< typename Integer, Integer Maximum = ( std::numeric_limits< Integer >::max )() >
+      [[nodiscard]] constexpr bool accumulate_digit( Integer& result, const char digit ) noexcept
+      {
+         // Assumes that digit is a digit as per is_digit(); returns false on overflow.
+
+         static_assert( std::is_integral_v< Integer > );
 
-         I out = in.peek_char( index ) - '0';
-         while( ++index < in.size() ) {
-            const I c = in.peek_char( index ) - '0';
-            if( ( out > cutoff ) || ( ( out == cutoff ) && ( c > cutlim ) ) ) {
-               throw parse_error( "integer out of range", in );
+         constexpr Integer cutoff = Maximum / 10;
+         constexpr Integer cutlim = Maximum % 10;
+
+         const Integer c = digit - '0';
+
+         if( ( result > cutoff ) || ( ( result == cutoff ) && ( c > cutlim ) ) ) {
+            return false;
+         }
+         result *= 10;
+         result += c;
+         return true;
+      }
+
+      template< typename Integer, Integer Maximum = ( std::numeric_limits< Integer >::max )() >
+      [[nodiscard]] constexpr bool accumulate_digits( Integer& result, const std::string_view input ) noexcept
+      {
+         // Assumes input is a non-empty sequence of digits; returns false on overflow.
+
+         for( std::size_t i = 0; i < input.size(); ++i ) {
+            if( !accumulate_digit< Integer, Maximum >( result, input[ i ] ) ) {
+               return false;
             }
-            out *= 10;
-            out += c;
          }
-         return out;
+         return true;
       }
 
-      template< typename I, typename Input >
-      [[nodiscard]] I convert_positive( const Input& in, std::size_t index )
+      template< typename Integer, Integer Maximum = ( std::numeric_limits< Integer >::max )() >
+      [[nodiscard]] constexpr bool convert_positive( Integer& result, const std::string_view input ) noexcept
       {
-         static constexpr I limit = ( std::numeric_limits< I >::max )();
-         return actual_convert< I, limit >( in, index );
+         // Assumes result == 0 and that input is a non-empty sequence of digits; returns false on overflow.
+
+         static_assert( std::is_integral_v< Integer > );
+         return accumulate_digits< Integer, Maximum >( result, input );
       }
 
-      template< typename I, typename Input >
-      [[nodiscard]] I convert_negative( const Input& in, std::size_t index )
+      template< typename Signed >
+      [[nodiscard]] constexpr bool convert_negative( Signed& result, const std::string_view input ) noexcept
       {
-         using U = std::make_unsigned_t< I >;
-         static constexpr U limit = static_cast< U >( ( std::numeric_limits< I >::max )() ) + 1;
-         return static_cast< I >( ~actual_convert< U, limit >( in, index ) ) + 1;
+         // Assumes result == 0 and that input is a non-empty sequence of digits; returns false on overflow.
+
+         static_assert( std::is_signed_v< Signed > );
+         using Unsigned = std::make_unsigned_t< Signed >;
+         constexpr Unsigned maximum = static_cast< Unsigned >( ( std::numeric_limits< Signed >::max )() ) + 1;
+         Unsigned temporary = 0;
+         if( accumulate_digits< Unsigned, maximum >( temporary, input ) ) {
+            result = static_cast< Signed >( ~temporary ) + 1;
+            return true;
+         }
+         return false;
+      }
+
+      template< typename Unsigned, Unsigned Maximum = ( std::numeric_limits< Unsigned >::max )() >
+      [[nodiscard]] constexpr bool convert_unsigned( Unsigned& result, const std::string_view input ) noexcept
+      {
+         // Assumes result == 0 and that input is a non-empty sequence of digits; returns false on overflow.
+
+         static_assert( std::is_unsigned_v< Unsigned > );
+         return accumulate_digits< Unsigned, Maximum >( result, input );
+      }
+
+      template< typename Signed >
+      [[nodiscard]] constexpr bool convert_signed( Signed& result, const std::string_view input ) noexcept
+      {
+         // Assumes result == 0 and that input is an optional sign followed by a non-empty sequence of digits; returns false on overflow.
+
+         static_assert( std::is_signed_v< Signed > );
+         if( input[ 0 ] == '-' ) {
+            return convert_negative< Signed >( result, std::string_view( input.data() + 1, input.size() - 1 ) );
+         }
+         const auto offset = unsigned( input[ 0 ] == '+' );
+         return convert_positive< Signed >( result, std::string_view( input.data() + offset, input.size() - offset ) );
+      }
+
+      template< typename Input >
+      [[nodiscard]] bool match_unsigned( Input& in ) noexcept( noexcept( in.empty() ) )
+      {
+         if( !in.empty() ) {
+            const char c = in.peek_char();
+            if( is_digit( c ) ) {
+               in.bump_in_this_line();
+               if( c == '0' ) {
+                  return in.empty() || ( !is_digit( in.peek_char() ) );  // TODO: Throw exception on digit?
+               }
+               while( ( !in.empty() ) && is_digit( in.peek_char() ) ) {
+                  in.bump_in_this_line();
+               }
+               return true;
+            }
+         }
+         return false;
+      }
+
+      template< typename Input,
+                typename Unsigned,
+                Unsigned Maximum = ( std::numeric_limits< Unsigned >::max )() >
+      [[nodiscard]] bool match_and_convert_unsigned_with_maximum( Input& in, Unsigned& st )
+      {
+         // Assumes st == 0.
+
+         if( !in.empty() ) {
+            char c = in.peek_char();
+            if( is_digit( c ) ) {
+               if( c == '0' ) {
+                  in.bump_in_this_line();
+                  return in.empty() || ( !is_digit( in.peek_char() ) );  // TODO: Throw exception on digit?
+               }
+               do {
+                  if( !accumulate_digit< Unsigned, Maximum >( st, c ) ) {
+                     throw parse_error( "integer overflow", in );  // Consistent with "as if" an action was doing the conversion.
+                  }
+                  in.bump_in_this_line();
+               } while( ( !in.empty() ) && is_digit( c = in.peek_char() ) );
+               return true;
+            }
+         }
+         return false;
       }
 
    }  // namespace internal
 
+   struct unsigned_action
+   {
+      // Assumes that 'in' contains a non-empty sequence of ASCII digits.
+
+      template< typename Input, typename Unsigned >
+      static auto apply( const Input& in, Unsigned& st ) -> std::enable_if_t< std::is_unsigned_v< Unsigned >, void >
+      {
+         st = 0;  // This function "only" offers basic exception safety.
+         if( !internal::convert_unsigned( st, in.string_view() ) ) {
+            throw parse_error( "unsigned integer overflow", in );
+         }
+      }
+
+      template< typename Input, typename State >
+      static auto apply( const Input& in, State& st ) -> std::enable_if_t< std::is_class_v< State >, void >
+      {
+         apply( in, st.converted );  // Compatibility for pre-3.0 behaviour.
+      }
+
+      template< typename Input, typename Unsigned, typename... Ts >
+      static auto apply( const Input& in, std::vector< Unsigned, Ts... >& st ) -> std::enable_if_t< std::is_unsigned_v< Unsigned >, void >
+      {
+         Unsigned u = 0;
+         apply( in, u );
+         st.emplace_back( u );
+      }
+   };
+
    struct unsigned_rule
-      : plus< digit >
    {
+      using analyze_t = internal::unsigned_rule_new::analyze_t;
+
+      template< typename Input >
+      [[nodiscard]] static bool match( Input& in ) noexcept( noexcept( in.empty() ) )
+      {
+         return internal::match_unsigned( in );  // Does not check for any overflow.
+      }
    };
 
-   struct unsigned_action
+   struct unsigned_rule_with_action
+   {
+      using analyze_t = internal::unsigned_rule_new::analyze_t;
+
+      template< apply_mode A,
+                rewind_mode M,
+                template< typename... >
+                class Action,
+                template< typename... >
+                class Control,
+                typename Input,
+                typename... States >
+      [[nodiscard]] static auto match( Input& in, States&&... /*unused*/ ) noexcept( noexcept( in.empty() ) ) -> std::enable_if_t< A == apply_mode::nothing, bool >
+      {
+         return internal::match_unsigned( in );  // Does not check for any overflow.
+      }
+
+      template< apply_mode A,
+                rewind_mode M,
+                template< typename... >
+                class Action,
+                template< typename... >
+                class Control,
+                typename Input,
+                typename Unsigned >
+      [[nodiscard]] static auto match( Input& in, Unsigned& st ) -> std::enable_if_t< ( A == apply_mode::action ) && std::is_unsigned_v< Unsigned >, bool >
+      {
+         st = 0;  // This function "only" offers basic exception safety.
+         return internal::match_and_convert_unsigned_with_maximum( in, st );  // Throws on overflow.
+      }
+
+      // TODO: Overload for st.converted?
+      // TODO: Overload for std::vector< Unsigned >?
+   };
+
+   template< typename Unsigned, Unsigned Maximum >
+   struct maximum_action
    {
       // Assumes that 'in' contains a non-empty sequence of ASCII digits.
 
+      static_assert( std::is_unsigned_v< Unsigned > );
+
+      template< typename Input, typename Unsigned2 >
+      static auto apply( const Input& in, Unsigned2& st ) -> std::enable_if_t< std::is_same_v< Unsigned, Unsigned2 >, void >
+      {
+         st = 0;  // This function "only" offers basic exception safety.
+         if( !internal::convert_unsigned< Unsigned, Maximum >( st, in.string_view() ) ) {
+            throw parse_error( "unsigned integer overflow", in );
+         }
+      }
+
       template< typename Input, typename State >
-      static void apply( const Input& in, State& st )
+      static auto apply( const Input& in, State& st ) -> std::enable_if_t< std::is_class_v< State >, void >
+      {
+         apply( in, st.converted );  // Compatibility for pre-3.0 behaviour.
+      }
+
+      template< typename Input, typename Unsigned2, typename... Ts >
+      static auto apply( const Input& in, std::vector< Unsigned2, Ts... >& st ) -> std::enable_if_t< std::is_same_v< Unsigned, Unsigned2 >, void >
       {
-         using T = std::decay_t< decltype( st.converted ) >;
-         static_assert( std::is_integral_v< T > );
-         static_assert( std::is_unsigned_v< T > );
-         st.converted = internal::convert_positive< T >( in, 0 );
+         Unsigned u = 0;
+         apply( in, u );
+         st.emplace_back( u );
       }
    };
 
-   struct signed_rule
-      : seq< opt< one< '+', '-' > >, plus< digit > >
+   template< typename Unsigned, Unsigned Maximum = ( std::numeric_limits< Unsigned >::max )() >
+   struct maximum_rule
    {
+      static_assert( std::is_unsigned_v< Unsigned > );
+
+      using analyze_t = internal::unsigned_rule_new::analyze_t;
+
+      template< typename Input >
+      [[nodiscard]] static bool match( Input& in )
+      {
+         Unsigned st = 0;
+         return internal::match_and_convert_unsigned_with_maximum< Input, Unsigned, Maximum >( in, st );  // Throws on overflow.
+      }
+   };
+
+   template< typename Unsigned, Unsigned Maximum = ( std::numeric_limits< Unsigned >::max )() >
+   struct maximum_rule_with_action
+   {
+      static_assert( std::is_unsigned_v< Unsigned > );
+
+      using analyze_t = internal::unsigned_rule_new::analyze_t;
+
+      template< apply_mode A,
+                rewind_mode M,
+                template< typename... >
+                class Action,
+                template< typename... >
+                class Control,
+                typename Input,
+                typename... States >
+      [[nodiscard]] static auto match( Input& in, States&&... /*unused*/ ) -> std::enable_if_t< A == apply_mode::nothing, bool >
+      {
+         Unsigned st = 0;
+         return internal::match_and_convert_unsigned_with_maximum< Input, Unsigned, Maximum >( in, st );  // Throws on overflow.
+      }
+
+      template< apply_mode A,
+                rewind_mode M,
+                template< typename... >
+                class Action,
+                template< typename... >
+                class Control,
+                typename Input,
+                typename Unsigned2 >
+      [[nodiscard]] static auto match( Input& in, Unsigned2& st ) -> std::enable_if_t< ( A == apply_mode::action ) && std::is_same_v< Unsigned, Unsigned2 >, bool >
+      {
+         st = 0;  // This function "only" offers basic exception safety.
+         return internal::match_and_convert_unsigned_with_maximum< Input, Unsigned, Maximum >( in, st );  // Throws on overflow.
+      }
+
+      // TODO: Overload for st.converted?
+      // TODO: Overload for std::vector< Unsigned >?
    };
 
    struct signed_action
@@ -79,20 +351,96 @@ namespace TAO_PEGTL_NAMESPACE::integer
       // Assumes that 'in' contains a non-empty sequence of ASCII digits,
       // with optional leading sign; with sign, in.size() must be >= 2.
 
-      template< typename Input, typename State >
-      static void apply( const Input& in, State& st )
-      {
-         using T = std::decay_t< decltype( st.converted ) >;
-         static_assert( std::is_integral_v< T > );
-         static_assert( std::is_signed_v< T > );
-         const auto c = in.peek_char();
-         if( c == '-' ) {
-            st.converted = internal::convert_negative< T >( in, 1 );
-         }
-         else {
-            st.converted = internal::convert_positive< T >( in, std::size_t( c == '+' ) );
+      template< typename Input, typename Signed >
+      static auto apply( const Input& in, Signed& st ) -> std::enable_if_t< std::is_signed_v< Signed >, void >
+      {
+         st = 0;  // This function "only" offers basic exception safety.
+         if( !internal::convert_signed( st, in.string_view() ) ) {
+            throw parse_error( "signed integer overflow", in );
          }
       }
+
+      template< typename Input, typename State >
+      static auto apply( const Input& in, State& st ) -> std::enable_if_t< std::is_class_v< State >, void >
+      {
+         apply( in, st.converted );  // Compatibility for pre-3.0 behaviour.
+      }
+
+      template< typename Input, typename Signed, typename... Ts >
+      static auto apply( const Input& in, std::vector< Signed, Ts... >& st ) -> std::enable_if_t< std::is_signed_v< Signed >, void >
+      {
+         Signed s = 0;
+         apply( in, s );
+         st.emplace_back( s );
+      }
+   };
+
+   struct signed_rule
+   {
+      using analyze_t = internal::signed_rule_new::analyze_t;
+
+      template< apply_mode A,
+                rewind_mode M,
+                template< typename... >
+                class Action,
+                template< typename... >
+                class Control,
+                typename Input,
+                typename... States >
+      [[nodiscard]] static bool match( Input& in, States&&... /*unused*/ ) noexcept( noexcept( in.empty() ) )
+      {
+         return TAO_PEGTL_NAMESPACE::parse< internal::signed_rule_new >( in );  // Does not check for any overflow.
+      }
+   };
+
+   namespace internal
+   {
+      template< typename Rule >
+      struct signed_action_action
+         : nothing< Rule >
+      {
+      };
+
+      template<>
+      struct signed_action_action< signed_rule_new >
+         : signed_action
+      {
+      };
+
+   }  // namespace internal
+
+   struct signed_rule_with_action
+   {
+      using analyze_t = internal::signed_rule_new::analyze_t;
+
+      template< apply_mode A,
+                rewind_mode M,
+                template< typename... >
+                class Action,
+                template< typename... >
+                class Control,
+                typename Input,
+                typename... States >
+      [[nodiscard]] static auto match( Input& in, States&&... /*unused*/ ) noexcept( noexcept( in.empty() ) ) -> std::enable_if_t< A == apply_mode::nothing, bool >
+      {
+         return TAO_PEGTL_NAMESPACE::parse< internal::signed_rule_new >( in );  // Does not check for any overflow.
+      }
+
+      template< apply_mode A,
+                rewind_mode M,
+                template< typename... >
+                class Action,
+                template< typename... >
+                class Control,
+                typename Input,
+                typename Signed >
+      [[nodiscard]] static auto match( Input& in, Signed& st ) -> std::enable_if_t< ( A == apply_mode::action ) && std::is_signed_v< Signed >, bool >
+      {
+         return TAO_PEGTL_NAMESPACE::parse< internal::signed_rule_new, internal::signed_action_action >( in, st );  // Throws on overflow.
+      }
+
+      // TODO: Overload for st.converted?
+      // TODO: Overload for std::vector< Signed >?
    };
 
 }  // namespace TAO_PEGTL_NAMESPACE::integer
diff --git a/packages/PEGTL/include/tao/pegtl/contrib/json.hpp b/packages/PEGTL/include/tao/pegtl/contrib/json.hpp
index 76564b5ef..a105f0ef8 100644
--- a/packages/PEGTL/include/tao/pegtl/contrib/json.hpp
+++ b/packages/PEGTL/include/tao/pegtl/contrib/json.hpp
@@ -9,8 +9,6 @@
 #include "../rules.hpp"
 #include "../utf8.hpp"
 
-#include "abnf.hpp"
-
 namespace TAO_PEGTL_NAMESPACE::json
 {
    // JSON grammar according to RFC 8259
@@ -32,13 +30,13 @@ namespace TAO_PEGTL_NAMESPACE::json
    struct null : string< 'n', 'u', 'l', 'l' > {};
    struct true_ : string< 't', 'r', 'u', 'e' > {};
 
-   struct digits : plus< abnf::DIGIT > {};
+   struct digits : plus< digit > {};
    struct exp : seq< one< 'e', 'E' >, opt< one< '-', '+'> >, must< digits > > {};
    struct frac : if_must< one< '.' >, digits > {};
    struct int_ : sor< one< '0' >, digits > {};
    struct number : seq< opt< one< '-' > >, int_, opt< frac >, opt< exp > > {};
 
-   struct xdigit : abnf::HEXDIG {};
+   struct xdigit : pegtl::xdigit {};
    struct unicode : list< seq< one< 'u' >, rep< 4, must< xdigit > > >, one< '\\' > > {};
    struct escaped_char : one< '"', '\\', '/', 'b', 'f', 'n', 'r', 't' > {};
    struct escaped : sor< escaped_char, unicode > {};
diff --git a/packages/PEGTL/include/tao/pegtl/contrib/json_pointer.hpp b/packages/PEGTL/include/tao/pegtl/contrib/json_pointer.hpp
new file mode 100644
index 000000000..d03c8364e
--- /dev/null
+++ b/packages/PEGTL/include/tao/pegtl/contrib/json_pointer.hpp
@@ -0,0 +1,33 @@
+// Copyright (c) 2019 Dr. Colin Hirsch and Daniel Frey
+// Please see LICENSE for license or visit https://github.com/taocpp/PEGTL/
+
+#ifndef TAO_PEGTL_CONTRIB_JSON_POINTER_HPP
+#define TAO_PEGTL_CONTRIB_JSON_POINTER_HPP
+
+#include "../ascii.hpp"
+#include "../config.hpp"
+#include "../rules.hpp"
+#include "../utf8.hpp"
+
+namespace TAO_PEGTL_NAMESPACE::json_pointer
+{
+   // JSON pointer grammar according to RFC 6901
+
+   // clang-format off
+   struct unescaped : utf8::ranges< 0x0, 0x2E, 0x30, 0x7D, 0x7F, 0x10FFFF > {};
+   struct escaped : seq< one< '~' >, one< '0', '1' > > {};
+
+   struct reference_token : star< sor< unescaped, escaped > > {};
+   struct json_pointer : star< one< '/' >, reference_token > {};
+   // clang-format on
+
+   // relative JSON pointer, see ...
+
+   // clang-format off
+   struct non_negative_integer : sor< one< '0' >, plus< digit > > {};
+   struct relative_json_pointer : seq< non_negative_integer, sor< one< '#' >, json_pointer > > {};
+   // clang-format on
+
+}  // namespace TAO_PEGTL_NAMESPACE::json_pointer
+
+#endif
diff --git a/packages/PEGTL/include/tao/pegtl/contrib/uri.hpp b/packages/PEGTL/include/tao/pegtl/contrib/uri.hpp
index 06f5e7cf8..2a391bd69 100644
--- a/packages/PEGTL/include/tao/pegtl/contrib/uri.hpp
+++ b/packages/PEGTL/include/tao/pegtl/contrib/uri.hpp
@@ -4,12 +4,15 @@
 #ifndef TAO_PEGTL_CONTRIB_URI_HPP
 #define TAO_PEGTL_CONTRIB_URI_HPP
 
+#include <cstdint>
+
 #include "../ascii.hpp"
 #include "../config.hpp"
 #include "../rules.hpp"
 #include "../utf8.hpp"
 
 #include "abnf.hpp"
+#include "integer.hpp"
 
 namespace TAO_PEGTL_NAMESPACE::uri
 {
@@ -25,11 +28,7 @@ namespace TAO_PEGTL_NAMESPACE::uri
    using colon = one< ':' >;
 
    // clang-format off
-   struct dec_octet : sor< one< '0' >,
-                           rep_min_max< 1, 2, abnf::DIGIT >,
-                           seq< one< '1' >, abnf::DIGIT, abnf::DIGIT >,
-                           seq< one< '2' >, range< '0', '4' >, abnf::DIGIT >,
-                           seq< string< '2', '5' >, range< '0', '5' > > > {};
+   struct dec_octet : integer::maximum_rule< std::uint8_t > {};
 
    struct IPv4address : seq< dec_octet, dot, dec_octet, dot, dec_octet, dot, dec_octet > {};
 
diff --git a/packages/PEGTL/src/test/pegtl/ascii_forty_two.cpp b/packages/PEGTL/src/test/pegtl/ascii_forty_two.cpp
index 4e79fdd9d..e1224b2d6 100644
--- a/packages/PEGTL/src/test/pegtl/ascii_forty_two.cpp
+++ b/packages/PEGTL/src/test/pegtl/ascii_forty_two.cpp
@@ -16,19 +16,19 @@ namespace TAO_PEGTL_NAMESPACE
          verify_rule< forty_two< 'a' > >( __LINE__, __FILE__, std::string( i, 'a' ), result_type::local_failure );
       }
       for( std::size_t i = 42; i < 100; ++i ) {
-         verify_rule< forty_two< 'a' > >( __LINE__, __FILE__, std::string( i, 'a' ), result_type::success, i - 42 );
+         verify_rule< forty_two< 'a' > >( __LINE__, __FILE__, std::string( i, 'a' ), result_type::success, int( i - 42 ) );
       }
       for( std::size_t i = 0; i < 42; ++i ) {
          verify_rule< forty_two< 'a', 'z' > >( __LINE__, __FILE__, std::string( i, 'a' ), result_type::local_failure );
       }
       for( std::size_t i = 42; i < 100; ++i ) {
-         verify_rule< forty_two< 'a', 'z' > >( __LINE__, __FILE__, std::string( i, 'a' ), result_type::success, i - 42 );
+         verify_rule< forty_two< 'a', 'z' > >( __LINE__, __FILE__, std::string( i, 'a' ), result_type::success, int( i - 42 ) );
       }
       for( std::size_t i = 0; i < 42; ++i ) {
          verify_rule< forty_two< 'a', 'z' > >( __LINE__, __FILE__, std::string( i, 'z' ), result_type::local_failure );
       }
       for( std::size_t i = 42; i < 100; ++i ) {
-         verify_rule< forty_two< 'a', 'z' > >( __LINE__, __FILE__, std::string( i, 'z' ), result_type::success, i - 42 );
+         verify_rule< forty_two< 'a', 'z' > >( __LINE__, __FILE__, std::string( i, 'z' ), result_type::success, int( i - 42 ) );
       }
       verify_rule< forty_two< 'a', 'z' > >( __LINE__, __FILE__, "azzaazaazaaazzzaaaazzaaazzaazazzzaazzazaza", result_type::success );
    }
diff --git a/packages/PEGTL/src/test/pegtl/contrib_integer.cpp b/packages/PEGTL/src/test/pegtl/contrib_integer.cpp
index a6f3d9a52..e819cdc6d 100644
--- a/packages/PEGTL/src/test/pegtl/contrib_integer.cpp
+++ b/packages/PEGTL/src/test/pegtl/contrib_integer.cpp
@@ -6,6 +6,8 @@
 
 #include "test.hpp"
 
+#include "verify_rule.hpp"
+
 #include <tao/pegtl/contrib/integer.hpp>
 
 namespace TAO_PEGTL_NAMESPACE
@@ -18,6 +20,7 @@ namespace TAO_PEGTL_NAMESPACE
 
    template< typename Rule >
    struct int_action
+      : nothing< Rule >
    {};
 
    template<>
@@ -33,10 +36,24 @@ namespace TAO_PEGTL_NAMESPACE
    template< typename S >
    void test_signed( const std::string& i, const S s )
    {
-      int_state< S > st;
-      memory_input in( i, __FUNCTION__ );
-      parse< must< integer::signed_rule, eof >, int_action >( in, st );
-      TAO_PEGTL_TEST_ASSERT( st.converted == s );
+      {
+         S st = -123;
+         memory_input in( i, __FUNCTION__ );
+         parse< must< integer::signed_rule, eof >, int_action >( in, st );
+         TAO_PEGTL_TEST_ASSERT( st == s );
+      }
+      {
+         int_state< S > st;
+         memory_input in( i, __FUNCTION__ );
+         parse< must< integer::signed_rule, eof >, int_action >( in, st );
+         TAO_PEGTL_TEST_ASSERT( st.converted == s );
+      }
+      {
+         S st = -123;
+         memory_input in( i, __FUNCTION__ );
+         parse< must< integer::signed_rule_with_action, eof > >( in, st );
+         TAO_PEGTL_TEST_ASSERT( st == s );
+      }
    }
 
    template< typename S >
@@ -68,16 +85,30 @@ namespace TAO_PEGTL_NAMESPACE
    template< typename S >
    void test_unsigned( const std::string& i, const S s )
    {
-      int_state< S > st;
-      memory_input in( i, __FUNCTION__ );
-      parse< must< integer::unsigned_rule, eof >, int_action >( in, st );
-      TAO_PEGTL_TEST_ASSERT( st.converted == s );
+      {
+         S st = 123;
+         memory_input in( i, __FUNCTION__ );
+         parse< must< integer::unsigned_rule, eof >, int_action >( in, st );
+         TAO_PEGTL_TEST_ASSERT( st == s );
+      }
+      {
+         int_state< S > st;
+         memory_input in( i, __FUNCTION__ );
+         parse< must< integer::unsigned_rule, eof >, int_action >( in, st );
+         TAO_PEGTL_TEST_ASSERT( st.converted == s );
+      }
+      {
+         S st = 123;
+         memory_input in( i, __FUNCTION__ );
+         parse< must< integer::unsigned_rule_with_action, eof > >( in, st );
+         TAO_PEGTL_TEST_ASSERT( st == s );
+      }
    }
 
    template< typename S >
    void test_unsigned( const std::string& i )
    {
-      int_state< S > st;
+      S st = 123;
       memory_input in( i, __FUNCTION__ );
       TAO_PEGTL_TEST_THROWS( parse< must< integer::unsigned_rule, eof >, int_action >( in, st ) );
    }
@@ -85,15 +116,22 @@ namespace TAO_PEGTL_NAMESPACE
    template< typename S >
    void test_unsigned( const S s )
    {
-      int_state< S > st;
+      S st = 123;
       const auto i = lexical_cast( s );
       memory_input in( i, __FUNCTION__ );
       parse< must< integer::unsigned_rule, eof >, int_action >( in, st );
-      TAO_PEGTL_TEST_ASSERT( st.converted == s );
+      TAO_PEGTL_TEST_ASSERT( st == s );
    }
 
+   template< auto M > using max_seq_rule = seq< one< 'a' >, integer::maximum_rule< std::uint64_t, M >, one< 'b' >, eof >;
+
    void unit_test()
    {
+      test_signed< signed char >( "" );
+      test_signed< signed char >( "-" );
+      test_signed< signed char >( "+" );
+      test_signed< signed char >( "a" );
+
       test_signed< signed char >( "--0" );
       test_signed< signed char >( "++0" );
       test_signed< signed char >( "-+0" );
@@ -101,32 +139,44 @@ namespace TAO_PEGTL_NAMESPACE
       test_signed< signed char >( "0", 0 );
       test_signed< signed char >( "+0", 0 );
       test_signed< signed char >( "-0", 0 );
-      test_signed< signed char >( "000", 0 );
-      test_signed< signed char >( "+000", 0 );
-      test_signed< signed char >( "-000", 0 );
+      test_signed< signed char >( "000" );
+
+      test_signed< signed char >( "+000" );
+      test_signed< signed char >( "-000" );
 
       test_signed< signed char >( "127", 127 );
+      test_signed< signed char >( "0127" );
 
       test_signed< signed char >( "-1", -1 );
-      test_signed< signed char >( "-001", -1 );
+      test_signed< signed char >( "-01" );
+      test_signed< signed char >( "-001" );
 
       test_signed< signed char >( "-127", -127 );
       test_signed< signed char >( "-128", -128 );
 
       test_signed< signed char >( "128" );
       test_signed< signed char >( "-129" );
+      test_signed< signed char >( "0128" );
       test_signed< signed char >( "00128" );
+      test_signed< signed char >( "-0129" );
       test_signed< signed char >( "-00129" );
 
+      test_unsigned< unsigned char >( "" );
+      test_unsigned< unsigned char >( "-" );
+      test_unsigned< unsigned char >( "+" );
+      test_unsigned< unsigned char >( "a" );
+
       test_unsigned< unsigned char >( "-0" );
       test_unsigned< unsigned char >( "+1" );
 
       test_unsigned< unsigned char >( "0", 0 );
-      test_unsigned< unsigned char >( "000", 0 );
+      test_unsigned< unsigned char >( "000" );
       test_unsigned< unsigned char >( "0", 0 );
       test_unsigned< unsigned char >( "255", 255 );
-      test_unsigned< unsigned char >( "000255", 255 );
+      test_unsigned< unsigned char >( "0255" );
+      test_unsigned< unsigned char >( "000255" );
       test_unsigned< unsigned char >( "256" );
+      test_unsigned< unsigned char >( "0256" );
       test_unsigned< unsigned char >( "000256" );
 
       test_signed< signed long long >( "0", 0 );
@@ -135,6 +185,76 @@ namespace TAO_PEGTL_NAMESPACE
 
       test_unsigned< unsigned long long >( "0", 0 );
       test_unsigned< unsigned long long >( ( std::numeric_limits< unsigned long long >::max )() );
+
+      verify_rule< max_seq_rule< 0 > >( __LINE__, __FILE__, "a0b", result_type::success );
+      verify_rule< max_seq_rule< 0 > >( __LINE__, __FILE__, "ab", result_type::local_failure );
+      verify_rule< max_seq_rule< 0 > >( __LINE__, __FILE__, "a1b", result_type::global_failure );
+      verify_rule< max_seq_rule< 0 > >( __LINE__, __FILE__, "a9b", result_type::global_failure );
+      verify_rule< max_seq_rule< 0 > >( __LINE__, __FILE__, "a11b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 1 > >( __LINE__, __FILE__, "a0b", result_type::success );
+      verify_rule< max_seq_rule< 1 > >( __LINE__, __FILE__, "a1b", result_type::success );
+      verify_rule< max_seq_rule< 1 > >( __LINE__, __FILE__, "ab", result_type::local_failure );
+      verify_rule< max_seq_rule< 1 > >( __LINE__, __FILE__, "a2b", result_type::global_failure );
+      verify_rule< max_seq_rule< 1 > >( __LINE__, __FILE__, "a9b", result_type::global_failure );
+      verify_rule< max_seq_rule< 1 > >( __LINE__, __FILE__, "a11b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 2 > >( __LINE__, __FILE__, "a0b", result_type::success );
+      verify_rule< max_seq_rule< 2 > >( __LINE__, __FILE__, "a1b", result_type::success );
+      verify_rule< max_seq_rule< 2 > >( __LINE__, __FILE__, "a2b", result_type::success );
+      verify_rule< max_seq_rule< 2 > >( __LINE__, __FILE__, "ab", result_type::local_failure );
+      verify_rule< max_seq_rule< 2 > >( __LINE__, __FILE__, "a3b", result_type::global_failure );
+      verify_rule< max_seq_rule< 2 > >( __LINE__, __FILE__, "a9b", result_type::global_failure );
+      verify_rule< max_seq_rule< 2 > >( __LINE__, __FILE__, "a11b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 3 > >( __LINE__, __FILE__, "a0b", result_type::success );
+      verify_rule< max_seq_rule< 3 > >( __LINE__, __FILE__, "a3b", result_type::success );
+      verify_rule< max_seq_rule< 3 > >( __LINE__, __FILE__, "ab", result_type::local_failure );
+      verify_rule< max_seq_rule< 3 > >( __LINE__, __FILE__, "a4b", result_type::global_failure );
+      verify_rule< max_seq_rule< 3 > >( __LINE__, __FILE__, "a11b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 4 > >( __LINE__, __FILE__, "a5b", result_type::global_failure );
+      verify_rule< max_seq_rule< 4 > >( __LINE__, __FILE__, "a11b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 9 > >( __LINE__, __FILE__, "a0b", result_type::success );
+      verify_rule< max_seq_rule< 9 > >( __LINE__, __FILE__, "a9b", result_type::success );
+      verify_rule< max_seq_rule< 9 > >( __LINE__, __FILE__, "ab", result_type::local_failure );
+      verify_rule< max_seq_rule< 9 > >( __LINE__, __FILE__, "a10b", result_type::global_failure );
+      verify_rule< max_seq_rule< 9 > >( __LINE__, __FILE__, "a11b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 10 > >( __LINE__, __FILE__, "a0b", result_type::success );
+      verify_rule< max_seq_rule< 10 > >( __LINE__, __FILE__, "a9b", result_type::success );
+      verify_rule< max_seq_rule< 10 > >( __LINE__, __FILE__, "a10b", result_type::success );
+      verify_rule< max_seq_rule< 10 > >( __LINE__, __FILE__, "ab", result_type::local_failure );
+      verify_rule< max_seq_rule< 10 > >( __LINE__, __FILE__, "a11b", result_type::global_failure );
+      verify_rule< max_seq_rule< 10 > >( __LINE__, __FILE__, "a19b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 11 > >( __LINE__, __FILE__, "a0b", result_type::success );
+      verify_rule< max_seq_rule< 11 > >( __LINE__, __FILE__, "a9b", result_type::success );
+      verify_rule< max_seq_rule< 11 > >( __LINE__, __FILE__, "a10b", result_type::success );
+      verify_rule< max_seq_rule< 11 > >( __LINE__, __FILE__, "a11b", result_type::success );
+      verify_rule< max_seq_rule< 11 > >( __LINE__, __FILE__, "ab", result_type::local_failure );
+      verify_rule< max_seq_rule< 11 > >( __LINE__, __FILE__, "a12b", result_type::global_failure );
+      verify_rule< max_seq_rule< 11 > >( __LINE__, __FILE__, "a13b", result_type::global_failure );
+      verify_rule< max_seq_rule< 11 > >( __LINE__, __FILE__, "a111b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "a0b", result_type::success );
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "a1b", result_type::success );
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "a9b", result_type::success );
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "a10b", result_type::success );
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "a11b", result_type::success );
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "a12b", result_type::success );
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "ab", result_type::local_failure );
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "a13b", result_type::global_failure );
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "a19b", result_type::global_failure );
+      verify_rule< max_seq_rule< 12 > >( __LINE__, __FILE__, "a111b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 18446744073709551614ULL > >( __LINE__, __FILE__, "a18446744073709551614b", result_type::success );
+      verify_rule< max_seq_rule< 18446744073709551614ULL > >( __LINE__, __FILE__, "a18446744073709551615b", result_type::global_failure );
+
+      verify_rule< max_seq_rule< 18446744073709551615ULL > >( __LINE__, __FILE__, "a18446744073709551615b", result_type::success );
+      verify_rule< max_seq_rule< 18446744073709551615ULL > >( __LINE__, __FILE__, "a18446744073709551616b", result_type::global_failure );
+      verify_rule< max_seq_rule< 18446744073709551615ULL > >( __LINE__, __FILE__, "a98446744073709551614b", result_type::global_failure );
    }
 
 }  // namespace TAO_PEGTL_NAMESPACE
diff --git a/packages/PEGTL/src/test/pegtl/rule_rematch.cpp b/packages/PEGTL/src/test/pegtl/rule_rematch.cpp
index d6d384469..0cc22500f 100644
--- a/packages/PEGTL/src/test/pegtl/rule_rematch.cpp
+++ b/packages/PEGTL/src/test/pegtl/rule_rematch.cpp
@@ -9,11 +9,11 @@ namespace TAO_PEGTL_NAMESPACE
 {
    void unit_test()
    {
-      verify_rule< rematch< one< 'c' > > >( __LINE__, __FILE__, "c", result_type::success, 0 );
-      verify_rule< rematch< one< 'c' > > >( __LINE__, __FILE__, "a", result_type::local_failure, 1 );
-      verify_rule< rematch< one< 'c' > > >( __LINE__, __FILE__, "b", result_type::local_failure, 1 );
+      verify_rule< rematch< one< 'c' > > >( __LINE__, __FILE__, "c", result_type::success );
+      verify_rule< rematch< one< 'c' > > >( __LINE__, __FILE__, "a", result_type::local_failure );
+      verify_rule< rematch< one< 'c' > > >( __LINE__, __FILE__, "b", result_type::local_failure );
       verify_rule< rematch< one< 'c' > > >( __LINE__, __FILE__, "cc", result_type::success, 1 );
-      verify_rule< rematch< one< 'c' > > >( __LINE__, __FILE__, "bc", result_type::local_failure, 2 );
+      verify_rule< rematch< one< 'c' > > >( __LINE__, __FILE__, "bc", result_type::local_failure );
 
       verify_analyze< rematch< alpha, digit > >( __LINE__, __FILE__, true, false );
       verify_analyze< rematch< opt< alpha >, digit > >( __LINE__, __FILE__, false, false );
@@ -45,12 +45,12 @@ namespace TAO_PEGTL_NAMESPACE
       verify_rule< rematch< alnum, success, digit > >( __LINE__, __FILE__, "12", result_type::success, 1 );
       verify_rule< rematch< alnum, success, digit > >( __LINE__, __FILE__, "1c", result_type::success, 1 );
 
-      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "", result_type::local_failure, 0 );
-      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "1", result_type::success, 0 );
-      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "a", result_type::local_failure, 1 );
-      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "%", result_type::local_failure, 1 );
+      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "", result_type::local_failure );
+      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "1", result_type::success );
+      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "a", result_type::local_failure );
+      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "%", result_type::local_failure );
       verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "1%", result_type::success, 1 );
-      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "a%", result_type::local_failure, 1 );
+      verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "a%", result_type::local_failure );
       verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "12", result_type::success, 0 );
       verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "1c", result_type::success, 0 );
       verify_rule< rematch< plus< alnum >, digit > >( __LINE__, __FILE__, "aa", result_type::local_failure, 2 );
@@ -62,7 +62,7 @@ namespace TAO_PEGTL_NAMESPACE
       verify_rule< rematch< plus< alnum >, plus< digit > > >( __LINE__, __FILE__, "a", result_type::local_failure, 1 );
       verify_rule< rematch< plus< alnum >, plus< digit > > >( __LINE__, __FILE__, "%", result_type::local_failure, 1 );
       verify_rule< rematch< plus< alnum >, plus< digit > > >( __LINE__, __FILE__, "1%", result_type::success, 1 );
-      verify_rule< rematch< plus< alnum >, plus< digit > > >( __LINE__, __FILE__, "a%", result_type::local_failure, 1 );
+      verify_rule< rematch< plus< alnum >, plus< digit > > >( __LINE__, __FILE__, "a%", result_type::local_failure );
       verify_rule< rematch< plus< alnum >, plus< digit > > >( __LINE__, __FILE__, "12", result_type::success, 0 );
       verify_rule< rematch< plus< alnum >, plus< digit > > >( __LINE__, __FILE__, "1c", result_type::success, 0 );
       verify_rule< rematch< plus< alnum >, plus< digit > > >( __LINE__, __FILE__, "aa", result_type::local_failure, 2 );
diff --git a/packages/PEGTL/src/test/pegtl/utf16_general.cpp b/packages/PEGTL/src/test/pegtl/utf16_general.cpp
index 1a9521612..fd8407494 100644
--- a/packages/PEGTL/src/test/pegtl/utf16_general.cpp
+++ b/packages/PEGTL/src/test/pegtl/utf16_general.cpp
@@ -29,114 +29,114 @@ namespace TAO_PEGTL_NAMESPACE
 
    void test_utf16()
    {
-      verify_rule< utf16::any >( __LINE__, __FILE__, "", result_type::local_failure, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, "\x01", result_type::local_failure, 1 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, "\xff", result_type::local_failure, 1 );
-
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0 ), result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 1 ), result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, "  ", result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0x00ff ), result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0x0100 ), result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0x0fff ), result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0x1000 ), result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ), result_type::local_failure, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd900 ), result_type::local_failure, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xde00 ), result_type::local_failure, 0 );
+      verify_rule< utf16::any >( __LINE__, __FILE__, "", result_type::local_failure );
+      verify_rule< utf16::any >( __LINE__, __FILE__, "\x01", result_type::local_failure );
+      verify_rule< utf16::any >( __LINE__, __FILE__, "\xff", result_type::local_failure );
+
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0 ), result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 1 ), result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, "  ", result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0x00ff ), result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0x0100 ), result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0x0fff ), result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0x1000 ), result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ), result_type::local_failure );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd900 ), result_type::local_failure );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xde00 ), result_type::local_failure );
       verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xfffe ) + " ", result_type::success, 1 );
       verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xffff ) + "  ", result_type::success, 2 );
 
       verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd7ff ) + u16s( 0xdfff ), result_type::success, 2 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xdc00 ) + u16s( 0xdfff ), result_type::local_failure, 4 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ) + u16s( 0x0020 ), result_type::local_failure, 4 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ) + u16s( 0xff20 ), result_type::local_failure, 4 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ) + u16s( 0xdf00 ), result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ) + u16s( 0xdfff ), result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xdbff ) + u16s( 0xdc00 ), result_type::success, 0 );
-      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xdbff ) + u16s( 0xdfff ), result_type::success, 0 );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xdc00 ) + u16s( 0xdfff ), result_type::local_failure );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ) + u16s( 0x0020 ), result_type::local_failure );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ) + u16s( 0xff20 ), result_type::local_failure );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ) + u16s( 0xdf00 ), result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xd800 ) + u16s( 0xdfff ), result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xdbff ) + u16s( 0xdc00 ), result_type::success );
+      verify_rule< utf16::any >( __LINE__, __FILE__, u16s( 0xdbff ) + u16s( 0xdfff ), result_type::success );
 
-      verify_rule< utf16::one< 0x20 > >( __LINE__, __FILE__, u16s( 0x20 ), result_type::success, 0 );
-      verify_rule< utf16::one< 0x20ac > >( __LINE__, __FILE__, u16s( 0x20ac ), result_type::success, 0 );
-      verify_rule< utf16::one< 0x10437 > >( __LINE__, __FILE__, u16s( 0xd801 ) + u16s( 0xdc37 ), result_type::success, 0 );
+      verify_rule< utf16::one< 0x20 > >( __LINE__, __FILE__, u16s( 0x20 ), result_type::success );
+      verify_rule< utf16::one< 0x20ac > >( __LINE__, __FILE__, u16s( 0x20ac ), result_type::success );
+      verify_rule< utf16::one< 0x10437 > >( __LINE__, __FILE__, u16s( 0xd801 ) + u16s( 0xdc37 ), result_type::success );
 
-      verify_rule< utf16::bom >( __LINE__, __FILE__, u16s( 0xfeff ), result_type::success, 0 );
-      verify_rule< utf16::bom >( __LINE__, __FILE__, u16s( 0xfffe ), result_type::local_failure, 2 );
+      verify_rule< utf16::bom >( __LINE__, __FILE__, u16s( 0xfeff ), result_type::success );
+      verify_rule< utf16::bom >( __LINE__, __FILE__, u16s( 0xfffe ), result_type::local_failure );
 
       verify_rule< utf16::string< 0x20, 0x20ac, 0x10437 > >( __LINE__, __FILE__, u16s( 0x20 ) + u16s( 0x20ac ) + u16s( 0xd801 ) + u16s( 0xdc37 ) + u16s( 0x20 ), result_type::success, 2 );
    }
 
    void test_utf16_be()
    {
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, "", result_type::local_failure, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, "\x01", result_type::local_failure, 1 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, "\xff", result_type::local_failure, 1 );
-
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0 ), result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 1 ), result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, "  ", result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0x00ff ), result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0x0100 ), result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0x0fff ), result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0x1000 ), result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ), result_type::local_failure, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd900 ), result_type::local_failure, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xde00 ), result_type::local_failure, 0 );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, "", result_type::local_failure );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, "\x01", result_type::local_failure );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, "\xff", result_type::local_failure );
+
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0 ), result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 1 ), result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, "  ", result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0x00ff ), result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0x0100 ), result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0x0fff ), result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0x1000 ), result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ), result_type::local_failure );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd900 ), result_type::local_failure );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xde00 ), result_type::local_failure );
       verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xfffe ) + " ", result_type::success, 1 );
       verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xffff ) + "  ", result_type::success, 2 );
 
       verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd7ff ) + u16s_be( 0xdfff ), result_type::success, 2 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xdc00 ) + u16s_be( 0xdfff ), result_type::local_failure, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ) + u16s_be( 0x0020 ), result_type::local_failure, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ) + u16s_be( 0xff20 ), result_type::local_failure, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ) + u16s_be( 0xdf00 ), result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ) + u16s_be( 0xdfff ), result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xdbff ) + u16s_be( 0xdc00 ), result_type::success, 0 );
-      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xdbff ) + u16s_be( 0xdfff ), result_type::success, 0 );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xdc00 ) + u16s_be( 0xdfff ), result_type::local_failure );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ) + u16s_be( 0x0020 ), result_type::local_failure );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ) + u16s_be( 0xff20 ), result_type::local_failure );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ) + u16s_be( 0xdf00 ), result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xd800 ) + u16s_be( 0xdfff ), result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xdbff ) + u16s_be( 0xdc00 ), result_type::success );
+      verify_rule< utf16_be::any >( __LINE__, __FILE__, u16s_be( 0xdbff ) + u16s_be( 0xdfff ), result_type::success );
 
-      verify_rule< utf16_be::one< 0x20 > >( __LINE__, __FILE__, u16s_be( 0x20 ), result_type::success, 0 );
-      verify_rule< utf16_be::one< 0x20ac > >( __LINE__, __FILE__, u16s_be( 0x20ac ), result_type::success, 0 );
-      verify_rule< utf16_be::one< 0x10437 > >( __LINE__, __FILE__, u16s_be( 0xd801 ) + u16s_be( 0xdc37 ), result_type::success, 0 );
+      verify_rule< utf16_be::one< 0x20 > >( __LINE__, __FILE__, u16s_be( 0x20 ), result_type::success );
+      verify_rule< utf16_be::one< 0x20ac > >( __LINE__, __FILE__, u16s_be( 0x20ac ), result_type::success );
+      verify_rule< utf16_be::one< 0x10437 > >( __LINE__, __FILE__, u16s_be( 0xd801 ) + u16s_be( 0xdc37 ), result_type::success );
 
-      verify_rule< utf16_be::bom >( __LINE__, __FILE__, u16s_be( 0xfeff ), result_type::success, 0 );
-      verify_rule< utf16_be::bom >( __LINE__, __FILE__, u16s_be( 0xfffe ), result_type::local_failure, 2 );
+      verify_rule< utf16_be::bom >( __LINE__, __FILE__, u16s_be( 0xfeff ), result_type::success );
+      verify_rule< utf16_be::bom >( __LINE__, __FILE__, u16s_be( 0xfffe ), result_type::local_failure );
 
       verify_rule< utf16_be::string< 0x20, 0x20ac, 0x10437 > >( __LINE__, __FILE__, u16s_be( 0x20 ) + u16s_be( 0x20ac ) + u16s_be( 0xd801 ) + u16s_be( 0xdc37 ) + u16s_be( 0x20 ), result_type::success, 2 );
    }
 
    void test_utf16_le()
    {
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, "", result_type::local_failure, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, "\x01", result_type::local_failure, 1 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, "\xff", result_type::local_failure, 1 );
-
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0 ), result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 1 ), result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, "  ", result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0x00ff ), result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0x0100 ), result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0x0fff ), result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0x1000 ), result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ), result_type::local_failure, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd900 ), result_type::local_failure, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xde00 ), result_type::local_failure, 0 );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, "", result_type::local_failure );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, "\x01", result_type::local_failure );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, "\xff", result_type::local_failure );
+
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0 ), result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 1 ), result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, "  ", result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0x00ff ), result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0x0100 ), result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0x0fff ), result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0x1000 ), result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ), result_type::local_failure );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd900 ), result_type::local_failure );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xde00 ), result_type::local_failure );
       verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xfffe ) + " ", result_type::success, 1 );
       verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xffff ) + "  ", result_type::success, 2 );
 
       verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd7ff ) + u16s_le( 0xdfff ), result_type::success, 2 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xdc00 ) + u16s_le( 0xdfff ), result_type::local_failure, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ) + u16s_le( 0x0020 ), result_type::local_failure, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ) + u16s_le( 0xff20 ), result_type::local_failure, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ) + u16s_le( 0xdf00 ), result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ) + u16s_le( 0xdfff ), result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xdbff ) + u16s_le( 0xdc00 ), result_type::success, 0 );
-      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xdbff ) + u16s_le( 0xdfff ), result_type::success, 0 );
-
-      verify_rule< utf16_le::one< 0x20 > >( __LINE__, __FILE__, u16s_le( 0x20 ), result_type::success, 0 );
-      verify_rule< utf16_le::one< 0x20ac > >( __LINE__, __FILE__, u16s_le( 0x20ac ), result_type::success, 0 );
-      verify_rule< utf16_le::one< 0x10437 > >( __LINE__, __FILE__, u16s_le( 0xd801 ) + u16s_le( 0xdc37 ), result_type::success, 0 );
-
-      verify_rule< utf16_le::bom >( __LINE__, __FILE__, u16s_le( 0xfeff ), result_type::success, 0 );
-      verify_rule< utf16_le::bom >( __LINE__, __FILE__, u16s_le( 0xfffe ), result_type::local_failure, 2 );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xdc00 ) + u16s_le( 0xdfff ), result_type::local_failure );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ) + u16s_le( 0x0020 ), result_type::local_failure );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ) + u16s_le( 0xff20 ), result_type::local_failure );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ) + u16s_le( 0xdf00 ), result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xd800 ) + u16s_le( 0xdfff ), result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xdbff ) + u16s_le( 0xdc00 ), result_type::success );
+      verify_rule< utf16_le::any >( __LINE__, __FILE__, u16s_le( 0xdbff ) + u16s_le( 0xdfff ), result_type::success );
+
+      verify_rule< utf16_le::one< 0x20 > >( __LINE__, __FILE__, u16s_le( 0x20 ), result_type::success );
+      verify_rule< utf16_le::one< 0x20ac > >( __LINE__, __FILE__, u16s_le( 0x20ac ), result_type::success );
+      verify_rule< utf16_le::one< 0x10437 > >( __LINE__, __FILE__, u16s_le( 0xd801 ) + u16s_le( 0xdc37 ), result_type::success );
+
+      verify_rule< utf16_le::bom >( __LINE__, __FILE__, u16s_le( 0xfeff ), result_type::success );
+      verify_rule< utf16_le::bom >( __LINE__, __FILE__, u16s_le( 0xfffe ), result_type::local_failure );
 
       verify_rule< utf16_le::string< 0x20, 0x20ac, 0x10437 > >( __LINE__, __FILE__, u16s_le( 0x20 ) + u16s_le( 0x20ac ) + u16s_le( 0xd801 ) + u16s_le( 0xdc37 ) + u16s_le( 0x20 ), result_type::success, 2 );
    }
diff --git a/packages/PEGTL/src/test/pegtl/verify_rule.hpp b/packages/PEGTL/src/test/pegtl/verify_rule.hpp
index a6a8ef4a8..e8c516f6c 100644
--- a/packages/PEGTL/src/test/pegtl/verify_rule.hpp
+++ b/packages/PEGTL/src/test/pegtl/verify_rule.hpp
@@ -35,9 +35,11 @@ namespace TAO_PEGTL_NAMESPACE
    };
 
    template< typename Rule, typename Eol = eol::lf_crlf >
-   void verify_rule( const std::size_t line, const char* file, const std::string& data, const result_type expected, std::size_t remain = 0 )
+   void verify_rule( const std::size_t line, const char* file, const std::string& data, const result_type expected, int remain = -1 )
    {
-      remain = ( expected == result_type::success ) ? remain : data.size();
+      if( remain < 0 ) {
+         remain = ( expected == result_type::success ) ? 0 : int( data.size() );
+      }
       {
          memory_input< tracking_mode::eager, Eol > in( data.data(), data.data() + data.size(), file, 0, line, 0 );
          verify_impl_one< Rule, nothing >( line, file, data, in, expected, remain );
-- 
GitLab