Your view probably reflects the kinds of programming languages with which you are familiar. But there are more important differences between the two programming languages. One is in high-level string analysis. I won't attempt to do more than scratch the surface here, commenting only on the essential aspects of pattern matching. In pattern matching, a pattern matches any string that it characterizes.
Patterns are data values that can be combined in various ways to form other patterns.
Pattern matching is done in a statement in which a pattern is applied to a string. The processing loop is similar to the one for mapping characters. A line is read in and assigned to LINE . If there is no more input, the failure goto transfers control to the end of the program. If it is successful, a word is written and everything matched is deleted from LINE by assigning an empty string to it.