ऐसा प्रतीत होता है कि, Oracle 11 में, *
और +
पैटर्न (उनसे पहले कुछ भी नहीं के साथ) शून्य-चौड़ाई वाले मैच उत्पन्न करते हैं। तो (*)
और (+)
समूह कैप्चर कर रहे हैं ()
शून्य-चौड़ाई वाले पैटर्न युक्त *
या +
क्रमशः।
ये सभी प्रश्न एक पंक्ति लौटाते हैं:
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '*' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '(*)' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '^*' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '^(*)' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '*1' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '+' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '(+)' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '^+' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '^(+)' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '+1' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '^+1' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '+1$' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '^+1$' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '()' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '12', '1(*)2' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '12', '1(+)2' );
ये प्रश्न कोई पंक्ति नहीं लौटाते:
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '*2' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '^*$' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', '^+$' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '12', '11(*)2' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '12', '11(+)2' );
साथ ही, NULL
. से किसी भी पैटर्न का मिलान करना या NULL
. के सामने एक स्ट्रिंग पैटर्न कोई पंक्ति नहीं लौटाएगा:
SELECT * FROM DUAL WHERE REGEXP_LIKE( NULL, '*' );
SELECT * FROM DUAL WHERE REGEXP_LIKE( '1', NULL );
REGEXP_SUBSTR
का उपयोग करना :
SELECT REGEXP_SUBSTR( '1', '+' ) FROM DUAL;
NULL
. वाली एकल पंक्ति को आउटपुट करता है ।