diff --git a/collects/r6rs/private/readtable.ss b/collects/r6rs/private/readtable.ss index f86cfb91d3..a8a518b1cd 100644 --- a/collects/r6rs/private/readtable.ss +++ b/collects/r6rs/private/readtable.ss @@ -447,7 +447,7 @@ (bytes->string/utf-8 (car (or (if (string=? prefix "\\") (regexp-match #px"^x[0-9a-fA-F]+;(?:\\\\x[0-9a-fA-F]+;|[^\\\\\\s\\[\\]()#\";,'`])*" port) - (regexp-match #px"^(?:\\\\x[0-9a-fA-F]+;|[^\\\\\\s\\[\\]()#\";,'`])*" port)) + (regexp-match #px"^(?:#[xXdDbBoOeEiI])*(?:\\\\x[0-9a-fA-F]+;|[^\\\\\\s\\[\\]()#\";,'`])*" port)) '(#"")))))]) (cond [(regexp-match? #rx"^[a-zA-Z!$%&*/:<=>?^_~][a-zA-Z0-9+!$%&*/:<=>?^_~.@-]*$" thing) diff --git a/collects/tests/r6rs/reader.ss b/collects/tests/r6rs/reader.ss index 028d2515e6..12c550164e 100644 --- a/collects/tests/r6rs/reader.ss +++ b/collects/tests/r6rs/reader.ss @@ -71,7 +71,9 @@ "#O+23761236721631263126371263712" "#O+0" "#O-0" - "#O0") + "#O0" + "#i#xf/e" + "#x#if/e") (test (read (open-string-input-port "#\\nul")) (integer->char #x0))