diff --git a/faker/providers/bank/en_GB/__init__.py b/faker/providers/bank/en_GB/__init__.py
index 9486de78..75daaf2e 100644
--- a/faker/providers/bank/en_GB/__init__.py
+++ b/faker/providers/bank/en_GB/__init__.py
@@ -2,5 +2,5 @@ from .. import Provider as BankProvider
 
 
 class Provider(BankProvider):
-    bban_format = '????#############'
+    bban_format = '????##############'
     country_code = 'GB'

diff --git a/tests/providers/test_bank.py b/tests/providers/test_bank.py
index e3fc353e..c3333af1 100644
--- a/tests/providers/test_bank.py
+++ b/tests/providers/test_bank.py
@@ -45,3 +45,18 @@ class TestPlPL(unittest.TestCase):
     def test_iban(self):
         iban = self.factory.iban()
         assert re.match(r"PL\d{26}", iban)
+
+
+class TestEnGB(unittest.TestCase):
+    """Tests the bank provider for en_GB locale"""
+
+    def setUp(self):
+        self.factory = Faker('en_GB')
+
+    def test_bban(self):
+        bban = self.factory.bban()
+        assert re.match(r"[A-Z]{4}\d{14}", bban)
+
+    def test_iban(self):
+        iban = self.factory.iban()
+        assert re.match(r"GB\d{2}[A-Z]{4}\d{14}", iban)

BBAN for en_GB too short
* Faker version: v2.0.3
* OS: linux

Numeric part of the en_GB BBAN needs to be 14 digits long, it currently only returns 13, failing further validation.

### Steps to reproduce

Invoke `fake.iban()` or `fake.bban()` with the en_GB locale, an IBAN or BBAN with 1 digit missing is returned.

### Expected behavior

GB ibans should be 22 chars long: https://www.xe.com/ibancalculator/sample/?ibancountry=united kingdom


tests/providers/test_bank.py::TestEnGB::test_bban tests/providers/test_bank.py::TestEnGB::test_iban
tests/providers/test_bank.py::TestNoNO::test_bban tests/providers/test_bank.py::TestFiFi::test_bban tests/providers/test_bank.py::TestFiFi::test_iban tests/providers/test_bank.py::TestPlPL::test_bban tests/providers/test_bank.py::TestPlPL::test_iban