Subject: bug#20655: According to docs non-greedy regexp should work in guile but they don't

From: Michael Gerdau <[email-masked]>
Date: Mon, 25 May 2015 23:58:53 +0200

Hi list,

the guile documentation under
https://www.gnu.org/software/guile/manual/html_node/Regular-Expressions.html#index-regular-expressions
directly references Regular expressions used in Emacs which do
support non-greedy regexp.

However in the archive of the guile-devel ML I found a thread that seems
to indicate that guile simply does not support non-greedy regexp, which
is perfectly in line with my findings (see below).
The thread I'm referring to is found under
https://www.mail-archive.com/guile-devel%40gnu.org/msg12022.html

Testcase:
If non-greedy regexp do work the following two statements should provide
the exakt same strings:
(match:substring (string-match "_(.*?)_" "a_ä_ö_de_fü_") 1)
(match:substring (string-match "_([^_]*)_" "a_ä_ö_de_fü_") 1)

However for me they don't. Here is a log how I tested it:
$ guile
GNU Guile 2.0.11
Copyright (C) 1995-2014 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (match:substring (string-match "_(.*?)_"
"a_ä_ö_de_fü_") 1)
$1 = "ä_ö_de_fü"
scheme@(guile-user)> (match:substring (string-match "_([^_]*)_"
"a_ä_ö_de_fü_") 1)
$2 = "ä"
scheme@(guile-user)> ,q

For the record:
I check the same regexp in Perl where they provide the same result.

AFAICT this is either misleading if not an outright documentation bug,
or a missing feature in guile.

Kind regards,
Michael
-- 
 Michael Gerdau       email: [email-masked]
 GPG-keys available on request or at public keyserver