/[pcre]/code/trunk/doc/pcre.txt
ViewVC logotype

Diff of /code/trunk/doc/pcre.txt

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 181 by ph10, Tue Jun 5 10:40:13 2007 UTC revision 182 by ph10, Wed Jun 13 15:09:54 2007 UTC
# Line 197  UTF-8 AND UNICODE PROPERTY SUPPORT Line 197  UTF-8 AND UNICODE PROPERTY SUPPORT
197         8. Similarly, characters that match the POSIX named  character  classes         8. Similarly, characters that match the POSIX named  character  classes
198         are all low-valued characters.         are all low-valued characters.
199    
200         9.  Case-insensitive  matching  applies only to characters whose values         9.  However,  the Perl 5.10 horizontal and vertical whitespace matching
201           escapes (\h, \H, \v, and \V) do match all the appropriate Unicode char-
202           acters.
203    
204           10.  Case-insensitive  matching applies only to characters whose values
205         are less than 128, unless PCRE is built with Unicode property  support.         are less than 128, unless PCRE is built with Unicode property  support.
206         Even  when  Unicode  property support is available, PCRE still uses its         Even  when  Unicode  property support is available, PCRE still uses its
207         own character tables when checking the case of  low-valued  characters,         own character tables when checking the case of  low-valued  characters,
# Line 222  AUTHOR Line 226  AUTHOR
226    
227  REVISION  REVISION
228    
229         Last updated: 18 April 2007         Last updated: 13 June 2007
230         Copyright (c) 1997-2007 University of Cambridge.         Copyright (c) 1997-2007 University of Cambridge.
231  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
232    
# Line 390  AVOIDING EXCESSIVE STACK USAGE Line 394  AVOIDING EXCESSIVE STACK USAGE
394    
395         to  the  configure  command. With this configuration, PCRE will use the         to  the  configure  command. With this configuration, PCRE will use the
396         pcre_stack_malloc and pcre_stack_free variables to call memory  manage-         pcre_stack_malloc and pcre_stack_free variables to call memory  manage-
397         ment  functions.  Separate  functions are provided because the usage is         ment  functions. By default these point to malloc() and free(), but you
398         very predictable: the block sizes requested are always  the  same,  and         can replace the pointers so that your own functions are used.
399         the  blocks  are always freed in reverse order. A calling program might  
400         be able to implement optimized functions that perform better  than  the         Separate functions are  provided  rather  than  using  pcre_malloc  and
401         standard  malloc()  and  free()  functions.  PCRE  runs noticeably more         pcre_free  because  the  usage  is  very  predictable:  the block sizes
402         slowly when built in this way. This option affects only the pcre_exec()         requested are always the same, and  the  blocks  are  always  freed  in
403         function; it is not relevant for the the pcre_dfa_exec() function.         reverse  order.  A calling program might be able to implement optimized
404           functions that perform better  than  malloc()  and  free().  PCRE  runs
405           noticeably more slowly when built in this way. This option affects only
406           the  pcre_exec()  function;  it   is   not   relevant   for   the   the
407           pcre_dfa_exec() function.
408    
409    
410  LIMITING PCRE RESOURCE USAGE  LIMITING PCRE RESOURCE USAGE
# Line 474  AUTHOR Line 482  AUTHOR
482    
483  REVISION  REVISION
484    
485         Last updated: 16 April 2007         Last updated: 05 June 2007
486         Copyright (c) 1997-2007 University of Cambridge.         Copyright (c) 1997-2007 University of Cambridge.
487  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
488    
# Line 1259  COMPILATION ERROR CODES Line 1267  COMPILATION ERROR CODES
1267           26  malformed number or name after (?(           26  malformed number or name after (?(
1268           27  conditional group contains more than two branches           27  conditional group contains more than two branches
1269           28  assertion expected after (?(           28  assertion expected after (?(
1270           29  (?R or (?digits must be followed by )           29  (?R or (?[+-]digits must be followed by )
1271           30  unknown POSIX class name           30  unknown POSIX class name
1272           31  POSIX collating elements are not supported           31  POSIX collating elements are not supported
1273           32  this version of PCRE is not compiled with PCRE_UTF8 support           32  this version of PCRE is not compiled with PCRE_UTF8 support
# Line 1288  COMPILATION ERROR CODES Line 1296  COMPILATION ERROR CODES
1296           54  DEFINE group contains more than one branch           54  DEFINE group contains more than one branch
1297           55  repeating a DEFINE group is not allowed           55  repeating a DEFINE group is not allowed
1298           56  inconsistent NEWLINE options"           56  inconsistent NEWLINE options"
1299             57  \g is not followed by a braced name or an optionally braced
1300                   non-zero number
1301             58  (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number
1302    
1303    
1304  STUDYING A PATTERN  STUDYING A PATTERN
# Line 1480  INFORMATION ABOUT A PATTERN Line 1491  INFORMATION ABOUT A PATTERN
1491    
1492         Return  1  if the (?J) option setting is used in the pattern, otherwise         Return  1  if the (?J) option setting is used in the pattern, otherwise
1493         0. The fourth argument should point to an int variable. The (?J) inter-         0. The fourth argument should point to an int variable. The (?J) inter-
1494         nal option setting changes the local PCRE_DUPNAMES value.         nal option setting changes the local PCRE_DUPNAMES option.
1495    
1496           PCRE_INFO_LASTLITERAL           PCRE_INFO_LASTLITERAL
1497    
# Line 2406  AUTHOR Line 2417  AUTHOR
2417    
2418  REVISION  REVISION
2419    
2420         Last updated: 04 June 2007         Last updated: 13 June 2007
2421         Copyright (c) 1997-2007 University of Cambridge.         Copyright (c) 1997-2007 University of Cambridge.
2422  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
2423    
# Line 2593  DIFFERENCES BETWEEN PCRE AND PERL Line 2604  DIFFERENCES BETWEEN PCRE AND PERL
2604    
2605         This  document describes the differences in the ways that PCRE and Perl         This  document describes the differences in the ways that PCRE and Perl
2606         handle regular expressions. The differences described here  are  mainly         handle regular expressions. The differences described here  are  mainly
2607         with  respect  to  Perl 5.8, though PCRE version 7.0 contains some fea-         with  respect  to  Perl 5.8, though PCRE versions 7.0 and later contain
2608         tures that are expected to be in the forthcoming Perl 5.10.         some features that are expected to be in the forthcoming Perl 5.10.
2609    
2610         1. PCRE has only a subset of Perl's UTF-8 and Unicode support.  Details         1. PCRE has only a subset of Perl's UTF-8 and Unicode support.  Details
2611         of  what  it does have are given in the section on UTF-8 support in the         of  what  it does have are given in the section on UTF-8 support in the
# Line 2672  DIFFERENCES BETWEEN PCRE AND PERL Line 2683  DIFFERENCES BETWEEN PCRE AND PERL
2683         meta-character matches only at the very end of the string.         meta-character matches only at the very end of the string.
2684    
2685         (c) If PCRE_EXTRA is set, a backslash followed by a letter with no spe-         (c) If PCRE_EXTRA is set, a backslash followed by a letter with no spe-
2686         cial  meaning  is  faulted.  Otherwise,  like  Perl,  the  backslash is         cial meaning is faulted. Otherwise, like Perl, the backslash is quietly
2687         ignored. (Perl can be made to issue a warning.)         ignored.  (Perl can be made to issue a warning.)
2688    
2689         (d) If PCRE_UNGREEDY is set, the greediness of the  repetition  quanti-         (d) If PCRE_UNGREEDY is set, the greediness of the  repetition  quanti-
2690         fiers is inverted, that is, by default they are not greedy, but if fol-         fiers is inverted, that is, by default they are not greedy, but if fol-
# Line 2705  AUTHOR Line 2716  AUTHOR
2716    
2717  REVISION  REVISION
2718    
2719         Last updated: 06 March 2007         Last updated: 13 June 2007
2720         Copyright (c) 1997-2007 University of Cambridge.         Copyright (c) 1997-2007 University of Cambridge.
2721  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
2722    
# Line 2938  BACKSLASH Line 2949  BACKSLASH
2949    
2950           \d     any decimal digit           \d     any decimal digit
2951           \D     any character that is not a decimal digit           \D     any character that is not a decimal digit
2952             \h     any horizontal whitespace character
2953             \H     any character that is not a horizontal whitespace character
2954           \s     any whitespace character           \s     any whitespace character
2955           \S     any character that is not a whitespace character           \S     any character that is not a whitespace character
2956             \v     any vertical whitespace character
2957             \V     any character that is not a vertical whitespace character
2958           \w     any "word" character           \w     any "word" character
2959           \W     any "non-word" character           \W     any "non-word" character
2960    
# Line 2954  BACKSLASH Line 2969  BACKSLASH
2969    
2970         For compatibility with Perl, \s does not match the VT  character  (code         For compatibility with Perl, \s does not match the VT  character  (code
2971         11).   This makes it different from the the POSIX "space" class. The \s         11).   This makes it different from the the POSIX "space" class. The \s
2972         characters are HT (9), LF (10), FF (12), CR (13), and space  (32).  (If         characters are HT (9), LF (10), FF (12), CR (13), and  space  (32).  If
2973         "use locale;" is included in a Perl script, \s may match the VT charac-         "use locale;" is included in a Perl script, \s may match the VT charac-
2974         ter. In PCRE, it never does.)         ter. In PCRE, it never does.
2975    
2976           In UTF-8 mode, characters with values greater than 128 never match  \d,
2977           \s, or \w, and always match \D, \S, and \W. This is true even when Uni-
2978           code character property support is available.  These  sequences  retain
2979           their original meanings from before UTF-8 support was available, mainly
2980           for efficiency reasons.
2981    
2982           The sequences \h, \H, \v, and \V are Perl 5.10 features. In contrast to
2983           the  other  sequences, these do match certain high-valued codepoints in
2984           UTF-8 mode.  The horizontal space characters are:
2985    
2986             U+0009     Horizontal tab
2987             U+0020     Space
2988             U+00A0     Non-break space
2989             U+1680     Ogham space mark
2990             U+180E     Mongolian vowel separator
2991             U+2000     En quad
2992             U+2001     Em quad
2993             U+2002     En space
2994             U+2003     Em space
2995             U+2004     Three-per-em space
2996             U+2005     Four-per-em space
2997             U+2006     Six-per-em space
2998             U+2007     Figure space
2999             U+2008     Punctuation space
3000             U+2009     Thin space
3001             U+200A     Hair space
3002             U+202F     Narrow no-break space
3003             U+205F     Medium mathematical space
3004             U+3000     Ideographic space
3005    
3006           The vertical space characters are:
3007    
3008             U+000A     Linefeed
3009             U+000B     Vertical tab
3010             U+000C     Formfeed
3011             U+000D     Carriage return
3012             U+0085     Next line
3013             U+2028     Line separator
3014             U+2029     Paragraph separator
3015    
3016         A "word" character is an underscore or any character less than 256 that         A "word" character is an underscore or any character less than 256 that
3017         is  a  letter  or  digit.  The definition of letters and digits is con-         is  a  letter  or  digit.  The definition of letters and digits is con-
# Line 2964  BACKSLASH Line 3019  BACKSLASH
3019         specific  matching is taking place (see "Locale support" in the pcreapi         specific  matching is taking place (see "Locale support" in the pcreapi
3020         page). For example, in a French locale such  as  "fr_FR"  in  Unix-like         page). For example, in a French locale such  as  "fr_FR"  in  Unix-like
3021         systems,  or "french" in Windows, some character codes greater than 128         systems,  or "french" in Windows, some character codes greater than 128
3022         are used for accented letters, and these are matched by \w.         are used for accented letters, and these are matched by \w. The use  of
3023           locales with Unicode is discouraged.
        In UTF-8 mode, characters with values greater than 128 never match  \d,  
        \s, or \w, and always match \D, \S, and \W. This is true even when Uni-  
        code character property support is available. The use of  locales  with  
        Unicode is discouraged.  
3024    
3025     Newline sequences     Newline sequences
3026    
3027         Outside  a  character class, the escape sequence \R matches any Unicode         Outside  a  character class, the escape sequence \R matches any Unicode
3028         newline sequence. This is an extension to Perl. In non-UTF-8 mode \R is         newline sequence. This is a Perl 5.10 feature. In non-UTF-8 mode \R  is
3029         equivalent to the following:         equivalent to the following:
3030    
3031           (?>\r\n|\n|\x0b|\f|\r|\x85)           (?>\r\n|\n|\x0b|\f|\r|\x85)
# Line 3537  SUBPATTERNS Line 3588  SUBPATTERNS
3588         "Saturday".         "Saturday".
3589    
3590    
3591    DUPLICATE SUBPATTERN NUMBERS
3592    
3593           Perl 5.10 introduced a feature whereby each alternative in a subpattern
3594           uses the same numbers for its capturing parentheses. Such a  subpattern
3595           starts  with (?| and is itself a non-capturing subpattern. For example,
3596           consider this pattern:
3597    
3598             (?|(Sat)ur|(Sun))day
3599    
3600           Because the two alternatives are inside a (?| group, both sets of  cap-
3601           turing  parentheses  are  numbered one. Thus, when the pattern matches,
3602           you can look at captured substring number  one,  whichever  alternative
3603           matched.  This  construct  is useful when you want to capture part, but
3604           not all, of one of a number of alternatives. Inside a (?| group, paren-
3605           theses  are  numbered as usual, but the number is reset at the start of
3606           each branch. The numbers of any capturing buffers that follow the  sub-
3607           pattern  start after the highest number used in any branch. The follow-
3608           ing example is taken from the Perl documentation.  The  numbers  under-
3609           neath show in which buffer the captured content will be stored.
3610    
3611             # before  ---------------branch-reset----------- after
3612             / ( a )  (?| x ( y ) z | (p (q) r) | (t) u (v) ) ( z ) /x
3613             # 1            2         2  3        2     3     4
3614    
3615           A  backreference  or  a  recursive call to a numbered subpattern always
3616           refers to the first one in the pattern with the given number.
3617    
3618           An alternative approach to using this "branch reset" feature is to  use
3619           duplicate named subpatterns, as described in the next section.
3620    
3621    
3622  NAMED SUBPATTERNS  NAMED SUBPATTERNS
3623    
3624         Identifying  capturing  parentheses  by number is simple, but it can be         Identifying  capturing  parentheses  by number is simple, but it can be
# Line 3576  NAMED SUBPATTERNS Line 3658  NAMED SUBPATTERNS
3658           (?<DN>Sat)(?:urday)?           (?<DN>Sat)(?:urday)?
3659    
3660         There  are  five capturing substrings, but only one is ever set after a         There  are  five capturing substrings, but only one is ever set after a
3661         match.  The convenience  function  for  extracting  the  data  by  name         match.  (An alternative way of solving this problem is to use a "branch
3662         returns  the  substring  for  the first (and in this example, the only)         reset" subpattern, as described in the previous section.)
3663         subpattern of that name that matched.  This  saves  searching  to  find  
3664         which  numbered  subpattern  it  was. If you make a reference to a non-         The  convenience  function  for extracting the data by name returns the
3665         unique named subpattern from elsewhere in the  pattern,  the  one  that         substring for the first (and in this example, the only)  subpattern  of
3666         corresponds  to  the  lowest number is used. For further details of the         that  name  that  matched.  This saves searching to find which numbered
3667         interfaces for handling named subpatterns, see the  pcreapi  documenta-         subpattern it was. If you make a reference to a non-unique  named  sub-
3668         tion.         pattern  from elsewhere in the pattern, the one that corresponds to the
3669           lowest number is used. For further details of the interfaces  for  han-
3670           dling named subpatterns, see the pcreapi documentation.
3671    
3672    
3673  REPETITION  REPETITION
# Line 4455  AUTHOR Line 4539  AUTHOR
4539    
4540  REVISION  REVISION
4541    
4542         Last updated: 29 May 2007         Last updated: 13 June 2007
4543         Copyright (c) 1997-2007 University of Cambridge.         Copyright (c) 1997-2007 University of Cambridge.
4544  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
4545    
# Line 4786  RE-USING A PRECOMPILED PATTERN Line 4870  RE-USING A PRECOMPILED PATTERN
4870    
4871  COMPATIBILITY WITH DIFFERENT PCRE RELEASES  COMPATIBILITY WITH DIFFERENT PCRE RELEASES
4872    
4873         The layout of the control block that is at the start of the  data  that         In general, it is safest to  recompile  all  saved  patterns  when  you
4874         makes  up  a  compiled pattern was changed for release 5.0. If you have         update  to  a new PCRE release, though not all updates actually require
4875         any saved patterns that were compiled with  previous  releases  (not  a         this. Recompiling is definitely needed for release 7.2.
        facility  that  was  previously advertised), you will have to recompile  
        them for release 5.0 and above.  
   
        If you have any saved patterns in UTF-8 mode that use  \p  or  \P  that  
        were  compiled  with any release up to and including 6.4, you will have  
        to recompile them for release 6.5 and above.  
   
        All saved patterns from earlier releases must be recompiled for release  
        7.0  or  higher,  because  there was an internal reorganization at that  
        release.  
4876    
4877    
4878  AUTHOR  AUTHOR
# Line 4810  AUTHOR Line 4884  AUTHOR
4884    
4885  REVISION  REVISION
4886    
4887         Last updated: 24 April 2007         Last updated: 13 June 2007
4888         Copyright (c) 1997-2007 University of Cambridge.         Copyright (c) 1997-2007 University of Cambridge.
4889  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
4890    
# Line 5545  PCRE SAMPLE PROGRAM Line 5619  PCRE SAMPLE PROGRAM
5619         bility  of  matching an empty string. Comments in the code explain what         bility  of  matching an empty string. Comments in the code explain what
5620         is going on.         is going on.
5621    
5622         If PCRE is installed in the standard include  and  library  directories         The demonstration program is automatically built if you use  "./config-
5623         for  your  system, you should be able to compile the demonstration pro-         ure;make"  to  build PCRE. Otherwise, if PCRE is installed in the stan-
5624         gram using this command:         dard include and library directories for your  system,  you  should  be
5625           able to compile the demonstration program using this command:
5626    
5627           gcc -o pcredemo pcredemo.c -lpcre           gcc -o pcredemo pcredemo.c -lpcre
5628    
5629         If PCRE is installed elsewhere, you may need to add additional  options         If  PCRE is installed elsewhere, you may need to add additional options
5630         to  the  command line. For example, on a Unix-like system that has PCRE         to the command line. For example, on a Unix-like system that  has  PCRE
5631         installed in /usr/local, you  can  compile  the  demonstration  program         installed  in  /usr/local,  you  can  compile the demonstration program
5632         using a command like this:         using a command like this:
5633    
5634           gcc -o pcredemo -I/usr/local/include pcredemo.c \           gcc -o pcredemo -I/usr/local/include pcredemo.c \
5635               -L/usr/local/lib -lpcre               -L/usr/local/lib -lpcre
5636    
5637         Once  you  have  compiled the demonstration program, you can run simple         Once you have compiled the demonstration program, you  can  run  simple
5638         tests like this:         tests like this:
5639    
5640           ./pcredemo 'cat|dog' 'the cat sat on the mat'           ./pcredemo 'cat|dog' 'the cat sat on the mat'
5641           ./pcredemo -g 'cat|dog' 'the dog sat on the cat'           ./pcredemo -g 'cat|dog' 'the dog sat on the cat'
5642    
5643         Note that there is a  much  more  comprehensive  test  program,  called         Note  that  there  is  a  much  more comprehensive test program, called
5644         pcretest,  which  supports  many  more  facilities  for testing regular         pcretest, which supports  many  more  facilities  for  testing  regular
5645         expressions and the PCRE library. The pcredemo program is provided as a         expressions and the PCRE library. The pcredemo program is provided as a
5646         simple coding example.         simple coding example.
5647    
# Line 5574  PCRE SAMPLE PROGRAM Line 5649  PCRE SAMPLE PROGRAM
5649         the standard library directory, you may get an error like this when you         the standard library directory, you may get an error like this when you
5650         try to run pcredemo:         try to run pcredemo:
5651    
5652           ld.so.1:  a.out:  fatal:  libpcre.so.0:  open failed: No such file or           ld.so.1: a.out: fatal: libpcre.so.0: open failed:  No  such  file  or
5653         directory         directory
5654    
5655         This is caused by the way shared library support works  on  those  sys-         This  is  caused  by the way shared library support works on those sys-
5656         tems. You need to add         tems. You need to add
5657    
5658           -R/usr/local/lib           -R/usr/local/lib
# Line 5594  AUTHOR Line 5669  AUTHOR
5669    
5670  REVISION  REVISION
5671    
5672         Last updated: 06 March 2007         Last updated: 13 June 2007
5673         Copyright (c) 1997-2007 University of Cambridge.         Copyright (c) 1997-2007 University of Cambridge.
5674  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
5675  PCRESTACK(3)                                                      PCRESTACK(3)  PCRESTACK(3)                                                      PCRESTACK(3)
# Line 5664  PCRE DISCUSSION OF STACK USAGE Line 5739  PCRE DISCUSSION OF STACK USAGE
5739         In environments where stack memory is constrained, you  might  want  to         In environments where stack memory is constrained, you  might  want  to
5740         compile  PCRE to use heap memory instead of stack for remembering back-         compile  PCRE to use heap memory instead of stack for remembering back-
5741         up points. This makes it run a lot more slowly, however. Details of how         up points. This makes it run a lot more slowly, however. Details of how
5742         to do this are given in the pcrebuild documentation.         to do this are given in the pcrebuild documentation. When built in this
5743           way, instead of using the stack, PCRE obtains and frees memory by call-
5744         In  Unix-like environments, there is not often a problem with the stack         ing  the  functions  that  are  pointed to by the pcre_stack_malloc and
5745         unless very long strings are involved,  though  the  default  limit  on         pcre_stack_free variables. By default,  these  point  to  malloc()  and
5746         stack  size  varies  from system to system. Values from 8Mb to 64Mb are         free(),  but you can replace the pointers to cause PCRE to use your own
5747           functions. Since the block sizes are always the same,  and  are  always
5748           freed in reverse order, it may be possible to implement customized mem-
5749           ory handlers that are more efficient than the standard functions.
5750    
5751           In Unix-like environments, there is not often a problem with the  stack
5752           unless  very  long  strings  are  involved, though the default limit on
5753           stack size varies from system to system. Values from 8Mb  to  64Mb  are
5754         common. You can find your default limit by running the command:         common. You can find your default limit by running the command:
5755    
5756           ulimit -s           ulimit -s
5757    
5758         Unfortunately, the effect of running out of  stack  is  often  SIGSEGV,         Unfortunately,  the  effect  of  running out of stack is often SIGSEGV,
5759         though  sometimes  a more explicit error message is given. You can nor-         though sometimes a more explicit error message is given. You  can  nor-
5760         mally increase the limit on stack size by code such as this:         mally increase the limit on stack size by code such as this:
5761    
5762           struct rlimit rlim;           struct rlimit rlim;
# Line 5682  PCRE DISCUSSION OF STACK USAGE Line 5764  PCRE DISCUSSION OF STACK USAGE
5764           rlim.rlim_cur = 100*1024*1024;           rlim.rlim_cur = 100*1024*1024;
5765           setrlimit(RLIMIT_STACK, &rlim);           setrlimit(RLIMIT_STACK, &rlim);
5766    
5767         This reads the current limits (soft and hard) using  getrlimit(),  then         This  reads  the current limits (soft and hard) using getrlimit(), then
5768         attempts  to  increase  the  soft limit to 100Mb using setrlimit(). You         attempts to increase the soft limit to  100Mb  using  setrlimit().  You
5769         must do this before calling pcre_exec().         must do this before calling pcre_exec().
5770    
5771         PCRE has an internal counter that can be used to  limit  the  depth  of         PCRE  has  an  internal  counter that can be used to limit the depth of
5772         recursion,  and  thus cause pcre_exec() to give an error code before it         recursion, and thus cause pcre_exec() to give an error code  before  it
5773         runs out of stack. By default, the limit is very  large,  and  unlikely         runs  out  of  stack. By default, the limit is very large, and unlikely
5774         ever  to operate. It can be changed when PCRE is built, and it can also         ever to operate. It can be changed when PCRE is built, and it can  also
5775         be set when pcre_exec() is called. For details of these interfaces, see         be set when pcre_exec() is called. For details of these interfaces, see
5776         the pcrebuild and pcreapi documentation.         the pcrebuild and pcreapi documentation.
5777    
5778         As a very rough rule of thumb, you should reckon on about 500 bytes per         As a very rough rule of thumb, you should reckon on about 500 bytes per
5779         recursion. Thus, if you want to limit your  stack  usage  to  8Mb,  you         recursion.  Thus,  if  you  want  to limit your stack usage to 8Mb, you
5780         should  set  the  limit at 16000 recursions. A 64Mb stack, on the other         should set the limit at 16000 recursions. A 64Mb stack,  on  the  other
5781         hand, can support around 128000 recursions. The pcretest  test  program         hand,  can  support around 128000 recursions. The pcretest test program
5782         has a command line option (-S) that can be used to increase the size of         has a command line option (-S) that can be used to increase the size of
5783         its stack.         its stack.
5784    
# Line 5710  AUTHOR Line 5792  AUTHOR
5792    
5793  REVISION  REVISION
5794    
5795         Last updated: 12 March 2007         Last updated: 05 June 2007
5796         Copyright (c) 1997-2007 University of Cambridge.         Copyright (c) 1997-2007 University of Cambridge.
5797  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
5798    

Legend:
Removed from v.181  
changed lines
  Added in v.182

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12