diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index c81253f..358d328 100644
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -1,11 +1,15 @@
 " Vim support file to detect file types in scripts
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2017 Mar 04
+" Last change:	2017 Jun 11
 
 " This file is called by an autocommand for every file that has just been
 " loaded into a buffer.  It checks if the type of file can be recognized by
 " the file contents.  The autocommand is in $VIMRUNTIME/filetype.vim.
+"
+" Note that the pattern matches are done with =~# to avoid the value of the
+" 'ignorecase' option making a difference.  Where case is to be ignored use
+" =~? instead.  Do not use =~ anywhere.
 
 
 " Only do the rest when the FileType autocommand has not been triggered yet.
@@ -28,12 +32,12 @@
 
 let s:line1 = getline(1)
 
-if s:line1 =~ "^#!"
+if s:line1 =~# "^#!"
   " A script that starts with "#!".
 
   " Check for a line like "#!/usr/bin/env VAR=val bash".  Turn it into
   " "#!/usr/bin/bash" to make matching easier.
-  if s:line1 =~ '^#!\s*\S*\<env\s'
+  if s:line1 =~# '^#!\s*\S*\<env\s'
     let s:line1 = substitute(s:line1, '\S\+=\S\+', '', 'g')
     let s:line1 = substitute(s:line1, '\<env\s\+', '', '')
   endif
@@ -44,11 +48,11 @@
   " "#!/usr/bin/env perl [path/args]"
   " If there is no path use the first word: "#!perl [path/args]".
   " Otherwise get the last word after a slash: "#!/usr/bin/perl [path/args]".
-  if s:line1 =~ '^#!\s*\a:[/\\]'
+  if s:line1 =~# '^#!\s*\a:[/\\]'
     let s:name = substitute(s:line1, '^#!.*[/\\]\(\i\+\).*', '\1', '')
-  elseif s:line1 =~ '^#!.*\<env\>'
+  elseif s:line1 =~# '^#!.*\<env\>'
     let s:name = substitute(s:line1, '^#!.*\<env\>\s\+\(\i\+\).*', '\1', '')
