Re: looking-back

Andreas Röhler <[email protected]> Sat, 1 Aug 2026 19:55:40 +0200
Newsgroups gmane.emacs.help
Message-ID <[email protected]>
Am 01.08.26 um 19:14 schrieb Jean Louis:
> * Andreas Röhler <[email protected]> [2026-08-01 15:56]:
>> Hi,
>>
>>
>> want to match an opening paren followed by a whitespace. Tried the forms
>> below without success.
>> Any suggestion
>>
>> ( (looking-back "\\\\( +" (line-beginning-position) t)  ==> nil
>> ( (looking-back (regexp-quote (rx "(" (+ space))) (line-beginning-position)
>> t) ==> nil
> ;; Step 1: Type this literal text on a new line (without quotes or backslash):
> ( hello)
>
> So you need to place cursor after space like where is "h" in hello and
> evaluate: (looking-back "( +" (line-beginning-position) t)
>
> So it gives me true at h. But not if I press cursor at "e" in hello
> above.
>
> You probably wanted to lookback longer than that...
>
> ( (re-search-backward (rx "(" (+ space)) (line-beginning-position) t) => 706 so this one would put cursor backwords... on the "( "
>
>
> ( (save-excursion (when (re-search-backward "( +" (line-beginning-position) t) (match-string 0))) ⇒ #("( " 0 2 (face font-lock-string-face fontified t))
>
> (save-excursion (when (re-search-backward "( +" (line-beginning-position) t) (substring-no-properties (match-string 0)))) ⇒ "( "
>
> (save-excursion (when (re-search-backward "( +" (line-beginning-position) t) (list (match-string-no-properties 0) (match-beginning 0) (match-end 0)))) ⇒ ("( " 1166 1168)
>
> means finding this one                    ^^^^^
>
>
> (save-excursion
>    (when (re-search-backward "( +" nil t)  ; nil = no limit
>      (list (match-string-no-properties 0)
>            (match-beginning 0)
>            (match-end 0)))) ⇒ ("( " 1389 1391)
>
Looks like a bug for me.

re-search-backward below stops at the "(" in the regexp itself, not at 
BOL as expected.

( (re-search-backward  "( +" (line-beginning-position) t 1)