title: Installing Python's new regex module not working
body: <p>I am trying to install an <a href="https://pypi.python.org/pypi/regex" rel="nofollow noreferrer">alternative regular expression module</a> to replace re but am having difficulty installing the module. I have already visited this <a href="https://stackoverflow.com/questions/17437564/install-new-regex-module-with-setup-py">stack overflow question</a> and when following Pavan's instructions, Terminal (I'm running OSX El Capitan) produces the following output:</p>
  
  <p>Edit: To clarify, this output was produced when the command <code>pip install regex</code> was issued.</p>
  
  <pre><code>Collecting regex
    Using cached regex-2016.04.15.tar.gz
  Installing collected packages: regex
    Running setup.py install for regex ... error
      Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/z6/vncx8j5977xd96vnrtj41xt40000gn/T/pip-build-AwqJ7Z/regex/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/z6/vncx8j5977xd96vnrtj41xt40000gn/T/pip-uG2qOh-record/install-record.txt --single-version-externally-managed --compile:
      /Library/Python/2.7/site-packages/setuptools-20.9.0-py2.7.egg/setuptools/dist.py:285: UserWarning: Normalizing '2016.04.15' to '2016.4.15'
      running install
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.11-intel-2.7
      copying Python2/regex.py -&gt; build/lib.macosx-10.11-intel-2.7
      copying Python2/_regex_core.py -&gt; build/lib.macosx-10.11-intel-2.7
      copying Python2/test_regex.py -&gt; build/lib.macosx-10.11-intel-2.7
      running build_ext
      building '_regex' extension
      creating build/temp.macosx-10.11-intel-2.7
      creating build/temp.macosx-10.11-intel-2.7/Python2
      cc -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c Python2/_regex.c -o build/temp.macosx-10.11-intel-2.7/Python2/_regex.o
      Python2/_regex.c:16531:77: warning: '&amp;&amp;' within '||' [-Wlogical-op-parentheses]
                                  if (state-&gt;total_errors &lt; error_limit || i == 0 &amp;&amp;
                                                                        ~~ ~~~~~~~^~
      Python2/_regex.c:16531:77: note: place parentheses around the '&amp;&amp;' expression to silence this warning
                                  if (state-&gt;total_errors &lt; error_limit || i == 0 &amp;&amp;
                                                                                  ^
      Python2/_regex.c:16534:38: warning: variable 'better' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                                  else if (state-&gt;total_errors == error_limit)
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Python2/_regex.c:16542:33: note: uninitialized use occurs here
                                  if (better) {
                                      ^~~~~~
      Python2/_regex.c:16534:34: note: remove the 'if' if its condition is always true
                                  else if (state-&gt;total_errors == error_limit)
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Python2/_regex.c:16529:40: note: initialize the variable 'better' to silence this warning
                                  BOOL better;
                                             ^
                                              = '\0'
      Python2/_regex.c:18564:28: warning: unused function 'match_get_group_dict' [-Wunused-function]
      Py_LOCAL_INLINE(PyObject*) match_get_group_dict(MatchObject* self) {
                                 ^
      3 warnings generated.
      Python2/_regex.c:16531:77: warning: '&amp;&amp;' within '||' [-Wlogical-op-parentheses]
                                  if (state-&gt;total_errors &lt; error_limit || i == 0 &amp;&amp;
                                                                        ~~ ~~~~~~~^~
      Python2/_regex.c:16531:77: note: place parentheses around the '&amp;&amp;' expression to silence this warning
                                  if (state-&gt;total_errors &lt; error_limit || i == 0 &amp;&amp;
                                                                                  ^
      Python2/_regex.c:16534:38: warning: variable 'better' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                                  else if (state-&gt;total_errors == error_limit)
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Python2/_regex.c:16542:33: note: uninitialized use occurs here
                                  if (better) {
                                      ^~~~~~
      Python2/_regex.c:16534:34: note: remove the 'if' if its condition is always true
                                  else if (state-&gt;total_errors == error_limit)
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      Python2/_regex.c:16529:40: note: initialize the variable 'better' to silence this warning
                                  BOOL better;
                                             ^
                                              = '\0'
      Python2/_regex.c:18564:28: warning: unused function 'match_get_group_dict' [-Wunused-function]
      Py_LOCAL_INLINE(PyObject*) match_get_group_dict(MatchObject* self) {
                                 ^
      3 warnings generated.
      cc -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c Python2/_regex_unicode.c -o build/temp.macosx-10.11-intel-2.7/Python2/_regex_unicode.o
      cc -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -Wl,-F. build/temp.macosx-10.11-intel-2.7/Python2/_regex.o build/temp.macosx-10.11-intel-2.7/Python2/_regex_unicode.o -o build/lib.macosx-10.11-intel-2.7/_regex.so
      running install_lib
      copying build/lib.macosx-10.11-intel-2.7/_regex.so -&gt; /Library/Python/2.7/site-packages
      error: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/_regex.so'
  
      ----------------------------------------
  Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/z6/vncx8j5977xd96vnrtj41xt40000gn/T/pip-build-AwqJ7Z/regex/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/z6/vncx8j5977xd96vnrtj41xt40000gn/T/pip-uG2qOh-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/z6/vncx8j5977xd96vnrtj41xt40000gn/T/pip-build-AwqJ7Z/regex/
  </code></pre>
  
  <p>Looks like a C compiler got grumpy and threw a tantrum, any help is greatly appreciated.</p>