diff --git a/dotenv/main.py b/dotenv/main.py
index 1a88238..98b22ec 100644
--- a/dotenv/main.py
+++ b/dotenv/main.py
@@ -21,14 +21,14 @@ _binding = re.compile(
     r"""
         (
             \s*                     # leading whitespace
-            (?:export\s+)?          # export
+            (?:export{0}+)?         # export
 
             ( '[^']+'               # single-quoted key
             | [^=\#\s]+             # or unquoted key
             )?
 
             (?:
-                (?:\s*=\s*)         # equal sign
+                (?:{0}*={0}*)       # equal sign
 
                 ( '(?:\\'|[^'])*'   # single-quoted value
                 | "(?:\\"|[^"])*"   # or double-quoted value
@@ -40,7 +40,7 @@ _binding = re.compile(
             (?:\#[^\r\n]*)?         # comment
             (?:\r|\n|\r\n)?         # newline
         )
-    """,
+    """.format(r'[^\S\r\n]'),
     re.MULTILINE | re.VERBOSE,
 )
 

diff --git a/tests/test_core.py b/tests/test_core.py
index bda2e3b..f797600 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -63,6 +63,13 @@ def restore_os_environ():
             Binding(key="c", value="d", original="c=d"),
         ],
     ),
+    (
+        'a=\nb=c',
+        [
+            Binding(key="a", value='', original='a=\n'),
+            Binding(key="b", value='c', original="b=c"),
+        ]
+    ),
     (
         'a="\nb=c',
         [

Regression 0.9.1 -> 0.10.0: .env parsed incorrectly
Hello!

I have upgraded dotenv from 0.9.1 to 0.10 and now my config file is parsed incorrectly.

Example file:

```
$ cat .env
VAR_A=

VAR_B=123
```

Current behaviour on 0.10:
```
$ dotenv list

VAR_A=VAR_B=123
```

Previous (correct) behaviour on 0.9:

```
$ dotenv list

VAR_A=
VAR_B=123
```
tests/test_core.py::test_parse_stream[a=\nb=c-expected26]
tests/test_core.py::test_parse_stream[-expected0] tests/test_core.py::test_parse_stream[a=b-expected1] tests/test_core.py::test_parse_stream['a'=b-expected2] tests/test_core.py::test_parse_stream[[=b-expected3] tests/test_core.py::test_parse_stream[ tests/test_core.py::test_parse_stream[export tests/test_core.py::test_parse_stream[# tests/test_core.py::test_parse_stream[a=b tests/test_core.py::test_parse_stream[a='b tests/test_core.py::test_parse_stream[a="b tests/test_core.py::test_parse_stream[a="b\nc"-expected15] tests/test_core.py::test_parse_stream[a='b\nc'-expected16] tests/test_core.py::test_parse_stream[a="b\nc"-expected17] tests/test_core.py::test_parse_stream[a="b\\nc"-expected18] tests/test_core.py::test_parse_stream[a="b\\"c"-expected19] tests/test_core.py::test_parse_stream[a='b\\'c'-expected20] tests/test_core.py::test_parse_stream[a=\xe0-expected21] tests/test_core.py::test_parse_stream[a="\xe0"-expected22] tests/test_core.py::test_parse_stream[garbage-expected23] tests/test_core.py::test_parse_stream[a=b\nc=d-expected24] tests/test_core.py::test_parse_stream[a=b\r\nc=d-expected25] tests/test_core.py::test_parse_stream[a="\nb=c-expected27] tests/test_core.py::test_parse_stream[garbage[%$#\na=b-expected29] tests/test_core.py::test_warns_if_file_does_not_exist tests/test_core.py::test_find_dotenv tests/test_core.py::test_load_dotenv tests/test_core.py::test_load_dotenv_override tests/test_core.py::test_load_dotenv_in_current_dir tests/test_core.py::test_ipython tests/test_core.py::test_ipython_override tests/test_core.py::test_dotenv_values_stream tests/test_core.py::test_dotenv_values_export tests/test_core.py::test_dotenv_empty_selfreferential_interpolation tests/test_core.py::test_dotenv_nonempty_selfreferential_interpolation