এটি historicalতিহাসিক কারণে।
ed
70 এর দশকের গোড়ার দিকে ইউজিতে প্রথমে রিজেপেক্স চালু হয়েছিল । যদিও ed
ওপর ভিত্তি করে qed
যার বাস্তবায়ন একই লেখক দ্বারা আরো জটিল regexp বোঝা, ed
শুধুমাত্র বোঝা ^
, $
, [...]
, .
, *
এবং \
উপরের সব অব্যাহতি।
এখন, যখন আরও বেশি অপারেটর থাকার দরকার হয়েছিল, পশ্চাদপদ সামঞ্জস্যতা না ভেঙে তাদের পরিচয় করানোর জন্য কোনও উপায় খুঁজে বের করতে হয়েছিল। একটি স্ক্রিপ্ট ব্যবহার করতে ব্যবহার করে থাকেন s
ed
কমান্ড হিসাবে s/foo() {/foo (var) {/g
সমস্ত উদাহরণ প্রতিস্থাপন foo() {
সঙ্গে foo(var) {
এবং আপনি একটি চালু (
বা {
অপারেটর, যে স্ক্রিপ্ট ভঙ্গ করবে।
তবে কোনও স্ক্রিপ্ট করবে না s/foo\(\) {/foo\(var\) {/
, কারণ এটি একই রকম s/foo() {/foo(var) {/
এবং (
রেই অপারেটর না হওয়ায় পালানোর কোনও কারণ ছিল না। সুতরাং কোনও নতুন \(
বা \{
অপারেটর প্রবর্তন পিছনের সামঞ্জস্যতা ভঙ্গ করে না কারণ এটি পুরানো বাক্য গঠন ব্যবহার করে কোনও বিদ্যমান স্ক্রিপ্ট ভাঙার খুব কমই সম্ভাবনা।
সুতরাং, যে কি করা হয়েছিল। পরে, \(...\)
প্রাথমিকভাবে কেবলমাত্র s
ed
কমান্ডের মতো s/foo\(.\)/\1bar/
এবং পরে grep '\(.\)\1'
( যেমনটি পছন্দ মতো জিনিস নয় \(xx\)*
) করার জন্য যুক্ত করা হয়েছিল।
ইউনিক্সভি 7 (1979, সুতরাং প্রায় এক দশক পরে), নিয়মিত এক্সপ্রেশনগুলির একটি নতুন রূপকে নতুন egrep
এবং awk
ইউটিলিটিগুলিতে বর্ধিত নিয়মিত এক্সপ্রেশন বলে যুক্ত করা হয়েছিল (যেহেতু তারা নতুন সরঞ্জাম, তাই কোনও পিছনে সামঞ্জস্যতা ভাঙার দরকার নেই)। শেষ অবধি , এটি কেন টম্পসনের প্রাচীন qed
(অল্টারনেশন অপারেটর |
, গ্রুপিং (..)*
) এ উপলব্ধ কার্যকারিতা সরবরাহ করেছিল এবং কয়েকটি অপারেটর যুক্ত করেছে +
এবং ?
(তবে বেসিক নিয়মিত প্রকাশের ব্যাকরেফ বৈশিষ্ট্য নেই)।
পরে বিএসডি যোগ করা হয় \<
এবং \>
(বিআরই এবং ইআরই উভয়) \{
এবং \}
এসআইএসভি কেবলমাত্র বিআরইতে যুক্ত হয়।
এটি এর পরে খুব বেশি আগে হয়নি {
এবং পূর্বের }
সাথে যুক্ত হয়েছিল, যেমন ভাঙা পশ্চাৎ সামঞ্জস্যতা দ্বারা by সবাই এটি যুক্ত করে না। উদাহরণস্বরূপ, জিএনইউ POSIX কনফরমেশন মোডে বাধ্য awk
না করা পর্যন্ত সংস্করণ 4.0.0 (2011) অবধি সমর্থন করে {
না।
grep
নব্বইয়ের দশকের গোড়ার দিকে যখন জিএনইউ লেখা হয়েছিল, তখন এটি বিএসডি এবং সিএসভি উভয়ের (যেমন \<
, {
) সমস্ত গুডিকে যুক্ত করেছে এবং বিআরই এবং ইআরইয়ের জন্য দুটি পৃথক রেজিএক্সএক্স সিনট্যাক্স এবং ইঞ্জিনের পরিবর্তে উভয়টিতে একই অপারেটরগুলি প্রয়োগ করেছে, কেবল বিআরই অংশীদারদের (
, ?
, {
, +
একটি ব্যাকস্ল্যাশ সঙ্গে পূর্বে করা থাকতে হবে (অন্যান্য BRE বাস্তবায়নের সঙ্গে সামঞ্জস্যপূর্ণ হতে)। এটা কেন আপনি কি করতে পারেন .\+
গনুহ মধ্যে grep
(যদিও যে POSIX নয় বা অন্যান্য বাস্তবায়নের সমর্থন করে) এবং আপনি কি করতে পারেন (.)\1
গনুহ মধ্যে egrep
(যদিও যে POSIX না বা গনুহ সহ অন্যান্য অনেক বাস্তবায়নের দ্বারা সমর্থিত awk
)।
যোগ করার পদ্ধতি \x
অপারেটার একটি অনগ্রসর সামঞ্জস্যপূর্ণ ভাবে আরো অপারেটার যোগ করার জন্য একমাত্র উপায় নয়। উদাহরণস্বরূপ, perl
ব্যবহৃত (?...)
। যেমন যে এখনও অনগ্রসর Eres সঙ্গে সামঞ্জস্যপূর্ণ (?=...)
Eres বৈধ নয়, জন্য একই .*?
। vim
অনুরূপ অপারেটরগুলির জন্য এটি পরিচয় করিয়ে \@=
বা .\{-}
উদাহরণস্বরূপ পৃথকভাবে করেছিলেন ।