On Thu, May 20, 2021 at 12:11:49PM +0200, steve-humphreys@gmx.com wrote: > > > > Sent: Thursday, May 20, 2021 at 9:56 PM > > From: tomas@tuxteam.de > > To: steve-humphreys@gmx.com > > Cc: "help-gnu-emacs@gnu.org" > > Subject: Re: [External] : Use the characters "+" and "-" in regular expressions > > > > On Thu, May 20, 2021 at 11:42:58AM +0200, steve-humphreys@gmx.com wrote: > > > I have now used ";; [;+-.]+" to match some specific lines. > > > > > > (string-match ";; [;+-.]+" s") > > ^ NOOOO! > > > > This is a dash in the middle, indicating a range (i.e. "match all > > characters in the range "+" to "."). In ASCII (and by extension, > > in UTF-8), these are "+", ",", "-" and ".". > > I thought it was only about numeric and letter ranges only. No. Any characters can be the endpoints of a range. But this is somewhat dangerous, since, strictly speaking, the results might depend on the character encoding. Nowadays, with ubiquitous Unicode, this is less of a problem. In the context of Emacs, which probably always uses its internal set (a superset of Unicode), results are probably always consistent. That doesn't mean they are always intuitive. Quick: is "d" in the range "[(-{]"? Don't do that. Your reader will thank you. Again: please, play with it. Make yourself test cases. Cheers - t