-  elseif s:line1 =~ '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
+  elseif s:line1 =~# '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
     let s:name = substitute(s:line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
   else
     let s:name = substitute(s:line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
@@ -56,16 +60,16 @@
 
   " tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
   " third line.  Suggested by Steven Atkinson.
-  if getline(3) =~ '^exec wish'
+  if getline(3) =~# '^exec wish'
     let s:name = 'wish'
   endif
 
   " Bourne-like shell scripts: bash bash2 ksh ksh93 sh
-  if s:name =~ '^\(bash\d*\|\|ksh\d*\|sh\)\>'
+  if s:name =~# '^\(bash\d*\|\|ksh\d*\|sh\)\>'
     call SetFileTypeSH(s:line1)	" defined in filetype.vim
 
     " csh scripts
-  elseif s:name =~ '^csh\>'
+  elseif s:name =~# '^csh\>'
     if exists("g:filetype_csh")
       call SetFileTypeShell(g:filetype_csh)
     else
@@ -73,99 +77,99 @@
     endif
 
     " tcsh scripts
-  elseif s:name =~ '^tcsh\>'
+  elseif s:name =~# '^tcsh\>'
     call SetFileTypeShell("tcsh")
 
     " Z shell scripts
-  elseif s:name =~ '^zsh\>'
+  elseif s:name =~# '^zsh\>'
     set ft=zsh
 
     " TCL scripts
-  elseif s:name =~ '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
+  elseif s:name =~# '^\(tclsh\|wish\|expectk\|itclsh\|itkwish\)\>'
     set ft=tcl
 
     " Expect scripts
-  elseif s:name =~ '^expect\>'
+  elseif s:name =~# '^expect\>'
     set ft=expect
 
     " Gnuplot scripts
-  elseif s:name =~ '^gnuplot\>'
+  elseif s:name =~# '^gnuplot\>'
     set ft=gnuplot
 
     " Makefiles
-  elseif s:name =~ 'make\>'
+  elseif s:name =~# 'make\>'
     set ft=make
 
     " Lua
-  elseif s:name =~ 'lua'
+  elseif s:name =~# 'lua'
     set ft=lua
 
     " Perl 6
-  elseif s:name =~ 'perl6'
+  elseif s:name =~# 'perl6'
     set ft=perl6
 
     " Perl
-  elseif s:name =~ 'perl'
+  elseif s:name =~# 'perl'
     set ft=perl
 
     " PHP
-  elseif s:name =~ 'php'
+  elseif s:name =~# 'php'
     set ft=php
 
     " Python
-  elseif s:name =~ 'python'
+  elseif s:name =~# 'python'
     set ft=python
 
     " Groovy
-  elseif s:name =~ '^groovy\>'
+  elseif s:name =~# '^groovy\>'
     set ft=groovy
 
     " Ruby
-  elseif s:name =~ 'ruby'
+  elseif s:name =~# 'ruby'
     set ft=ruby
 
     " JavaScript
-  elseif s:name =~ 'node\(js\)\=\>' || s:name =~ 'rhino\>'
+  elseif s:name =~# 'node\(js\)\=\>' || s:name =~# 'rhino\>'
     set ft=javascript
 
     " BC calculator
-  elseif s:name =~ '^bc\>'
+  elseif s:name =~# '^bc\>'
     set ft=bc
 
     " sed
-  elseif s:name =~ 'sed\>'
+  elseif s:name =~# 'sed\>'
     set ft=sed
 
     " OCaml-scripts
-  elseif s:name =~ 'ocaml'
+  elseif s:name =~# 'ocaml'
     set ft=ocaml
 
     " Awk scripts
-  elseif s:name =~ 'awk\>'
+  elseif s:name =~# 'awk\>'
     set ft=awk
 
     " Website MetaLanguage
-  elseif s:name =~ 'wml'
+  elseif s:name =~# 'wml'
     set ft=wml
 
     " Scheme scripts
-  elseif s:name =~ 'scheme'
+  elseif s:name =~# 'scheme'
     set ft=scheme
 
     " CFEngine scripts
-  elseif s:name =~ 'cfengine'
+  elseif s:name =~# 'cfengine'
     set ft=cfengine
 
     " Erlang scripts
-  elseif s:name =~ 'escript'
+  elseif s:name =~# 'escript'
     set ft=erlang
 
     " Haskell
-  elseif s:name =~ 'haskell'
+  elseif s:name =~# 'haskell'
     set ft=haskell
 
     " Scala
-  elseif s:name =~ 'scala\>'
+  elseif s:name =~# 'scala\>'
     set ft=scala
 
   endif
@@ -180,28 +184,28 @@
   let s:line5 = getline(5)
 
   " Bourne-like shell scripts: sh ksh bash bash2
-  if s:line1 =~ '^:$'
+  if s:line1 =~# '^:$'
     call SetFileTypeSH(s:line1)	" defined in filetype.vim
 
     " Z shell scripts
-  elseif s:line1 =~ '^#compdef\>' || s:line1 =~ '^#autoload\>' ||
-        \ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~ '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
+  elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
+        \ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
     set ft=zsh
 
   " ELM Mail files
-  elseif s:line1 =~ '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
+  elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
     set ft=mail
 
     " Mason
-  elseif s:line1 =~ '^<[%&].*>'
+  elseif s:line1 =~# '^<[%&].*>'
     set ft=mason
 
     " Vim scripts (must have '" vim' as the first line to trigger this)
-  elseif s:line1 =~ '^" *[vV]im$'
+  elseif s:line1 =~# '^" *[vV]im$'
     set ft=vim
 
     " MOO
-  elseif s:line1 =~ '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
+  elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
     set ft=moo
 
     " Diff file:
@@ -215,29 +219,29 @@
     " - "=== ", "--- ", "+++ " (bzr diff, common case)
     " - "=== (removed|added|renamed|modified)" (bzr diff, alternative)
     " - "# HG changeset patch" in first line (Mercurial export format)
-  elseif s:line1 =~ '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
-	\ || (s:line1 =~ '^--- ' && s:line2 =~ '^+++ ')
-	\ || (s:line1 =~ '^\* looking for ' && s:line2 =~ '^\* comparing to ')
-	\ || (s:line1 =~ '^\*\*\* ' && s:line2 =~ '^--- ')
-	\ || (s:line1 =~ '^=== ' && ((s:line2 =~ '^=\{66\}' && s:line3 =~ '^--- ' && s:line4 =~ '^+++') || (s:line2 =~ '^--- ' && s:line3 =~ '^+++ ')))
-	\ || (s:line1 =~ '^=== \(removed\|added\|renamed\|modified\)')
+  elseif s:line1 =~# '^\(diff\>\|Only in \|\d\+\(,\d\+\)\=[cda]\d\+\>\|# It was generated by makepatch \|Index:\s\+\f\+\r\=$\|===== \f\+ \d\+\.\d\+ vs edited\|==== //\f\+#\d\+\|# HG changeset patch\)'
+	\ || (s:line1 =~# '^--- ' && s:line2 =~# '^+++ ')
+	\ || (s:line1 =~# '^\* looking for ' && s:line2 =~# '^\* comparing to ')
+	\ || (s:line1 =~# '^\*\*\* ' && s:line2 =~# '^--- ')
+	\ || (s:line1 =~# '^=== ' && ((s:line2 =~# '^=\{66\}' && s:line3 =~# '^--- ' && s:line4 =~# '^+++') || (s:line2 =~# '^--- ' && s:line3 =~# '^+++ ')))
+	\ || (s:line1 =~# '^=== \(removed\|added\|renamed\|modified\)')
     set ft=diff
 
     " PostScript Files (must have %!PS as the first line, like a2ps output)
-  elseif s:line1 =~ '^%![ \t]*PS'
+  elseif s:line1 =~# '^%![ \t]*PS'
     set ft=postscr
 
     " M4 scripts: Guess there is a line that starts with "dnl".
-  elseif s:line1 =~ '^\s*dnl\>'
-	\ || s:line2 =~ '^\s*dnl\>'
-	\ || s:line3 =~ '^\s*dnl\>'
-	\ || s:line4 =~ '^\s*dnl\>'
-	\ || s:line5 =~ '^\s*dnl\>'
+  elseif s:line1 =~# '^\s*dnl\>'
+	\ || s:line2 =~# '^\s*dnl\>'
+	\ || s:line3 =~# '^\s*dnl\>'
+	\ || s:line4 =~# '^\s*dnl\>'
+	\ || s:line5 =~# '^\s*dnl\>'
     set ft=m4
 
     " AmigaDos scripts
   elseif $TERM == "amiga"
-	\ && (s:line1 =~ "^;" || s:line1 =~ '^\.[bB][rR][aA]')
+	\ && (s:line1 =~# "^;" || s:line1 =~? '^\.bra')
     set ft=amiga
 
     " SiCAD scripts (must have procn or procd as the first line to trigger this)
@@ -245,15 +249,15 @@
     set ft=sicad
 
     " Purify log files start with "****  Purify"
-  elseif s:line1 =~ '^\*\*\*\*  Purify'
+  elseif s:line1 =~# '^\*\*\*\*  Purify'
     set ft=purifylog
 
     " XML
-  elseif s:line1 =~ '<?\s*xml.*?>'
+  elseif s:line1 =~# '<?\s*xml.*?>'
     set ft=xml
 
     " XHTML (e.g.: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN")
-  elseif s:line1 =~ '\<DTD\s\+XHTML\s'
+  elseif s:line1 =~# '\<DTD\s\+XHTML\s'
     set ft=xhtml
 
     " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN")
@@ -262,96 +266,96 @@
     set ft=html
 
     " PDF
-  elseif s:line1 =~ '^%PDF-'
+  elseif s:line1 =~# '^%PDF-'
     set ft=pdf
 
     " XXD output
-  elseif s:line1 =~ '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
+  elseif s:line1 =~# '^\x\{7}: \x\{2} \=\x\{2} \=\x\{2} \=\x\{2} '
     set ft=xxd
 
     " RCS/CVS log output
-  elseif s:line1 =~ '^RCS file:' || s:line2 =~ '^RCS file:'
+  elseif s:line1 =~# '^RCS file:' || s:line2 =~# '^RCS file:'
     set ft=rcslog
 
     " CVS commit
-  elseif s:line2 =~ '^CVS:' || getline("$") =~ '^CVS: '
+  elseif s:line2 =~# '^CVS:' || getline("$") =~# '^CVS: '
     set ft=cvs
 
     " Prescribe
-  elseif s:line1 =~ '^!R!'
+  elseif s:line1 =~# '^!R!'
     set ft=prescribe
 
     " Send-pr
-  elseif s:line1 =~ '^SEND-PR:'
+  elseif s:line1 =~# '^SEND-PR:'
     set ft=sendpr
 
     " SNNS files
-  elseif s:line1 =~ '^SNNS network definition file'
+  elseif s:line1 =~# '^SNNS network definition file'
     set ft=snnsnet
-  elseif s:line1 =~ '^SNNS pattern definition file'
+  elseif s:line1 =~# '^SNNS pattern definition file'
     set ft=snnspat
-  elseif s:line1 =~ '^SNNS result file'
+  elseif s:line1 =~# '^SNNS result file'
     set ft=snnsres
 
     " Virata
-  elseif s:line1 =~ '^%.\{-}[Vv]irata'
-	\ || s:line2 =~ '^%.\{-}[Vv]irata'
-	\ || s:line3 =~ '^%.\{-}[Vv]irata'
-	\ || s:line4 =~ '^%.\{-}[Vv]irata'
-	\ || s:line5 =~ '^%.\{-}[Vv]irata'
+  elseif s:line1 =~# '^%.\{-}[Vv]irata'
+	\ || s:line2 =~# '^%.\{-}[Vv]irata'
+	\ || s:line3 =~# '^%.\{-}[Vv]irata'
+	\ || s:line4 =~# '^%.\{-}[Vv]irata'
+	\ || s:line5 =~# '^%.\{-}[Vv]irata'
     set ft=virata
 
     " Strace
-  elseif s:line1 =~ '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~ '^__libc_start_main'
+  elseif s:line1 =~# '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
     set ft=strace
 
     " VSE JCL
-  elseif s:line1 =~ '^\* $$ JOB\>' || s:line1 =~ '^// *JOB\>'
+  elseif s:line1 =~# '^\* $$ JOB\>' || s:line1 =~# '^// *JOB\>'
     set ft=vsejcl
 
     " TAK and SINDA
-  elseif s:line4 =~ 'K & K  Associates' || s:line2 =~ 'TAK 2000'
+  elseif s:line4 =~# 'K & K  Associates' || s:line2 =~# 'TAK 2000'
     set ft=takout
-  elseif s:line3 =~ 'S Y S T E M S   I M P R O V E D '
+  elseif s:line3 =~# 'S Y S T E M S   I M P R O V E D '
     set ft=sindaout
-  elseif getline(6) =~ 'Run Date: '
+  elseif getline(6) =~# 'Run Date: '
     set ft=takcmp
-  elseif getline(9) =~ 'Node    File  1'
+  elseif getline(9) =~# 'Node    File  1'
     set ft=sindacmp
 
     " DNS zone files
-  elseif s:line1.s:line2.s:line3.s:line4 =~ '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
+  elseif s:line1.s:line2.s:line3.s:line4 =~# '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
     set ft=bindzone
 
     " BAAN
-  elseif s:line1 =~ '|\*\{1,80}' && s:line2 =~ 'VRC '
-	\ || s:line2 =~ '|\*\{1,80}' && s:line3 =~ 'VRC '
+  elseif s:line1 =~# '|\*\{1,80}' && s:line2 =~# 'VRC '
+	\ || s:line2 =~# '|\*\{1,80}' && s:line3 =~# 'VRC '
     set ft=baan
 
   " Valgrind
-  elseif s:line1 =~ '^==\d\+== valgrind' || s:line3 =~ '^==\d\+== Using valgrind'
+  elseif s:line1 =~# '^==\d\+== valgrind' || s:line3 =~# '^==\d\+== Using valgrind'
     set ft=valgrind
 
   " Go docs
-  elseif s:line1 =~ '^PACKAGE DOCUMENTATION$'
+  elseif s:line1 =~# '^PACKAGE DOCUMENTATION$'
     set ft=godoc
 
   " Renderman Interface Bytestream
-  elseif s:line1 =~ '^##RenderMan'
+  elseif s:line1 =~# '^##RenderMan'
     set ft=rib
 
   " Scheme scripts
-  elseif s:line1 =~ 'exec\s\+\S*scheme' || s:line2 =~ 'exec\s\+\S*scheme'
+  elseif s:line1 =~# 'exec\s\+\S*scheme' || s:line2 =~# 'exec\s\+\S*scheme'
     set ft=scheme
 
   " Git output
-  elseif s:line1 =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
+  elseif s:line1 =~# '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
     set ft=git
 
    " Gprof (gnu profiler)
    elseif s:line1 == 'Flat profile:'
      \ && s:line2 == ''
-     \ && s:line3 =~ '^Each sample counts as .* seconds.$'
+     \ && s:line3 =~# '^Each sample counts as .* seconds.$'
      set ft=gprof
 
   " Erlang terms
@@ -362,18 +366,18 @@
   " CVS diff
   else
     let s:lnum = 1
-    while getline(s:lnum) =~ "^? " && s:lnum < line("$")
+    while getline(s:lnum) =~# "^? " && s:lnum < line("$")
       let s:lnum += 1
     endwhile
-    if getline(s:lnum) =~ '^Index:\s\+\f\+$'
+    if getline(s:lnum) =~# '^Index:\s\+\f\+$'
       set ft=diff
 
       " locale input files: Formal Definitions of Cultural Conventions
       " filename must be like en_US, fr_FR@euro or en_US.UTF-8
-    elseif expand("%") =~ '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
+    elseif expand("%") =~# '\a\a_\a\a\($\|[.@]\)\|i18n$\|POSIX$\|translit_'
       let s:lnum = 1
       while s:lnum < 100 && s:lnum < line("$")
-	if getline(s:lnum) =~ '^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
+	if getline(s:lnum) =~# '^LC_\(IDENTIFICATION\|CTYPE\|COLLATE\|MONETARY\|NUMERIC\|TIME\|MESSAGES\|PAPER\|TELEPHONE\|MEASUREMENT\|NAME\|ADDRESS\)$'
 	  setf fdcc
 	  break
 	endif
