diff --git a/django/utils/html.py b/django/utils/html.py
index 78359f97f6..6760f7adad 100644
--- a/django/utils/html.py
+++ b/django/utils/html.py
@@ -20,8 +20,8 @@ DOTS = [u'·', u'*', u'\u2022', u'', u'•', u'•']
unencoded_ampersands_re = re.compile(r'&(?!(\w+|#\d+);)')
unquoted_percents_re = re.compile(r'%(?![0-9A-Fa-f]{2})')
word_split_re = re.compile(r'(\s+)')
-simple_url_re = re.compile(r'^https?://\w')
-simple_url_2_re = re.compile(r'^www\.|^(?!http)\w[^@]+\.(com|edu|gov|int|mil|net|org)$')
+simple_url_re = re.compile(r'^https?://\w', re.IGNORECASE)
+simple_url_2_re = re.compile(r'^www\.|^(?!http)\w[^@]+\.(com|edu|gov|int|mil|net|org)$', re.IGNORECASE)
simple_email_re = re.compile(r'^\S+@\S+\.\S+$')
link_target_attribute_re = re.compile(r'(]*?)target=[^\s>]+')
html_gunk_re = re.compile(r'(?:
|<\/i>|<\/b>|<\/em>|<\/strong>|<\/?smallcaps>|<\/?uppercase>)', re.IGNORECASE)
diff --git a/tests/regressiontests/defaultfilters/tests.py b/tests/regressiontests/defaultfilters/tests.py
index 88389be017..7d0b8d61b6 100644
--- a/tests/regressiontests/defaultfilters/tests.py
+++ b/tests/regressiontests/defaultfilters/tests.py
@@ -292,6 +292,10 @@ class DefaultFiltersTests(TestCase):
self.assertEqual(urlize('email@.stream.ru'),
u'email@.stream.ru')
+ # Check urlize accepts uppercased URL schemes - see #18071
+ self.assertEqual(urlize('HTTPS://github.com/'),
+ u'HTTPS://github.com/')
+
def test_wordcount(self):
self.assertEqual(wordcount(''), 0)
self.assertEqual(wordcount(u'oneword'), 1)