 This is module one where we will learn what regular expressions are exactly and we will see some general use of regular expression. And then we will see a list of application and languages that support a regular expression. And then we will be looking at the tool provided by by Scout which is PDF Multi-Tool. It is a free and yet very powerful utility with multiple functions to help to extract data from PDF, convert PDF to CSV, PDF to XLS, PDF to XML and much more. Don't worry, we will learn about this tool in a very few minutes. Okay, so first let's talk about what regular expressions are exactly. Well, according to Wikipedia, a regular expression is a sequence of characters that define a search pattern. You can say it is a special text string for describing a search pattern. It is a pattern that the regular expression engine attempts to match in input text. Regular expressions are also known in short form as regex or regexp. I prefer regex because it is easy to pronounce. You are probably familiar with the wildcard notation such as star.text to find all text files in a file manager. But you can do much more with regular expressions. Yes, a basic understanding of regular expression will make your life a whole lot easier when you do. Of course, we will go into the detail of regex, but just to get the little introduction here I have defined two regex example. In the first regex example, I want to find or match both the word Pied, Byte and Byte. It means it will find both the spellings of the word Byte in one operation instead of two. And this is how it differs from normal string search. And in the second regex, which is an example of complex pattern, I want to match a password with some rules like password must be 6 to 12 characters in length. It must have at least one uppercase letter and it must have one lowercase letter, etc. etc. Don't worry if you are confused with this example. Any non-trivial regex looks ugly to anybody who are not familiar with them. But with this course, I am sure you will soon be able to craft your own regular expression like you have never done anything else. Now you think that I can do the same thing without regex also like find string, replace string, any kind of finding the substring. So how normal string search differs from regex? Well, generally string searching involves one source string from which we want to find and another string which we want to find from the source string. Let's call it the find word. Now the goal is to find one or more occurrences of the find word within the source string. Now here one might request the first occurrence of 2 which is at the 11th word or all occurrences of which there are 4 and the last occurrence of 2 which is at the 21th position. Though there are many algorithms for string search but in a simple way it works like this. Check the occurrences of the find word one by one in nested loops. So first we try to match if there is a copy of the find word to the first character of the source string. If not then we try to match if there is a copy of find word to the second character. If not then we try to look at the third character and so on and so forth until it find the match. Consider this situation. Assume that I have a mailing list, contains names that sometimes include a title like Mr, Mrs, Miss along with the first name and last name. Now I want to replace or remove that title with the empty string. So in normal case I need to use 3 times replace function to replace each occurrences of title. But if I use regular expression then this code now looks like this. This regular expression pattern matches any occurrences of Mr, Mr with dot, Mrs, Miss etc. Then code to regex.replace method replaces the match string with empty string. In other words it removes it from the original string.