There is no strict structure for man pages, but the following covers most commands.
From MANUAL PAGES(5), BSD File Formats Manual, section "MANUAL PAGE SYNTAX":
In manual page syntax, anything in a normal text font is required text. Anything in a boldface font is a flag or a subcommand. Anything underlined is a user-specified argument such as a filename.
Any argument surrounded by brackets is considered to be optional. For example, [ filename ] would indicate an optional filename argument.
Flags, arguments, or subcommands separated by a vertical separator (|) are mutually exclusive. For example, if -a turns on an option and -b turns off the option, the syntax for this command might be -a | -b.
In some cases, you may even see entire groups of arguments wrapped with brackets and separated by a vertical separator. This is one way of showing that a command has more than one valid syntax. In other manual pages, this is expressed by having multiple lines in the synopsis, each of which begins with the command name. The separated format is more common (and more readable), but is not always possible for commands with particularly complex syntax.
Finally, the most important notational convention is the use of the ellipsis (...). This indicates that additional arguments may be added at this point.