Merge pull request #13 from kkburr/65851854_about_constants_masters

about constants masters

[Delivers #65851854]
Fixes def test_a_pattern_is_a_regular_expression -
def test_asterisk_means_zero_or_more. I learned:

* Patters are regular expressions. Ex: /pattern/.

* A regexp can search a string for matching content via the following 
format:
	"some matching content"[/match/] == "match"
  
* If match fails, will return nil.

* ? in regexp [/ab?/] means optional, so no match will return empty string:
	"abbcccddddeeeee"[/z?/] == ""

* + means one or more; * means zero or more. fails of each returns "".


[#65851848]
Fixes def test_the_left_most_match_wins -   
def test_shortcut_character_classes_are_negated_with_capitals. 

I learned:

* If there's a space in the string, the * evaluates the left-most word.

* A character class instructs the select statement that for { |a| a
[ /[choose one of these letters]to start a word finishing here/] }
	Ex: animals = ["cat", "bat", "rat", "zat"]
    	animals.select { |a| a[/[cbr]at/] } == ["cat", "bat", "rat"]

* \d is for digital character

* Ranges can be used, ex: [0-9]

* \s is for whitespace character

* \w is for word character. Includes [a-zA-Z0-9_]

* . is for any non-newline character. Ex: "abc\n123"[/a.+/] == "abc"

* ^ negates a character class.

*  Capital letters negate shortcut classes
	Ex: "the number is 42"[/\D+/] == "the number is "
	"space: \t\n"[/\S+/] == "space:"
	"variable_1 = 42"[/\W+/] == " = "

[#65851848]
Fixes def test_slash_a_anchors_to_the_start_of_the_string -
  def test_gsub_is_like_find_and_replace_all. 

I learned:

* \A anquors to the start of the string, while \z anchors to the end.

* ^ anchors to the start of the line, ^\d finds a decimal at the start of a line.

* $ anchors to the end of the line

* \b anchors to a word boundary, like \bvine goes to "vine" in "bovine"

* () finds group contents

* () can also capture matched content by number. Ex:
"Gray, James"[/(\w+), (\w+)/, 1] == "Gray"

* $1 can be used to find the first value in a string if (\w+) is used 

* a vertical pipe means or. so in a regex, that would look like: 
   	grays = /(James|Dana|Summer) Gray/
 	"James Gray"[grays] = "James Gray"
	"Jim Gray"[grays, 1] = nil

* .scan is find all, .sub is find and replace, .gsub is find and replace all.


[#65851848]
Fixes error on line 54.

[#65851848]
Fixes error on line 53...don't know who added that :)

[#65851848]