From 9968a235b6bc12b95fbfe3fb9a09a4daf7bcdae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Borbo=C3=ABn?= Date: Sat, 19 Aug 2017 11:15:19 +0200 Subject: [PATCH] Homogenized images (#69) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * RegExp image for French plus * Some typo corrected * Typographics rules (as space before :) * égual - égal * Images folder added, img src updated * § formatted to 80 lines --- README-es.md | 2 +- README-fr.md | 2 +- README-ja.md | 2 +- README.md | 282 ++++++++++++++++++------------ img/img_original.png | Bin 0 -> 6634 bytes img/regexp-en.png | Bin 0 -> 32144 bytes img/regexp-es.png | Bin 0 -> 34234 bytes img/regexp-fr.png | Bin 0 -> 32922 bytes img/regexp.svg | 397 +++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 573 insertions(+), 112 deletions(-) create mode 100644 img/img_original.png create mode 100644 img/regexp-en.png create mode 100644 img/regexp-es.png create mode 100644 img/regexp-fr.png create mode 100644 img/regexp.svg diff --git a/README-es.md b/README-es.md index 6988406..82ec6f6 100644 --- a/README-es.md +++ b/README-es.md @@ -21,7 +21,7 @@ Imagina que estas escribiendo una aplicación y quieres agregar reglas para cuan

-Regular expression + Expresión regular

De la expresión regular anterior, se puede aceptar las cadenas 'john_doe', 'jo-hn_doe' y 'john12_as'. La expresión no coincide con el nombre de usuario 'Jo', porque es una cadena de caracteres que contiene letras mayúsculas y es demasiado corta. diff --git a/README-fr.md b/README-fr.md index 729e2dd..126ca62 100644 --- a/README-fr.md +++ b/README-fr.md @@ -24,7 +24,7 @@ le pseudonyme à contenir des lettres, des nombres, des underscores et des trait de caractères dans le pseudonyme pour qu'il n'ait pas l'air moche. Nous utilisons l'expression régulière suivante pour valider un pseudonyme:

-Expression régulière + Expressions régulières

L'expression régulière ci-dessus peut accepter les strings `john_doe`, `jo-hn_doe` et `john12_as`. Ça ne fonctionne pas avec `Jo` car diff --git a/README-ja.md b/README-ja.md index bdce2ac..8fb870b 100644 --- a/README-ja.md +++ b/README-ja.md @@ -27,7 +27,7 @@

-Regular expression + Regular expression

この正規表現によって `john_doe, jo-hn_doe, john12_as` などは許容されることになります。 diff --git a/README.md b/README.md index 7a05ff3..823ce08 100644 --- a/README.md +++ b/README.md @@ -15,20 +15,26 @@ > Regular expression is a group of characters or symbols which is used to find a specific pattern from a text. -A regular expression is a pattern that is matched against a subject string from left to right. The word "Regular expression" is a -mouthful, you will usually find the term abbreviated as "regex" or "regexp". Regular expression is used for replacing a text within -a string, validating form, extract a substring from a string based upon a pattern match, and so much more. +A regular expression is a pattern that is matched against a subject string from +left to right. The word "Regular expression" is a mouthful, you will usually +find the term abbreviated as "regex" or "regexp". Regular expression is used for +replacing a text within a string, validating form, extract a substring from a +string based upon a pattern match, and so much more. + +Imagine you are writing an application and you want to set the rules for when a +user chooses their username. We want to allow the username to contain letters, +numbers, underscores and hyphens. We also want to limit the number of characters +in username so it does not look ugly. We use the following regular expression to +validate a username: -Imagine you are writing an application and you want to set the rules for when a user chooses their username. We want to -allow the username to contain letters, numbers, underscores and hyphens. We also want to limit the number of -characters in username so it does not look ugly. We use the following regular expression to validate a username:

-Regular expression + Regular expression

-Above regular expression can accept the strings `john_doe`, `jo-hn_doe` and `john12_as`. It does not match `Jo` because that string -contains uppercase letter and also it is too short. +Above regular expression can accept the strings `john_doe`, `jo-hn_doe` and +`john12_as`. It does not match `Jo` because that string contains uppercase +letter and also it is too short. ## Table of Contents @@ -61,8 +67,9 @@ contains uppercase letter and also it is too short. ## 1. Basic Matchers -A regular expression is just a pattern of characters that we use to perform search in a text. For example, the regular expression -`the` means: the letter `t`, followed by the letter `h`, followed by the letter `e`. +A regular expression is just a pattern of characters that we use to perform +search in a text. For example, the regular expression `the` means: the letter +`t`, followed by the letter `h`, followed by the letter `e`.
 "the" => The fat cat sat on the mat.
@@ -70,9 +77,11 @@ A regular expression is just a pattern of characters that we use to perform sear
 
 [Test the regular expression](https://regex101.com/r/dmRygT/1)
 
-The regular expression `123` matches the string `123`. The regular expression is matched against an input string by comparing each
-character in the regular expression to each character in the input string, one after another. Regular expressions are normally
-case-sensitive so the regular expression `The` would not match the string `the`.
+The regular expression `123` matches the string `123`. The regular expression is
+matched against an input string by comparing each character in the regular
+expression to each character in the input string, one after another. Regular
+expressions are normally case-sensitive so the regular expression `The` would
+not match the string `the`.
 
 
 "The" => The fat cat sat on the mat.
@@ -82,9 +91,10 @@ case-sensitive so the regular expression `The` would not match the string `the`.
 
 ## 2. Meta Characters
 
-Meta characters are the building blocks of the regular expressions.  Meta characters do not stand for themselves but instead are
-interpreted in some special way. Some meta characters have a special meaning and are written inside square brackets.
-The meta characters are as follows:
+Meta characters are the building blocks of the regular expressions.  Meta
+characters do not stand for themselves but instead are interpreted in some
+special way. Some meta characters have a special meaning and are written inside
+square brackets. The meta characters are as follows:
 
 |Meta character|Description|
 |:----:|----|
@@ -103,9 +113,10 @@ The meta characters are as follows:
 
 ## 2.1 Full stop
 
-Full stop `.` is the simplest example of meta character. The meta character `.` matches any single character. It will not match return 
-or newline characters. For example, the regular expression `.ar` means: any character, followed by the letter `a`, followed by the 
-letter `r`.
+Full stop `.` is the simplest example of meta character. The meta character `.`
+matches any single character. It will not match return or newline characters.
+For example, the regular expression `.ar` means: any character, followed by the
+letter `a`, followed by the letter `r`.
 
 
 ".ar" => The car parked in the garage.
@@ -115,9 +126,11 @@ letter `r`.
 
 ## 2.2 Character set
 
-Character sets are also called character class. Square brackets are used to specify character sets. Use a hyphen inside a character set to
-specify the characters' range. The order of the character range inside square brackets doesn't matter. For example, the regular
-expression `[Tt]he` means: an uppercase `T` or lowercase `t`, followed by the letter `h`, followed by the letter `e`.
+Character sets are also called character class. Square brackets are used to
+specify character sets. Use a hyphen inside a character set to specify the
+characters' range. The order of the character range inside square brackets
+doesn't matter. For example, the regular expression `[Tt]he` means: an uppercase
+`T` or lowercase `t`, followed by the letter `h`, followed by the letter `e`.
 
 
 "[Tt]he" => The car parked in the garage.
@@ -125,7 +138,9 @@ expression `[Tt]he` means: an uppercase `T` or lowercase `t`, followed by the le
 
 [Test the regular expression](https://regex101.com/r/2ITLQ4/1)
 
-A period inside a character set, however, means a literal period. The regular expression `ar[.]` means: a lowercase character `a`, followed by letter `r`, followed by a period `.` character.
+A period inside a character set, however, means a literal period. The regular
+expression `ar[.]` means: a lowercase character `a`, followed by letter `r`,
+followed by a period `.` character.
 
 
 "ar[.]" => A garage is a good place to park a car.
@@ -135,9 +150,10 @@ A period inside a character set, however, means a literal period. The regular ex
 
 ### 2.2.1 Negated character set
 
-In general, the caret symbol represents the start of the string, but when it is typed after the opening square bracket it negates the
-character set. For example, the regular expression `[^c]ar` means: any character except `c`, followed by the character `a`, followed by
-the letter `r`.
+In general, the caret symbol represents the start of the string, but when it is
+typed after the opening square bracket it negates the character set. For
+example, the regular expression `[^c]ar` means: any character except `c`,
+followed by the character `a`, followed by the letter `r`.
 
 
 "[^c]ar" => The car parked in the garage.
@@ -147,14 +163,17 @@ the letter `r`.
 
 ## 2.3 Repetitions
 
-Following meta characters `+`, `*` or `?` are used to specify how many times a subpattern can occur. These meta characters act
-differently in different situations.
+Following meta characters `+`, `*` or `?` are used to specify how many times a
+subpattern can occur. These meta characters act differently in different
+situations.
 
 ### 2.3.1 The Star
 
-The symbol `*` matches zero or more repetitions of the preceding matcher. The regular expression `a*` means: zero or more repetitions
-of preceding lowercase character `a`. But if it appears after a character set or class then it finds the repetitions of the whole
-character set. For example, the regular expression `[a-z]*` means: any number of lowercase letters in a row.
+The symbol `*` matches zero or more repetitions of the preceding matcher. The
+regular expression `a*` means: zero or more repetitions of preceding lowercase
+character `a`. But if it appears after a character set or class then it finds
+the repetitions of the whole character set. For example, the regular expression
+`[a-z]*` means: any number of lowercase letters in a row.
 
 
 "[a-z]*" => The car parked in the garage #21.
@@ -162,10 +181,12 @@ character set. For example, the regular expression `[a-z]*` means: any number of
 
 [Test the regular expression](https://regex101.com/r/7m8me5/1)
 
-The `*` symbol can be used with the meta character `.` to match any string of characters `.*`. The `*` symbol can be used with the
-whitespace character `\s` to match a string of whitespace characters. For example, the expression `\s*cat\s*` means: zero or more
-spaces, followed by lowercase character `c`, followed by lowercase character `a`, followed by lowercase character `t`, followed by
-zero or more spaces.
+The `*` symbol can be used with the meta character `.` to match any string of
+characters `.*`. The `*` symbol can be used with the whitespace character `\s`
+to match a string of whitespace characters. For example, the expression
+`\s*cat\s*` means: zero or more spaces, followed by lowercase character `c`,
+followed by lowercase character `a`, followed by lowercase character `t`,
+followed by zero or more spaces.
 
 
 "\s*cat\s*" => The fat cat sat on the concatenation.
@@ -175,8 +196,10 @@ zero or more spaces.
 
 ### 2.3.2 The Plus
 
-The symbol `+` matches one or more repetitions of the preceding character. For example, the regular expression `c.+t` means: lowercase
-letter `c`, followed by at least one character, followed by the lowercase character `t`. It needs to be clarified that `t` is the last `t` in the sentence.
+The symbol `+` matches one or more repetitions of the preceding character. For
+example, the regular expression `c.+t` means: lowercase letter `c`, followed by
+at least one character, followed by the lowercase character `t`. It needs to be
+clarified that `t` is the last `t` in the sentence.
 
 
 "c.+t" => The fat cat sat on the mat.
@@ -186,9 +209,11 @@ letter `c`, followed by at least one character, followed by the lowercase charac
 
 ### 2.3.3 The Question Mark
 
-In regular expression the meta character `?` makes the preceding character optional. This symbol matches zero or one instance of
-the preceding character. For example, the regular expression `[T]?he` means: Optional the uppercase letter `T`, followed by the lowercase
-character `h`, followed by the lowercase character `e`.
+In regular expression the meta character `?` makes the preceding character
+optional. This symbol matches zero or one instance of the preceding character.
+For example, the regular expression `[T]?he` means: Optional the uppercase
+letter `T`, followed by the lowercase character `h`, followed by the lowercase
+character `e`.
 
 
 "[T]he" => The car is parked in the garage.
@@ -204,9 +229,10 @@ character `h`, followed by the lowercase character `e`.
 
 ## 2.4 Braces
 
-In  regular expression braces that are also called quantifiers are used to specify the number of times that a
-character or a group of characters can be repeated. For example, the regular expression `[0-9]{2,3}` means: Match at least 2 digits but not more than 3 (
-characters in the range of 0 to 9).
+In regular expression braces that are also called quantifiers are used to
+specify the number of times that a character or a group of characters can be
+repeated. For example, the regular expression `[0-9]{2,3}` means: Match at least
+2 digits but not more than 3 ( characters in the range of 0 to 9).
 
 
 "[0-9]{2,3}" => The number was 9.9997 but we rounded it off to 10.0.
@@ -214,8 +240,9 @@ characters in the range of 0 to 9).
 
 [Test the regular expression](https://regex101.com/r/juM86s/1)
 
-We can leave out the second number. For example, the regular expression `[0-9]{2,}` means: Match 2 or more digits. If we also remove
-the comma the regular expression `[0-9]{3}` means: Match exactly 3 digits.
+We can leave out the second number. For example, the regular expression
+`[0-9]{2,}` means: Match 2 or more digits. If we also remove the comma the
+regular expression `[0-9]{3}` means: Match exactly 3 digits.
 
 
 "[0-9]{2,}" => The number was 9.9997 but we rounded it off to 10.0.
@@ -231,10 +258,13 @@ the comma the regular expression `[0-9]{3}` means: Match exactly 3 digits.
 
 ## 2.5 Character Group
 
-Character group is a group of sub-patterns that is written inside Parentheses `(...)`. As we discussed before that in regular expression
-if we put a quantifier after a character then it will repeat the preceding character. But if we put quantifier after a character group then
-it repeats the whole character group. For example, the regular expression `(ab)*` matches zero or more repetitions of the character "ab".
-We can also use the alternation `|` meta character inside character group. For example, the regular expression `(c|g|p)ar` means: lowercase character `c`,
+Character group is a group of sub-patterns that is written inside Parentheses `(...)`.
+As we discussed before that in regular expression if we put a quantifier after a
+character then it will repeat the preceding character. But if we put quantifier
+after a character group then it repeats the whole character group. For example,
+the regular expression `(ab)*` matches zero or more repetitions of the character
+"ab". We can also use the alternation `|` meta character inside character group.
+For example, the regular expression `(c|g|p)ar` means: lowercase character `c`,
 `g` or `p`, followed by character `a`, followed by character `r`.
 
 
@@ -245,11 +275,15 @@ We can also use the alternation `|` meta character inside character group. For e
 
 ## 2.6 Alternation
 
-In regular expression Vertical bar `|` is used to define alternation. Alternation is like a condition between multiple expressions. Now,
-you may be thinking that character set and alternation works the same way. But the big difference between character set and alternation
-is that character set works on character level but alternation works on expression level. For example, the regular expression
-`(T|t)he|car` means: uppercase character `T` or lowercase `t`, followed by lowercase character `h`, followed by lowercase character `e`
-or lowercase character `c`, followed by lowercase character `a`, followed by lowercase character `r`.
+In regular expression Vertical bar `|` is used to define alternation.
+Alternation is like a condition between multiple expressions. Now, you may be
+thinking that character set and alternation works the same way. But the big
+difference between character set and alternation is that character set works on
+character level but alternation works on expression level. For example, the
+regular expression `(T|t)he|car` means: uppercase character `T` or lowercase
+`t`, followed by lowercase character `h`, followed by lowercase character `e` or
+lowercase character `c`, followed by lowercase character `a`, followed by
+lowercase character `r`.
 
 
 "(T|t)he|car" => The car is parked in the garage.
@@ -259,12 +293,16 @@ or lowercase character `c`, followed by lowercase character `a`, followed by low
 
 ## 2.7 Escaping special character
 
-Backslash `\` is used in regular expression to escape the next character. This allows us to specify a symbol as a matching character 
-including reserved characters `{ } [ ] / \ + * . $ ^ | ?`. To use a special character as a matching character prepend `\` before it. 
+Backslash `\` is used in regular expression to escape the next character. This
+allows us to specify a symbol as a matching character including reserved
+characters `{ } [ ] / \ + * . $ ^ | ?`. To use a special character as a matching
+character prepend `\` before it.
 
-For example, the regular expression `.` is used to match any character except newline. Now to match `.` in an input string the regular
-expression `(f|c|m)at\.?` means: lowercase letter `f`, `c` or `m`, followed by lowercase character `a`, followed by lowercase letter 
-`t`, followed by optional `.` character.
+For example, the regular expression `.` is used to match any character except
+newline. Now to match `.` in an input string the regular expression
+`(f|c|m)at\.?` means: lowercase letter `f`, `c` or `m`, followed by lowercase
+character `a`, followed by lowercase letter `t`, followed by optional `.`
+character.
 
 
 "(f|c|m)at\.?" => The fat cat sat on the mat.
@@ -274,18 +312,22 @@ expression `(f|c|m)at\.?` means: lowercase letter `f`, `c` or `m`, followed by l
 
 ## 2.8 Anchors
 
-In regular expressions, we use anchors to check if the matching symbol is the starting symbol or ending symbol of the
-input string. Anchors are of two types: First type is Caret `^` that check if the matching character is the start
-character of the input and the second type is Dollar `$` that checks if matching character is the last character of the
-input string.
+In regular expressions, we use anchors to check if the matching symbol is the
+starting symbol or ending symbol of the input string. Anchors are of two types:
+First type is Caret `^` that check if the matching character is the start
+character of the input and the second type is Dollar `$` that checks if matching
+character is the last character of the input string.
 
 ### 2.8.1 Caret
 
-Caret `^` symbol is used to check if matching character is the first character of the input string. If we apply the following regular
-expression `^a` (if a is the starting symbol) to input string `abc` it matches `a`. But if we apply regular expression `^b` on above
-input string it does not match anything. Because in input string `abc` "b" is not the starting symbol. Let's take a look at another
-regular expression `^(T|t)he` which means: uppercase character `T` or lowercase character `t` is the start symbol of the input string,
-followed by lowercase character `h`, followed by lowercase character `e`.
+Caret `^` symbol is used to check if matching character is the first character
+of the input string. If we apply the following regular expression `^a` (if a is
+the starting symbol) to input string `abc` it matches `a`. But if we apply
+regular expression `^b` on above input string it does not match anything.
+Because in input string `abc` "b" is not the starting symbol. Let's take a look
+at another regular expression `^(T|t)he` which means: uppercase character `T` or
+lowercase character `t` is the start symbol of the input string, followed by
+lowercase character `h`, followed by lowercase character `e`.
 
 
 "(T|t)he" => The car is parked in the garage.
@@ -301,9 +343,10 @@ followed by lowercase character `h`, followed by lowercase character `e`.
 
 ### 2.8.2 Dollar
 
-Dollar `$` symbol is used to check if matching character is the last character of the input string. For example, regular expression
-`(at\.)$` means: a lowercase character `a`, followed by lowercase character `t`, followed by a `.` character and the matcher
-must be end of the string.
+Dollar `$` symbol is used to check if matching character is the last character
+of the input string. For example, regular expression `(at\.)$` means: a
+lowercase character `a`, followed by lowercase character `t`, followed by a `.`
+character and the matcher must be end of the string.
 
 
 "(at\.)" => The fat cat. sat. on the mat.
@@ -319,8 +362,9 @@ must be end of the string.
 
 ##  3. Shorthand Character Sets
 
-Regular expression provides shorthands for the commonly used character sets, which offer convenient shorthands for commonly used
-regular expressions. The shorthand character sets are as follows:
+Regular expression provides shorthands for the commonly used character sets,
+which offer convenient shorthands for commonly used regular expressions. The
+shorthand character sets are as follows:
 
 |Shorthand|Description|
 |:----:|----|
@@ -334,11 +378,15 @@ regular expressions. The shorthand character sets are as follows:
 
 ## 4. Lookaround
 
-Lookbehind and lookahead sometimes known as lookaround are specific type of ***non-capturing group*** (Use to match the pattern but not
-included in matching list). Lookaheads are used when we have the condition that this pattern is preceded or followed by another certain
-pattern. For example, we want to get all numbers that are preceded by `$` character from the following input string `$4.44 and $10.88`.
-We will use following regular expression `(?<=\$)[0-9\.]*` which means: get all the numbers which contain `.` character and  are preceded
-by `$` character. Following are the lookarounds that are used in regular expressions:
+Lookbehind and lookahead sometimes known as lookaround are specific type of
+***non-capturing group*** (Use to match the pattern but not included in matching
+list). Lookaheads are used when we have the condition that this pattern is
+preceded or followed by another certain pattern. For example, we want to get all
+numbers that are preceded by `$` character from the following input string
+`$4.44 and $10.88`. We will use following regular expression `(?<=\$)[0-9\.]*`
+which means: get all the numbers which contain `.` character and  are preceded
+by `$` character. Following are the lookarounds that are used in regular
+expressions:
 
 |Symbol|Description|
 |:----:|----|
@@ -349,12 +397,16 @@ by `$` character. Following are the lookarounds that are used in regular express
 
 ### 4.1 Positive Lookahead
 
-The positive lookahead asserts that the first part of the expression must be followed by the lookahead expression. The returned match
-only contains the text that is matched by the first part of the expression. To define a positive lookahead, parentheses are used. Within
-those parentheses, a question mark with equal sign is used like this: `(?=...)`. Lookahead expression is written after the equal sign inside
-parentheses. For example, the regular expression `[T|t]he(?=\sfat)` means: optionally match lowercase letter `t` or uppercase letter `T`,
-followed by letter `h`, followed by letter `e`. In parentheses we define positive lookahead which tells regular expression engine to match
-`The` or `the` which are followed by the word `fat`.
+The positive lookahead asserts that the first part of the expression must be
+followed by the lookahead expression. The returned match only contains the text
+that is matched by the first part of the expression. To define a positive
+lookahead, parentheses are used. Within those parentheses, a question mark with
+equal sign is used like this: `(?=...)`. Lookahead expression is written after
+the equal sign inside parentheses. For example, the regular expression
+`[T|t]he(?=\sfat)` means: optionally match lowercase letter `t` or uppercase
+letter `T`, followed by letter `h`, followed by letter `e`. In parentheses we
+define positive lookahead which tells regular expression engine to match `The`
+or `the` which are followed by the word `fat`.
 
 
 "[T|t]he(?=\sfat)" => The fat cat sat on the mat.
@@ -364,10 +416,13 @@ followed by letter `h`, followed by letter `e`. In parentheses we define positiv
 
 ### 4.2 Negative Lookahead
 
-Negative lookahead is used when we need to get all matches from input string that are not followed by a pattern. Negative lookahead
-defined same as we define positive lookahead but the only difference is instead of equal `=` character we use negation `!` character
-i.e. `(?!...)`. Let's take a look at the following regular expression `[T|t]he(?!\sfat)` which means: get all `The` or `the` words from
-input string that are not followed by the word `fat` precedes by a space character.
+Negative lookahead is used when we need to get all matches from input string
+that are not followed by a pattern. Negative lookahead defined same as we define
+positive lookahead but the only difference is instead of equal `=` character we
+use negation `!` character i.e. `(?!...)`. Let's take a look at the following
+regular expression `[T|t]he(?!\sfat)` which means: get all `The` or `the` words
+from input string that are not followed by the word `fat` precedes by a space
+character.
 
 
 "[T|t]he(?!\sfat)" => The fat cat sat on the mat.
@@ -377,9 +432,10 @@ input string that are not followed by the word `fat` precedes by a space charact
 
 ### 4.3 Positive Lookbehind
 
-Positive lookbehind is used to get all the matches that are preceded by a specific pattern. Positive lookbehind is denoted by
-`(?<=...)`. For example, the regular expression `(?<=[T|t]he\s)(fat|mat)` means: get all `fat` or `mat` words from input string that
-are after the word `The` or `the`.
+Positive lookbehind is used to get all the matches that are preceded by a
+specific pattern. Positive lookbehind is denoted by `(?<=...)`. For example, the
+regular expression `(?<=[T|t]he\s)(fat|mat)` means: get all `fat` or `mat` words
+from input string that are after the word `The` or `the`.
 
 
 "(?<=[T|t]he\s)(fat|mat)" => The fat cat sat on the mat.
@@ -389,9 +445,10 @@ are after the word `The` or `the`.
 
 ### 4.4 Negative Lookbehind
 
-Negative lookbehind is used to get all the matches that are not preceded by a specific pattern. Negative lookbehind is denoted by
-`(?
 "(?<![T|t]he\s)(cat)" => The cat sat on cat.
@@ -401,8 +458,9 @@ are not after the word `The` or `the`.
 
 ## 5. Flags
 
-Flags are also called modifiers because they modify the output of a regular expression. These flags can be used in any order or
-combination, and are an integral part of the RegExp.
+Flags are also called modifiers because they modify the output of a regular
+expression. These flags can be used in any order or combination, and are an
+integral part of the RegExp.
 
 |Flag|Description|
 |:----:|----|
@@ -412,10 +470,12 @@ combination, and are an integral part of the RegExp.
 
 ### 5.1 Case Insensitive
 
-The `i` modifier is used to perform case-insensitive matching. For example, the regular expression `/The/gi` means: uppercase letter
-`T`, followed by lowercase character `h`, followed by character `e`. And at the end of regular expression the `i` flag tells the
-regular expression engine to ignore the case. As you can see we also provided `g` flag because we want to search for the pattern in
-the whole input string.
+The `i` modifier is used to perform case-insensitive matching. For example, the
+regular expression `/The/gi` means: uppercase letter `T`, followed by lowercase
+character `h`, followed by character `e`. And at the end of regular expression
+the `i` flag tells the regular expression engine to ignore the case. As you can
+see we also provided `g` flag because we want to search for the pattern in the
+whole input string.
 
 
 "The" => The fat cat sat on the mat.
@@ -431,10 +491,11 @@ the whole input string.
 
 ### 5.2 Global search
 
-The `g` modifier is used to perform a global match (find all matches rather than stopping after the first match). For example, the
-regular expression`/.(at)/g` means: any character except new line, followed by lowercase character `a`, followed by lowercase
-character `t`. Because we provided `g` flag at the end of the regular expression now it will find every matches from whole input
-string.
+The `g` modifier is used to perform a global match (find all matches rather than
+stopping after the first match). For example, the regular expression`/.(at)/g`
+means: any character except new line, followed by lowercase character `a`,
+followed by lowercase character `t`. Because we provided `g` flag at the end of
+the regular expression now it will find every matches from whole input string.
 
 
 "/.(at)/" => The fat cat sat on the mat.
@@ -450,10 +511,13 @@ string.
 
 ### 5.3 Multiline
 
-The `m` modifier is used to perform a multi-line match. As we discussed earlier anchors `(^, $)` are used to check if pattern is
-the beginning of the input or end of the input string. But if we want that anchors works on each line we use `m` flag. For example, the
-regular expression `/at(.)?$/gm` means: lowercase character `a`, followed by lowercase character `t`, optionally anything except new
-line. And because of `m` flag now regular expression engine matches pattern at the end of each line in a string.
+The `m` modifier is used to perform a multi-line match. As we discussed earlier
+anchors `(^, $)` are used to check if pattern is the beginning of the input or
+end of the input string. But if we want that anchors works on each line we use
+`m` flag. For example, the regular expression `/at(.)?$/gm` means: lowercase
+character `a`, followed by lowercase character `t`, optionally anything except
+new line. And because of `m` flag now regular expression engine matches pattern
+at the end of each line in a string.
 
 
 "/.at(.)?$/" => The fat
diff --git a/img/img_original.png b/img/img_original.png
new file mode 100644
index 0000000000000000000000000000000000000000..da1c5fa2ac5822e8bccf3661f0ac720a011fc484
GIT binary patch
literal 6634
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
YOzWi69QwZXSr>J3aIr5xbnfbZ0WEGq1poj5

literal 0
HcmV?d00001

diff --git a/img/regexp-en.png b/img/regexp-en.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2331491b387f1fd9cb7b843fe86893ca7fad475
GIT binary patch
literal 32144
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

literal 0
HcmV?d00001

diff --git a/img/regexp-es.png b/img/regexp-es.png
new file mode 100644
index 0000000000000000000000000000000000000000..3efa6eed322c852ffb7689b108d34aa0a844c76b
GIT binary patch
literal 34234
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ⅲOo}+zjETXvtEYZiOJMqI{EuGG!0^
z9;hWbp;Nf*`(+q)1C^44(yL$?W1AiM3;;0a7rGH*9VRBepaVBpeuEj|L+?#wZONme
z-RFZrquxo9IKg?8C@$_eAa(0~d_*&+Umf7@FB(ATo~Bei@`t&>OgCf+20Y*7?BemB
zGigUt9y`zK2m(d3@q?*pdxA2Gw(GoGQ=j?f=H`}#QJ0^Ti$0rJC2J^tr;a+#b;o`@
zja^axfM~_MXZBY4XV2CpZpg0S;PSAmqS6C7l93_{$_57~7O+y##-4<8mA#Lt#rDjr#8rK=PA3orqKn+Fr0ypml15ow?a^`io_EZTx1ra9*Vy)!ta_3bt3;*?RW>BRYI;dCejT)%00%cIeKBsfK9VddmV{PCT@;P1mt{
z3GUW9@|}c38qFDq~mR*HpX>ApJGPmMQA}kgTevkLJ!17I
zoQp*Shs66#JLgvI{;K~kY0E{SbVD!tumAl&1!Dih)SUkhY1;quZ*CYf%2SJ
R%nHS{Ni!$LjsN-g{{YNvA{YPw

literal 0
HcmV?d00001

diff --git a/img/regexp.svg b/img/regexp.svg
new file mode 100644
index 0000000..f08690b
--- /dev/null
+++ b/img/regexp.svg
@@ -0,0 +1,397 @@
+
+
+
+
+  regexp
+  
+  
+  
+    
+      
+        image/svg+xml
+        
+        regexp
+        https://github.com/zeeshanu/learn-regex
+        
+          
+            ponsfrilus
+          
+        
+        08.2017
+      
+    
+  
+  
+  
+    
+    
+    
+    
+    
+    
+  
+  
+    asdasda    
+      
+        
+          Start of the line
+          3 to 15 characters long
+          End of the line
+          Letters, numbers, underscores, hypens
+          ^[a-z0-9_-]{3,15]$
+        
+      
+    
+  
+  
+  
+