<div dir="ltr"><div dir="ltr">The problem turned out to be in a recipe I wrote.<div><div><br></div><div>My recipe nztopo.php had line  </div><div>  $plabel   = 'label=(?:(?:\'[^\']+\')|(?:"[^"]+")|(?:[\w<b style="background-color:rgb(204,0,0)">-</b>+!?()]+))'; # provide for single and double quoted strings, and unquoted string (no spaces)</div><div>now changed to</div><div>  $plabel   = 'label=(?:(?:\'[^\']+\')|(?:"[^"]+")|(?:[<b style="background-color:rgb(204,0,0)">-</b>\w+!?()]+))'; # provide for single and double quoted strings, and unquoted string (no spaces)</div><div><br></div><div>thanks to Petko for telling me so clearly what to look for.</div><div><br></div><div>ngā mihi</div><div><br></div><div>Simon</div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 17 Jun 2021 at 19:12, Petko Yotov <<a href="mailto:5ko@5ko.fr">5ko@5ko.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Oh, this may possibly be a core bug, I'd be very interested in tracking <br>
it.<br>
<br>
There is a regular expression containing minus in a character range like <br>
[a-z]. In these cases the minus sign means all characters after "a" <br>
(code point 97) and before "z" (code point 122) (like b, c,..., w, x, <br>
y).  If we need to match a literal dash, we place it at the start or at <br>
the end of the range like [-a-z].<br>
<br>
A range like [z-a] is invalid because there are no characters that are <br>
at the same time after "z" (code point higher than 122) and before "a" <br>
(code point lower than 97).<br>
<br>
Before PHP 7.3, such cases considered the minus to be a literal dash, <br>
not a range, i.e.  [z-a] only matched the characters "z", "-", "a" and <br>
they were silently processed, potentially unlike what the author <br>
intended.<br>
<br>
Since PHP 7.3, invalid character ranges raise the warning you saw.<br>
<br>
BTW [a-z] and [z-a] are easy to understand and fix, but I suspect the <br>
problem comes from something like [#%-!] or there may be an <br>
international character somewhere. If I have omitted to update the core, <br>
I'll do it, and if it is in a recipe, I can provide a fix or a <br>
workaround.<br>
<br>
At your convenience, you can start with an empty config.php and <br>
progressively add and test all your PmWiki configurations and test the <br>
wiki if at any point the warning appears, see PmWiki/Troubleshooting. If <br>
it does, let me know. After that, start adding the recipes one after <br>
another, and again test every time.<br>
<br>
Let me know of the results.<br>
<br>
Petko<br>
<br>
On 17/06/2021 08:27, Simon wrote:<br>
> My ISP has just upgraded PHP<br>
> to 7.4I thought I had everything up to date, but I see this error (and <br>
> not<br>
> much of a website <br>
> <<a href="https://ttc.org.nz/pmwiki/pmwiki.php/TTC/ClubNight" rel="noreferrer" target="_blank">https://ttc.org.nz/pmwiki/pmwiki.php/TTC/ClubNight</a>>).<br>
> PHP Warning:  preg_replace_callback(): Compilation failed: invalid <br>
> range in<br>
> character class at offset 648 in<br>
> /home/ttcorgnz/public_html/pmwiki/pmwiki.php on line 1930<br>
> <br>
> I've commented out all recipes (in cookbook) with <br>
> preg_replace_callback.<br>
> It didn't fixed it.<br>
> <br>
> While I try to track it down I wondered if anyone has seen something <br>
> similar<br>
> <br>
> thanks<br>
> <br>
> Simon<br>
> <br>
> _______________________________________________<br>
> pmwiki-devel mailing list<br>
> <a href="mailto:pmwiki-devel@pmichaud.com" target="_blank">pmwiki-devel@pmichaud.com</a><br>
> <a href="http://www.pmichaud.com/mailman/listinfo/pmwiki-devel" rel="noreferrer" target="_blank">http://www.pmichaud.com/mailman/listinfo/pmwiki-devel</a><br>
</blockquote></div>