Just wanted to share with the community the solution to a problem I've been wrestling with recently, that isn't well documented here.
ProblemWhen installing the current version of CiviCRM, or upgrading to v2.1 or higher you receive the following error:
* warning: preg_replace() [function.preg-replace]: Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 6 in /home/sites/mywebsite.org/public_html/cms/sites/all/modules/civicrm/packages/IDS/Converter.php on line 571.
What's happeningSo, lots of web servers run CentOS 4.7 or 5.2 (probably yours if you are getting this error)
CentOS uses a it's own PCRE package, which doesn't have all the features which CiviCRM assumes it will have, specifically, it does not have Unicode Properties Enabled.
SolutionIf you don't have root access to your server, you're pretty much out of luck.
If you do have root access, you can download the source code for PCRE, enable Unicode Properties Support, recompile the package, and install it.
If that solution sounds a little daunting - you can download a recompiled version of the package here:
http://gaarai.com/2009/01/31/unicode-support-on-centos-52-with-php-and-pcre/ (includes support for v4.7 x32 v5.2 x32 and x64)
So, all you need to do:
wget
http://gaarai.com/wp-content/uploads/2009/01/pcre-6.6-2.7.i386.rpm (this is the 32 bit CentOS 5.2 version - check the site for other versions)
rpm -Uvh [your download directory]/pcre-6.6-2.7.i386.rpm
Your system is patched and ready to run CiviCRM!