diff --git a/collects/racket/private/string.rkt b/collects/racket/private/string.rkt index ca3c6255ed..b4e7b0f3f8 100644 --- a/collects/racket/private/string.rkt +++ b/collects/racket/private/string.rkt @@ -404,7 +404,7 @@ (check replacement (for/list ([m ms]) - (sub buf (car m) (cdr m)))) + (and m (sub buf (car m) (cdr m))))) (replac ms replacement)) (sub buf start mstart) acc)) diff --git a/collects/tests/racket/basic.rktl b/collects/tests/racket/basic.rktl index 97ea6a7212..fc94c7c8c4 100644 --- a/collects/tests/racket/basic.rktl +++ b/collects/tests/racket/basic.rktl @@ -1090,6 +1090,8 @@ ((equal? what #"trout") (bytes-append color #" fish")) (else (bytes-append color #" " what))))) +(test "foofoo" regexp-replace* #px"(.)?" "a" (lambda args "foo")) + ;; Test weird port offsets: (define (test-weird-offset regexp-match regexp-match-positions) (test #f regexp-match "e" (open-input-string ""))