PCRETEST(1) General Commands Manual PCRETEST(1) (NAME) pcretest - PCRE (SYNOPSIS) pcretest [options] [input file [output file]] pcretest PCRE . pcrepattern . PCRE pcreapi pcre16 pcre32 . pcretest . . PCRE . PCRE pcretest . PCRE . . (INPUT DATA FORMAT) pcretest fgets() C libreadline ( ). fgets() . ( 1A) (EOF) . (ASCII) pcretest . C fgets() . PCRE (PCRE's 8-BIT, 16-BIT AND 32-BIT LIBRARIES) 8.30 PCRE . . 8.32 . pcretest . . PCRE . . pcre[16|32]_xx : < pcre16_xx pcre32_xx >>. (COMMAND LINE OPTIONS) -8 ( ). . -16 . . . -32 . . . -b /B ( ) . -C PCRE . . -C option . RunTest . : ebcdic-nl LF (= NL) EBCDIC: 0x15 0x25 0 ASCII 0 linksize (2 3 4) newline : CR, LF, CRLF, ANYCRLF, ANY 0 bsr \R : ANYCRLF ANY 0 1 0 : ebcdic EBCDIC jit Just-In-Time pcre16 pcre32 pcre8 ucp utf UTF-8 / UTF-16 / UTF-32 0 . -d /D () -d -b -i . -dfa \D pcre[16|32]_dfa_exec() pcre[16|32]_exec() ( ). -help . -i /I . -M \M PCRE pcre[16|32]_exec() MATCH_LIMIT MATCH_LIMIT_RECURSION . -m . /M . . -O /O auto-possessification . -o osize pcre[16|32]_exec() pcre[16|32]_dfa_exec() osize . 45 14 pcre[16|32]_exec() 22 pcre[16|32]_dfa_exec() . \O ( ). -p /P POSIX PCRE . -p . . -q pcretest . -S size size . -s -s+ /S . -s+ JIT pcre[16|32]_study() Just-In-Time . JIT 1 7 -s+ JIT : 1 2 (soft partial) 3 4 (hard partial) 6 7 () -s+ -s++ ( ) JIT "(JIT)" . -s JIT. /I /D ( ) -s -i -d . -s . -M -t -tm -s . /C . . (*MARK) . -s ( /S ). -t ( ) . -m -t . -t ( ) . "-t 1000" 1000 . 500000 . -tm -t . -T -TM -t -tm . (DESCRIPTION) pcretest . stdout . stdin stdout (prompt) "re>" "data>" . pcretest libreadline . readline() . . -help readline() . . . . \n ( \r \r\n ) . . . - : /(a|bc)x+yz/ . . : /abc\/def/ - . : /abc/\ . : /abc\/ "abc/" pcretest . (PATTERN MODIFIERS) . (Perl) << /i>> . . . . /8 UTF /9 PCRE_NEVER_UTF ( UTF) /? UTF /+ /= ( ) /A PCRE_ANCHORED /B /C PCRE_AUTO_CALLOUT /D /B /I /E PCRE_DOLLAR_ENDONLY /F /f PCRE_FIRSTLINE /G ( ) /g ( startoffset) /I /i PCRE_CASELESS /J PCRE_DUPNAMES /K /L (locale) /M /m PCRE_MULTILINE /N PCRE_NO_AUTO_CAPTURE /O PCRE_NO_AUTO_POSSESS /P POSIX /Q /S /s PCRE_DOTALL /T /U PCRE_UNGREEDY /W PCRE_UCP /X PCRE_EXTRA /x PCRE_EXTENDED /Y PCRE_NO_START_OPTIMIZE /Z /B / PCRE_NEWLINE_ANY / PCRE_NEWLINE_ANYCRLF / PCRE_NEWLINE_CR / PCRE_NEWLINE_CRLF / PCRE_NEWLINE_LF / PCRE_BSR_ANYCRLF / PCRE_BSR_UNICODE / PCRE_JAVASCRIPT_COMPAT (Perl-compatible modifiers) /i /m /s /x pcre[16|32]_compile() PCRE_CASELESS PCRE_MULTILINE PCRE_DOTALL PCRE_EXTENDED . . : /caseless/i PCRE (Modifiers for other PCRE options) PCRE : /8 PCRE_UTF8 ) /? PCRE_NO_UTF8_CHECK ) /8 PCRE_UTF16 ) /? PCRE_NO_UTF16_CHECK ) /8 PCRE_UTF32 ) /? PCRE_NO_UTF32_CHECK ) /9 PCRE_NEVER_UTF /A PCRE_ANCHORED /C PCRE_AUTO_CALLOUT /E PCRE_DOLLAR_ENDONLY /f PCRE_FIRSTLINE /J PCRE_DUPNAMES /N PCRE_NO_AUTO_CAPTURE /O PCRE_NO_AUTO_POSSESS /U PCRE_UNGREEDY /W PCRE_UCP /X PCRE_EXTRA /Y PCRE_NO_START_OPTIMIZE / PCRE_NEWLINE_ANY / PCRE_NEWLINE_ANYCRLF / PCRE_NEWLINE_CR / PCRE_NEWLINE_CRLF / PCRE_NEWLINE_LF / PCRE_BSR_ANYCRLF / PCRE_BSR_UNICODE / PCRE_JAVASCRIPT_COMPAT . CRLF : /^abc/m PCRE_UTF8/16/32 /8 \x{hh...} . 0x100 . PCRE pcreapi . (Finding all matches in a string) /g /G . PCRE . /g /G startoffset pcre[16|32]_exec() ( ) . ( \b \B) . pcre[16|32]_exec() /g /G PCRE_NOTEMPTY_ATSTART PCRE_ANCHORED . . /g split() . CRLF CR LF . (Other modifiers) pcretest . /+ pcretest . . + . . /S /S+ /S++ . /= . ( pcre[16|32]_exec()). -1 "" . . /B . pcretest . /Z . . /D PCRE /BI /B /I. /F pcretest . PCRE ( ) . POSIX PCRE /P . . /I pcretest ( ). pcre[16|32]_fullinfo() . . "char" UTF ( ). /K pcretest pcre[16|32]_exec() . pcretest pcre[16|32]_extra pcre[16|32]_study() PCRE_EXTRA_MARK mark pcre[16|32]_exec() . mark NULL pcretest . "MK:" . . /L : /pattern/Lfr_FR . pcre[16|32]_maketables() pcre[16|32]_compile() . /L ( /T) NULL /L . /M . pcre[16|32] . PCRE_STUDY_JIT_COMPILE JIT . /Q pcre_stack_guard . '0' '1' PCRE ( pcreapi ). /S pcre[16|32]_study() . /S . . /S pcre[16|32]_study() PCRE_STUDY_EXTRA_NEEDED pcre_extra . /S S -s . -s . . /S + pcre[16|32]_study() JIT Just-In-Time . JIT /S+ 1 7 : 1 2 3 4 6 7 () /S+ /S++ ( ) JIT "(JIT)" . /+ /S /S+ . JIT JIT pcre[16|32]_exec() . pcrejit . \J JIT . /S JIT -s . JIT . /T . pcre[16|32]_compile() . PCRE . : 0 ASCII pcre_chartables.c.dist 1 ISO 8859 1 128 . POSIX (Using the POSIX wrapper API) /P pcretest PCRE POSIX . . /P regcomp() : /i REG_ICASE /m REG_NEWLINE /N REG_NOSUB /s REG_DOTALL ) /U REG_UNGREEDY ) /W REG_UCP ) POSIX /8 REG_UTF8 ) /+ . . (Locking out certain modifiers) PCRE UTF-8/16/32 . . UTF . . pcretest "< forbid " . UTF : < forbid 8W /8 /W . . < > < . : < forbid < "forbid" . ( " " ) < < . (DATA LINES) pcre[16|32]_exec() \ . PCRE . "" . : \a (BEL, \x07) \b (backspace, \x08) \e (escape, \x27) \f (form feed, \x0c) \n (newline, \x0a) \qdd PCRE_MATCH_LIMIT dd ( ) \r (carriage return, \x0d) \t (tab, \x09) \v (vertical tab, \x0b) \nnn ( 3 ) 255 UTF-8 \o{dd...} ( ) \xhh ( 2 ) \x{hh...} ( ) \A PCRE_ANCHORED pcre[16|32]_exec() pcre[16|32]_dfa_exec() \B PCRE_NOTBOL pcre[16|32]_exec() pcre[16|32]_dfa_exec() \Cdd pcre[16|32]_copy_substring() dd ( 32) \Cname pcre[16|32]_copy_named_substring() "name" ( - ) \C+ \C- \C!n 1 0 n \C!n!m 1 0 n m \C*n n ( ) \D pcre[16|32]_dfa_exec() \F pcre[16|32]_dfa_exec() \Gdd pcre[16|32]_get_substring() dd ( 32) \Gname pcre[16|32]_get_named_substring() "name" ( - ) \Jdd JIT dd ( ) \L pcre[16|32]_get_substringlist() \M MATCH_LIMIT MATCH_LIMIT_RECURSION \N PCRE_NOTEMPTY pcre[16|32]_exec() pcre[16|32]_dfa_exec() PCRE_NOTEMPTY_ATSTART \Odd pcre[16|32]_exec() dd ( ) \P PCRE_PARTIAL_SOFT pcre[16|32]_exec() pcre[16|32]_dfa_exec() PCRE_PARTIAL_HARD \Qdd PCRE_MATCH_LIMIT_RECURSION dd ( ) \R PCRE_DFA_RESTART pcre[16|32]_dfa_exec() \S get/free \Y PCRE_NO_START_OPTIMIZE pcre[16|32]_exec() pcre[16|32]_dfa_exec() \Z PCRE_NOTEOL pcre[16|32]_exec() pcre[16|32]_dfa_exec() \? PCRE_NO_UTF[8|16|32]_CHECK pcre[16|32]_exec() pcre[16|32]_dfa_exec() \>dd dd ( "-" ) startoffset pcre[16|32]_exec() pcre[16|32]_dfa_exec() \ PCRE_NEWLINE_CR pcre[16|32]_exec() pcre[16|32]_dfa_exec() \ PCRE_NEWLINE_LF pcre[16|32]_exec() pcre[16|32]_dfa_exec() \ PCRE_NEWLINE_CRLF pcre[16|32]_exec() pcre[16|32]_dfa_exec() \ PCRE_NEWLINE_ANYCRLF pcre[16|32]_exec() pcre[16|32]_dfa_exec() \ PCRE_NEWLINE_ANY pcre[16|32]_exec() pcre[16|32]_dfa_exec() \x{hh...} /8 . . . \xhh UTF-8 UTF-8 . \x{hh} UTF-8 UTF-8 127 . UTF-8 \x{hh} 256 . UTF-16 \x{hhhh} . UTF-16 . UTF-32 \x{...} . UTF-32 . . . . . . \J Just-In-Time . JIT . 32K . \M pcretest pcre[16|32]_exec() match_limit match_limit_recursion pcre[16|32]_extra pcre[16|32]_exec() . pcre[16|32]_exec() JIT /S+ -s+ . match_limit (backtracking) . . match_limit_recursion ( PCRE NO_RECURSE ) . \O -O ( 45) \O pcre[16|32]_exec() . /P POSIX \B \N \Z REG_NOTBOL REG_NOTEMPTY REG_NOTEOL regexec() . (THE ALTERNATIVE MATCHING FUNCTION) pcretest PCRE pcre[16|32]_exec() . PCRE pcre[16|32]_dfa_exec() . pcrematching . \D -dfa . . \F . . PCRETEST (DEFAULT OUTPUT FROM PCRETEST) pcre[16|32]_exec() . pcretest pcre[16|32]_exec() 0 . PCRE_ERROR_NOMATCH "No match" pcre[16|32]_exec() PCRE_ERROR_PARTIAL "Partial match:" . ( \K \b \B ). pcretest PCRE . UTF . pcretest : $ pcretest PCRE version 8.13 2011-04-30 re> /^abc(\d+)/ data> abc123 0: abc123 1: 123 data> xyz No match pcre[16|32]_exec() pcretest . . "" "" : re> /(a)|(b)/ data> a 0: a 1: a data> b 0: b 1: 2: b 256 UTF \xhh . \x{hh...} . . /+ 0 "0+" : re> /cat/+ data> cataract 0: cat 0+ aract /g /G : re> /\Bi(\w\w)/g data> Mississippi 0: iss 1: ss 0: iss 1: ss 0: ipp 1: pp "No match" . ( 4 \>4 ): re> /xyz/ data> xyz\>4 Error -24 (bad offset value) \C \G \L C G L . . ( ) \C \G . ( ">" ) . \n ( \r \r\n ) . (OUTPUT FROM THE ALTERNATIVE MATCHING FUNCTION) pcre[16|32]_dfa_exec() ( \D -dfa) . : re> /(tang|tangerine|tan)/ data> yellow tangerine\D 0: tangerine 1: tang 2: tan ( "tang" ). ( ). PCRE_ERROR_PARTIAL "Partial match:" . ( \K \b \B ). /g . : re> /(tang|tangerine|tan)/g data> yellow tangerine and tangy sultana\D 0: tangerine 1: tang 2: tan 0: tang 1: tan 0: tan . (RESTARTING AFTER A PARTIAL MATCH) PCRE_ERROR_PARTIAL \R . : re> /^\d?\d(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d\d$/ data> 23ja\P\D Partial match: 23ja data> n05\R\D 0: n05 pcrepartial . (CALLOUTS) pcretest . . . : --->pqrabcdef 0 ^ ^ \d 0 \d . (^) . 255 /C . . : re> /\d?[A-E]\*/C data> E* --->E* +0 ^ \d? +3 ^ [A-E] +8 ^^ \* +10 ^ ^ 0: E* (*MARK) . : re> /a(*MARK:X)bc/C data> abc --->abc +0 ^ a +1 ^^ (*MARK:X) +10 ^^ b Latest Mark: X +11 ^ ^ c +12 ^ ^ 0: abc "a" "b" . "" . pcretest ( ) \C ( ) . pcretest . pcrecallout . (NON-PRINTING CHARACTERS) pcretest 32-126 . pcretest ( /L). isprint() . (SAVING AND RELOADING COMPILED PATTERNS) POSIX PCRE /P . POSIX > pcretest . : /pattern/im >/some/file pcreprecompile . JIT JIT . () . big- endian ( ) . ( ) . . ( JIT) . pcretest . < pcretest . < < pcretest < . : re> JIT JIT . pcretest . pcretest (endianness) . i86 SPARC . : Compiled pattern (byte-inverted) loaded from /some/file . " "<" . "(byte-inverted)" . . (~) . pcretest . . . (crash) pcretest . . (SEE ALSO) pcre(3), pcre16(3), pcre32(3), pcreapi(3), pcrecallout(3), pcrejit, pcrematching(3), pcrepartial(d), pcrepattern(3), pcreprecompile(3). (AUTHORS) Philip Hazel University Computing Service Cambridge CB2 3QH, England. (REVISION) Last updated: 10 February 2020 Copyright (c) 1997-2020 University of Cambridge. PCRE 8.44 10 February 2020 PCRETEST(1)