Yes, but:
Pike v9.0 release 2 running Hilfe v3.5 (Incremental Pike Frontend)
> object buf = Stdio.Buffer("#");
> buf->match("x");
(1) Result: 0
> buf = Stdio.Buffer("#");
(2) Result: _static_modules._Stdio()->Buffer(1 bytes, read=[..-1] data=[0..0]
free=[1..0] string)
> buf->match("#");
(3) Result: ""
> buf = Stdio.Buffer("#");
(4) Result: _static_modules._Stdio()->Buffer(1 bytes, read=[..-1] data=[0..0]
free=[1..0] string)
> buf->match("#%d");
(5) Result: ""
> buf = Stdio.Buffer("#44");
(6) Result: _static_modules._Stdio()->Buffer(3 bytes, read=[..-1] data=[0..2]
free=[3..0] string)
> buf->match("#%d");
(7) Result: 44
>
This seems mildly inconsistent. If a fixed string in the pattern
counts as a "match" with a value of "", then definitely I would expect
it to be included in the sum.